LINUX.ORG.RU
Ответ на: комментарий от anonymous

>К ОО вышеуказанное имеет слабое отношение. Кроме того термины надо расшифровывать.

Правильно:

1. Everything is an object.

2. A program is a bunch of objects telling each other what to do by sending messages

3. Each object has its own memory made up of other objects.

4. Every object has a type.

5. All objects of a particular type can receive the same messages.

:)

Вот именно, что я привел определение ОО от Страуструпа, который называет его "классическим".
Первоначальное определение ОО идет с ним ортогонально. Кто здесь больше прав, спорить не буду.
Но с вашим определением и Java - не-ОО язык получается...

ANDI ★★
()
Ответ на: комментарий от ANDI

> Вот именно, что я привел определение ОО от Страуструпа, который называет его "классическим".

А с каких это пор Страуструп стал беспристрастным арбитром в области ОО? Естественно, что вместо четкого определения он приводит туманные и громко-бессмысленные слова, по которым нельзя составить представления о качестве созданного им языка.

> Первоначальное определение ОО идет с ним ортогонально. Кто здесь больше прав, спорить не буду.

Но в том, что привели вы нет _вообще_ никакого смысла. Одни слова.

> Но с вашим определением и Java - не-ОО язык получается...

Во-первых определение все-таки не мое :) А во-вторых почему это вас так удивляет? Вспомните ваш же пример с надписью на книге.

anonymous
()
Ответ на: комментарий от anonymous

а я лично не понимаю вообще в чем смысл спора. Язык должен быть элегантным и мощным, а не каким-то ОО.

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

чисто ОО язык это может и красиво, но он будет годиться только для узкой ниши. Как минимум будут проблемы с эффективностью.

dilmah ★★★★★
()
Ответ на: комментарий от anonymous

>А с каких это пор Страуструп стал беспристрастным арбитром в области ОО? Естественно, что вместо четкого определения он приводит туманные и громко-бессмысленные слова, по которым нельзя составить представления о качестве созданного им языка.

Я думаю, если человек разработал язык, создал действующий компилятор, организовал и активно участвует в комитете по стандартизации этого языка, написал десятки статей по программированию, тесно общался с другими разработчиками других языков и с сотнями разработчиков по всему миру, то он имеет свое право на определение ОО-языка?
Или это право принадлежит исключительно анонимусам с ЛОРа?

>Но в том, что привели вы нет _вообще_ никакого смысла. Одни слова.

Такие вещи, как наследование, я, думаю, не нуждаются в пояснении. Я надеюсь, не с домохозяйкой общаюсь?

>Во-первых определение все-таки не мое :) А во-вторых почему это вас так удивляет? Вспомните ваш же пример с надписью на книге.

Нисколько. Разве это не следует из приведенного вами определения ОО?

P/S Многие термины в IT перегружены, что вызвано темпами ее развития. Та же ОО. Поэтому я не хотел бы участвовать в спорах определения _единственно_ правильного смысла термина ОО. Различайте, как минимум, устоявшееся и первоначальное определение. Если, конечно, не хотите всю жизнь всем объяснять, что "ваше красное" - это "мое зеленое".

ANDI ★★
()
Ответ на: комментарий от dilmah

>а я лично не понимаю вообще в чем смысл спора. Язык должен быть элегантным и мощным, а не каким-то ОО.

Спор в самом определении термина ОО. Который, надеюсь, закончился.
А с тем, что ОО - не панацея, я полностью согласен.

ANDI ★★
()
Ответ на: комментарий от ANDI

> Я думаю, если человек разработал язык, создал действующий компилятор, организовал и активно участвует в комитете по стандартизации этого языка, написал десятки статей по программированию, тесно общался с другими разработчиками других языков и с сотнями разработчиков по всему миру, то он имеет свое право на определение ОО-языка? Или это право принадлежит исключительно анонимусам с ЛОРа?

Оно в равной степени не может принадлежать ни анонимусам с ЛОРа, ни кому-либо иному, кроме человека, который ввел этот термин.

> Такие вещи, как наследование, я, думаю, не нуждаются в пояснении. Я надеюсь, не с домохозяйкой общаюсь?

Не в пояснении, а в четком определении. И мне совершенно неясно, как термин, описывающий чисто технический прием, попал у вас в число базовых определений.

> А во-вторых почему это вас так удивляет? Вспомните ваш же пример с надписью на книге.

> Нисколько. Разве это не следует из приведенного вами определения ОО?

Вам надо разжевывать, как домохозяйке? Java _не_ является чистым ОО-языком. Это только надпись на обложке.

> Поэтому я не хотел бы участвовать в спорах определения _единственно_ правильного смысла термина ОО. Различайте, как минимум, устоявшееся и первоначальное определение.

Но почему при любой попытке выяснить это устоявшееся определение, высыпается бессмысленный набор громких слов?

anonymous
()
Ответ на: комментарий от anonymous

>Оно в равной степени не может принадлежать ни анонимусам с ЛОРа, ни >кому-либо иному, кроме человека, который ввел этот термин. С точкт зрения методологии науки (простите за пафос:)) введение термна (или теории) это только начало исследований в данной области:), и не дает никаких особых прав его автору. Гаусс, например тоже ввел понятие неевклидовой геометрии, однако основные заслуги принадлежат именно Лобачевскому.

>Но почему при любой попытке выяснить это устоявшееся определение, >высыпается бессмысленный набор громких слов? Выше по треку я привел IMHO устоявшееся определение, и помоему достаточно кратко: Объектная ориентированность - возможность рассуждать с использованием понятия "объект":) ООЯ - язык облегчающий возможность описания взаимодействия объектов.

Вы это сообщение видели и ничего не ответили. Разве не так?

PS. Получается что Java - ООЯ, так как позволяет оперировать понятием "объект"

kiv
()
Ответ на: комментарий от kiv

> Объектная ориентированность - возможность рассуждать с использованием понятия "объект":) ООЯ - язык облегчающий возможность описания взаимодействия объектов.

Ну так. Но это слишком широкое определение.

> PS. Получается что Java - ООЯ, так как позволяет оперировать понятием "объект"

Ну так. Ну заврался.

P.S. Только с такими определениями будет сложно найти _не_ ОО-язык.

anonymous
()
Ответ на: комментарий от ANDI

Бля опять миллионы мух не могут ошибаться? Идите дальше у своего страуса великого отсасывайте

anonymous
()
Ответ на: комментарий от anonymous

>Бля опять миллионы мух не могут ошибаться? Идите дальше у своего страуса великого отсасывайте

Не знаю кто такие anonymous и сколько их, но один точно не воспитанный какой-то:)))

kiv
()
Ответ на: комментарий от anonymous

>>В Eiffel (по крайней мере в компиляторе SmartEiffel) >>сборщик мусора можно отключить

>Не знаю. >а как будут удаляться динамически создаваемые объекты ? >Вы сможите их удалить руками ?

Да, для этого есть специальный класс. Чаще этот режим применяют в программах где вообще ничего удалять не надо - где нет динамических объектов или где нет смысла тратить время на освобождение памяти потому что все освободится при выходе из программы.

asso_w
()
Ответ на: комментарий от ANDI

> Язык, не поддерживающий указатели, не являются самодостаточными и часто представляет чисто академический интерес.

Java представляет чисто академический интерес?

> Во многих ли проектах используется тот же Eiffel?

Не во многих, но совсем по иной причине: цена хороших компиляторов кусается. Думаю что как только в SmartEiffel доделают scoops и сделают возможность создавать разделяемые библиотеки ситуация начнет меняться.

asso_w
()
Ответ на: комментарий от anonymous

>>Не знаю. >а как будут удаляться динамически создаваемые объекты ? 
>>Вы сможите их удалить руками ? 
>Да, для этого есть специальный класс. Чаще этот режим применяют в программах 
>где вообще ничего удалять не надо - где нет динамических объектов или 
>где нет смысла тратить время на освобождение
>памяти потому что все освободится при выходе из программы.

Тогда сборшик мусора не является критерием ОО-языка. Что впрочем наверное логично. 
Страуструп - это сильный дядя, и он конечно может дать 
свое определение ОО-языка и к нему прислушаются.
Но стандарт С++ вышел недавно, а ОО-языки появились давно, поэтому хочется 
более академического определения. Хотелось бы еще узнать пару мнений 
разработчиков ОО-языков. Ну например того-же SmallTalk. 
Думаю там будет другое трактование и другие требования. 
Возможно в основу Java были положены другие определения ОО-языка.
Но есть некое опасение что такого определения вообще может не быть.

> Во многих ли проектах используется тот же Eiffel? 

И что ? 
Критерии от этого изменятся ?
Обсуждается не популярность а сущность.
Кроме того характеристики компилятора не отражают сущность языка.
Компилятор может быть поддерживающий язык или не поддерживающий и
тогда он будет отражать только синтаксис языка.
Компиляторы те-же программы и их тестируют специальными тестами
для того или другого языка.

anonymous
()
Ответ на: комментарий от anonymous

> Вы не подскажите что такое ЛОР ? давно слышу но не знаю, хочется узнать.

Шутка если не года, то месяца точно.

Подсказка: прочитай по первым буквам название сайта на который ты поместил эту заметку.

anonymous_incognito ★★★★★
()

C++ - не чистый объектный язык, он Объектно-ориентированный.

Вот что можно прочитать в книге Гради Буча
"Объектно-ориентированный анализ и проектирование"

стр 53 

"
... Карделли и Вегнер говорят, что:

'язык программирования является объектно-ориентированным
тогда и только тогда, когда выполняются след. условия:
- поддерживаются объекты, то есть абстракции данных, имеющие интерфейс в виде 
 именованных операций и собственные данные, с ограничением доступа к ним;
- объекты относятся к соответствующим типам(классам) ;
- ТИПЫ(классы) МОГУТ наследовать атрибуты  супертипов(суперклассов) .
 
 Поддержка наследования в таких языках означает возможность установления 
отношений 'is-a'('есть','это есть','-это'), например, красная роза-это цветок,
 а цветок это растение.

Языки, НЕ ИМЕЮЩИЕ таких механизмов, НЕЛЬЗЯ отнести к ОБЕКТНО-ориентированным.  
Согласно этому определению объектно-ориентированными языками являются
Smalltalk, Object Pascal, C++ и CLOS,  а    Ada - объектный язык.
.... "


стр 55,   1 абзац

" ... Для объектно-ориентированного СТИЛЯ концептуальная
база - объектная модель. Она имеет 4 главных элемента:
- абстрагирование;
- инкапсуляция;
- модульность;
- иерархичность;
 
 Эти элементы являются главными ... без любого из них модель не будет 
объектно-ориентированной.
Кроме главных, имеются еще три дополнительных элемента:
- типизация;
- параллелизм;
- сохраняемость.

... они полезны в объектной модели но не обязательны. "


стр 473, словарь терминов:
"...
Объектное программирование  - метод программирования основанный
     на представлении  программы как совокупности ...
     Типы образуют иерархию, НО НЕ НАСЛЕДСТВЕННУЮ. ....

Объектно-ориентированное программирование  - Методология
     реализации .... , а КЛАССЫ образуют ИЕРАРХИЮ НАСЛЕДОВАНИЯ. 
 ...."

Книжки, внутри них а не на обложках иногда бывают ответы. 

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.