Re[8]: Что такое ООП
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 29.05.03 12:46
Оценка:
Здравствуйте, Dmitry123, Вы писали:

D>Когда нужно было int в HashMap положить то да, в др. случаях необходимости не было


Ага, в этих случаях приходилось писать десяток перегруженных методов под каждый примитивный тип. Вот только что интерфейсы JDO смотрел.
... << RSDN@Home 1.0 beta 8 >>
AVK Blog
Re[5]: Что такое ООП
От: mihailik Украина  
Дата: 29.05.03 12:50
Оценка: +2 -1
R>А пока, как я понял, даже с терминологией не договорились. =((

А как ты себе представляешь такую договорённость? Договорились разработчик Delphi, VB и C++. Постановили переименовать все record в struct, а friend в internal?

Когда люди хотят друг друга понять, они не сомневаются в смысле слов "полиморфизм", "наследование" и т.п. А если поп*%деть на лекции — тогда конечно. Тогда и в математике договорённости плавающие.


Например, чему равен квадратный корень из четырёх? Думаешь двум? Неверно.

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

Но эта плывучесть определений на практике никого не заботит, так как всё знают, что имеется ввиду в каждом конкретном случае.
... << RSDN@Home 1.0 beta 7a >>
Re[14]: Что такое ООП
От: mihailik Украина  
Дата: 29.05.03 12:50
Оценка:
R>>Как же тогда понимать такого рода фразы?

S>А так и понимать — человек считает, что он знаком с ООП.


R>Как определить, что человек знаком с ООП, если не известно, что такое ООП?


Как говорили в одном фильме, "а причём здесь Крымов?"

Причём здесь ООП? Представь, что в резюме написано: "знаком с микробиологией". Такая формулировка тебя не коробит?

А между тем понятие микробиологии не менее расплывчато, чем понятие ООП.
... << RSDN@Home 1.0 beta 7a >>
Re[17]: Что такое ООП
От: mihailik Украина  
Дата: 29.05.03 12:50
Оценка: :))
AVK> Код это не дом или автомобиль, в процессе своей жизни код непрерывно эволюционирует. И если он написан некрасиво то жизнь такого кода будет тяжелой и недолгой.

Может, это особенности психики, но мне кажется, что пакостный код живёт очень долго. Красивый и логичный так долго не живёт, как какой-нибудь запутанный, глючный и нерегулярный.
... << RSDN@Home 1.0 beta 7a >>
Re[16]: Что такое ООП
От: mihailik Украина  
Дата: 29.05.03 12:50
Оценка:
R>Ну почему же, я вот верю, что математика в конце концов опишет все =)

Что всё?

Ты, кажется, математику с физикой перепутал. Математика вообще не занимается реальным миром. В принципе не занимается.

Можно даже так сказать: любая отрасль знаний, опирающаяся на строгую логику, и исследующая абстрактные модели — называется математикой.
... << RSDN@Home 1.0 beta 7a >>
Re[4]: Что такое ООП
От: Lloyd Россия  
Дата: 29.05.03 12:52
Оценка: +1
Здравствуйте, mihailik, Вы писали:

M>P.S. Хотя, на сегодняшний день, самым классическим и строгим стандартным языком ООП-программирования можно считать Java. Его всякая научная общественность в институтах массово изучает, и на его основе всякое ООП проходят. Имеются ввиду, конечно, западные институты. Наши пока в программировании не авторитет.


Все верно. Но только не java, а smalltalk.
Re[12]: Тройственная (триединая) картина
От: adontz Грузия http://adontz.wordpress.com/
Дата: 29.05.03 12:58
Оценка:
Здравствуйте, Vi2, Вы писали:

Vi2>

A>>4) С несколькими определёнными лицами.

Vi2>"Росту ниже среднего и блондинки. Ух, люблю..."

Vi2>

A>>Например множественное наследование это канон ООП или фича?

Vi2>А какое отношение имеет "наследование" к "инкапсуляции"? Это перпенидикулярные термины.

Такое, что отсутствие синтаксической поддержки для, скажем так, выдачи прав доступа нескольким определённым объектам, можно эмулировать за счёт множественного наследования.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[6]: Что такое ООП
От: Rumata Россия http://atamur.livejournal.com
Дата: 29.05.03 13:39
Оценка: -1
Здравствуйте, mihailik, Вы писали:

R>>А пока, как я понял, даже с терминологией не договорились. =((

M>А как ты себе представляешь такую договорённость? Договорились разработчик Delphi, VB и C++. Постановили переименовать все record в struct, а friend в internal?
Например так.

M>Когда люди хотят друг друга понять, они не сомневаются в смысле слов "полиморфизм", "наследование" и т.п. А если поп*%деть на лекции — тогда конечно. Тогда и в математике договорённости плавающие.

Не сомневаются? А у меня после 5-ой книги по пэттернам в OOD осталось совсем другое впечатление. А в математике — некоторые краевые договоренности действительно плавающие (например слово "комплексный" в Питереи Москве математики по разному произносят — ударение на разных слогах), но центральные определения вполне четкие (на то они и определения). Есть еще понятия, но их довольно таки мало.

M>Например, чему равен квадратный корень из четырёх? Думаешь двум? Неверно.

M>Квадратным корнем по строгому определению называется число, чей квадрат равен данному. То есть и два и минус два. А тот значок, который в школе изучают — это арифметический квадратный корень.
Вы удивитесь, но мне это известно — в школе проходили =))

M>Но эта плывучесть определений на практике никого не заботит, так как всё знают, что имеется ввиду в каждом конкретном случае.

Ну почему же никого не заботит? В каждой второй книге встречается, что-то вроде "часто под **** понимают ####, но здесь мы юудем иметь в виду @@@@@, т.к. ##### вызывает противоречия там и там".
Re[16]: Что такое ООП
От: Sergey Россия  
Дата: 29.05.03 14:36
Оценка:
Здравствуйте, Rumata, Вы писали:

S>>А как предполагается записывать эту самую математическую модель? Уж не на языке ли программирования каком-нибудь? Это я к тому, что программист эту математическую модель сам придумывает.


R>Ну почему же, я вот верю, что математика в конце концов опишет все =)


А при чем здесь опишет/не опишет? Вполне себе описывает, но наиболее удобное описание получается на каком-нибудь из языков программирования. Почти по определению

R>Дело в том, что я сначаала начал пользоваться реляционными бд (в т.ч. и нормальными формами), а потом прочитал теорию, почему нормальные форму лучше, чем ненормальные. С тех пор мне кажется, что за любым "rule of thumb", которое на практике облечает программисту жизнь лежит некоторое математическое обоснование =)


А при чем здесь это?
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[4]: Что такое ООП
От: _vovin http://www.pragmatic-architect.com
Дата: 29.05.03 14:39
Оценка: 8 (1)
Здравствуйте, mihailik, Вы писали:

R>>Вот только опять не понятно, являются ли приведенные там документы какими-либо стандартами. неужели за более чем 10 лет развития, под ООП не подвели никаких признаных стандартов вообще?


M>А что, есть какие-то стандарты "реляционности" баз данных?


M>ООП — это архитектура, методология. Она призвана помогать строить программы. Точно так же, как нет стандартов, например, барокко, или готики — так же нет смысла в стандарте ООП.


M>P.S. Хотя, на сегодняшний день, самым классическим и строгим стандартным языком ООП-программирования можно считать Java. Его всякая научная общественность в институтах массово изучает, и на его основе всякое ООП проходят. Имеются ввиду, конечно, западные институты. Наши пока в программировании не авторитет.


Хе-хе, посмотри что говорит Martin Fowler (Refactoring book):
http://martinfowler.com/bliki/LanguageForLearningObjects.html

--

Владимир.
Re[9]: Что такое ООП
От: Dmitry123 Эстония  
Дата: 29.05.03 14:55
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Ага, в этих случаях приходилось писать десяток перегруженных методов под каждый примитивный тип. Вот только что интерфейсы JDO смотрел.


Хех...ну не знаю, вобщем лично меня эти оболочки особо не напрягают,
поэтому можно их посоветовать идейным борцам за чистое ООП (сам к ним не отношусь ).
Кстати ИМХО спор об ООП все равно никакого результата не даст, да и пользы тоже
Re[17]: Что такое ООП
От: Rumata Россия http://atamur.livejournal.com
Дата: 29.05.03 16:11
Оценка:
Здравствуйте, mihailik, Вы писали:

R>>Ну почему же, я вот верю, что математика в конце концов опишет все =)

M>Что всё?
Да вообще все ...
Посмотрите книги Арнольда по нечеткой логике

M>Ты, кажется, математику с физикой перепутал. Математика вообще не занимается реальным миром. В принципе не занимается.

Нет, не перепутал. Математика применяется при моделировании реальной жизни. Физика здесь не при чем.

M>Можно даже так сказать: любая отрасль знаний, опирающаяся на строгую логику, и исследующая абстрактные модели — называется математикой.

Сказать — можно. Не уверен, что это будет правильно.
Re[17]: Что такое ООП
От: Rumata Россия http://atamur.livejournal.com
Дата: 29.05.03 16:12
Оценка:
Здравствуйте, Sergey, Вы писали:

S>>>А как предполагается записывать эту самую математическую модель? Уж не на языке ли программирования каком-нибудь? Это я к тому, что программист эту математическую модель сам придумывает.

R>>Ну почему же, я вот верю, что математика в конце концов опишет все =)
S>А при чем здесь опишет/не опишет? Вполне себе описывает, но наиболее удобное описание получается на каком-нибудь из языков программирования. Почти по определению
Ну вот, когда она все опишет, описанным окажется и ооп =))
Т.е. будет формальноее определение понятий, обоснование того, что нужны именно public, private, protected и т.д.

S>А при чем здесь это?

Надеялся пояснить свою мысль. По-видимому не получилось =))
Re[17]: Что такое ООП
От: Sinclair Россия https://github.com/evilguest/
Дата: 30.05.03 04:31
Оценка: +2
Здравствуйте, Sergey, Вы писали:

S>А при чем здесь опишет/не опишет? Вполне себе описывает, но наиболее удобное описание получается на каком-нибудь из языков программирования. Почти по определению

Нда. Формат дискусии и количествво работы не оставляют мне шанса высказать все, что считаю нужным. Потому буду краток. Как правило под формализацией понимают некий набор декларативных утверждений. Большинство современных языков программирования сильно перекошены в сторону процедурности.

R>Дело в том, что я сначаала начал пользоваться реляционными бд (в т.ч. и нормальными формами), а потом прочитал теорию, почему нормальные форму лучше, чем ненормальные. С тех пор мне кажется, что за любым "rule of thumb", которое на практике облечает программисту жизнь лежит некоторое математическое обоснование =)


S>А при чем здесь это?

Именно при том, что без понимания математической сути происходящего невозможно быть хорошим программистом.
А для лучшего понимания сути проблемы, задумайтесь:
С++ — это ООП?
Object Pascal — это ООП?
Java — это ООП?
JScript — это ООП?
COM — это ООП?
SQL — это ООП?
А теперь подумайте, где проходит граница между ООП и неООП, и почему она там проходит, и почему такие непохожие системы сваливают в одну кучу. И как их классифицировать, т.е. кто ближе — С++ к COM или JScript к Java.
... << RSDN@Home 1.0 beta 7a >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[5]: Что такое ООП
От: Sinclair Россия https://github.com/evilguest/
Дата: 30.05.03 04:51
Оценка: 13 (2) +1
Здравствуйте, Rumata, Вы писали:

R>Тут я ну никак не могу с Вами согласиться. Математика строит модели реальной жизни. Раз есть реальная жизнь, будет и модель. Ту же экономику потихоньку описывают с разной точностью. А программирование все-таки чуть более структурированная штука. Из-за того, хотя бы, что в конце концов программа должна работать на машине фон-Неймана, которая очень даже хорошо описана.

Не можете, но соглашаетесь
Да, меня самого ужасно раздражает, что в большинстве случаев термины типа инкапсуляции объясняют при помощи примеров кода на каком-то языке. И я искренне надеюсь, что эта ситуация исправится.
С другой стороны, в каждой науке есть различные подходы. Да, сейчас математики вроде договорились строить весь анализ на теории множеств. Но совершенно не факт, что это есть единственно возможный подход.
Вот в физике например, что есть момент импульса?
Вариант один: "произведение импульса на плечо, mvr". Это как раз и есть что-то вроде "наследование — это когда после имени класс через двоеточие пишут имя класса-предка....". Непереносимое определение.
Вариант два: "инфинитезимальный оператор поворота". Особый такой векторный дифференциальный оператор. Совсем вроде другая штука. И откуда она такая берется? Куда девалось mvr?
Вариант три: "та величина, сохранение которой следует из изотропности пространства". О! Вот в это определение попадает и тот момент, который изучают в школе (классическая физика), и тот, который изучают в квантовой механике, а также все релятивистские модификации...
Тем не менее все эти определения сосуществуют.

Я думаю, что в ООП в итоге будет также. Типа "Наследование в смысле Руматы — это ........". Или там "полиморфизм в смысле Синклера".

R>А пока, как я понял, даже с терминологией не договорились. =((

Да не в этом даже дело. Ну покажите мне хотя бы пару точных формулировок того, что такое наследование. Чтобы их можно было применить к конкретной ситуации и сказать "да, здесь оно есть" или "нет, здесь его нету". Большинство авторов не затрудняют себя введением сколь бы то ни было точных определений.
Вот когда они начнут это делать, тогда и можно будет говорить к примеру о том, что Буч и Страуструп понимают под наследованием одно и то же, а вот Вирт придает ему несколько иной смысл. И будет о чем договариваться.
... << RSDN@Home 1.0 beta 7a >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Точки, множества и т.п.
От: Sinclair Россия https://github.com/evilguest/
Дата: 30.05.03 04:51
Оценка:
Здравствуйте, Vi2, Вы писали:

Vi2>Интересно, есть ли определение точки, множества и т.п. терминов, краеугольные для математики? Которые вроде всем известны и понятны, но тем не менее...

Насчет точки — не помню. Вот материальная точка в физике вполне четко определена.
А множество вводится как интуитивно понятная категория, без чего невозможно даже начать математику При этом уверенность математиков во взаимопонимани основана на том, что таких "интуитивно понятных" категорий и неявных правил вывода используется весьма небольшое количество. И оно жестко контролируется.
... << RSDN@Home 1.0 beta 7a >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[5]: Что такое ООП
От: Sinclair Россия https://github.com/evilguest/
Дата: 30.05.03 04:51
Оценка:
Здравствуйте, Rumata, Вы писали:

R>Здравствуйте, Аноним, Вы писали:


А>Стандартов нет, но если нужны теории — то изучайте дискретную математику и абстрактную алгебру, а именно: теорию графов, теорию конечных автоматов, мат. лог, алгебру логики, сложность алгоритмов,

А>теорию структур, формальные языки, распознавание образов и т.д.
R>Изучаю. А вот курса ооп у нас вроде как не намечается. Похоже, что нам покажут c++, скажут, что в нем бывают объекты и на этом все закончится =)
Так и будет. Немножко теории все-таки дадут, но это не будет даже близким по уровню формализма к вышеперечисленным теориям.
... << RSDN@Home 1.0 beta 7a >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Что такое ООП
От: Sinclair Россия https://github.com/evilguest/
Дата: 30.05.03 04:51
Оценка:
Здравствуйте, <Аноним>, Вы писали:
Они не покрывают ООП.
... << RSDN@Home 1.0 beta 7a >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Что такое ООП
От: Andir Россия
Дата: 30.05.03 05:27
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Rumata, Вы писали:


R>>Тут я ну никак не могу с Вами согласиться. Математика строит модели реальной жизни. Раз есть реальная жизнь, будет и модель. Ту же экономику потихоньку описывают с разной точностью. А программирование все-таки чуть более структурированная штука. Из-за того, хотя бы, что в конце концов программа должна работать на машине фон-Неймана, которая очень даже хорошо описана.

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

S>С другой стороны, в каждой науке есть различные подходы. Да, сейчас математики вроде договорились строить весь анализ на теории множеств. Но совершенно не факт, что это есть единственно возможный подход.

S>Вот в физике например, что есть момент импульса?
Плохой ты выбрал пример.

S>Вариант один: "произведение импульса на плечо, mvr". Это как раз и есть что-то вроде "наследование — это когда после имени класс через двоеточие пишут имя класса-предка....". Непереносимое определение.

Это следствие и всю жизнь об этом честно говорят и ни один физик не скажет, что это определение.

S>Вариант два: "инфинитезимальный оператор поворота". Особый такой векторный дифференциальный оператор. Совсем вроде другая штука. И откуда она такая берется? Куда девалось mvr?

А с другой стороны очень даже и куда. Оно и берётся из этого определения

S>Вариант три: "та величина, сохранение которой следует из изотропности пространства". О! Вот в это определение попадает и тот момент, который изучают в школе (классическая физика), и тот, который изучают в квантовой механике, а также все релятивистские модификации...

Полный эквивалент предыдущего определения.

S>Тем не менее все эти определения сосуществуют.

Ничего подобного, ты пытаешься показать. что эти определения различны, однако вся наука строится на том, что эти определения одинаковы (ну кроме первого), а вот если бы это было не так, тогда и можно было бы говорить о недостаточности теории.

S>Я думаю, что в ООП в итоге будет также. Типа "Наследование в смысле Руматы — это ........". Или там "полиморфизм в смысле Синклера".

Мне кажется, что всё это можно формализовать. Может быть в конечном итоге получится вот так: "Синклер наследованием назвал вот это ..., но он не учитывал вот такие аспекты ..." и т.п.

R>>А пока, как я понял, даже с терминологией не договорились. =((

S>Да не в этом даже дело. Ну покажите мне хотя бы пару точных формулировок того, что такое наследование. Чтобы их можно было применить к конкретной ситуации и сказать "да, здесь оно есть" или "нет, здесь его нету". Большинство авторов не затрудняют себя введением сколь бы то ни было точных определений.
S>Вот когда они начнут это делать, тогда и можно будет говорить к примеру о том, что Буч и Страуструп понимают под наследованием одно и то же, а вот Вирт придает ему несколько иной смысл. И будет о чем договариваться.
Есть очень интересная наука методологией зовётся и смысл именно в существовании некоторого общего базиса на котором можно построить новые методы познания (точнее даже определить дорогу к новым познаниям). Этот базис может быть размытым только вначале развития, чем дальше тем всё больше требования формализма к этому базису.
ООП как научный метод получил развитие в масштабах времени не так то и давно, именно поэтому, как мне кажется, он столь неформализованный. Но как я уже сказал, чем дальше тем больше требуется формализма, чтобы построить полную теорию. Вот уже и от нас (программистов) начали поступать справедливые возмущения (хотя это прерогатива теоретиков).
Поэтому как мне кажется формализм со временем появится и может даже кто-то из нас и станет его основателем.

З.Ы. Пример немного не в тему, но очень похоже: в истории физической науки как таковой сейчас стало принято выделять этапы накопления знаний и методов и этапы революционных изменений (для этого этапа очень часто употребляется фраза 'открытие витало в воздухе').

С Уважением, Andir!
Re[10]: Что такое ООП
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 30.05.03 06:57
Оценка:
Здравствуйте, Dmitry123, Вы писали:

D>Хех...ну не знаю, вобщем лично меня эти оболочки особо не напрягают,


Ну видимо тебе не приходилось сталкиваться с соотв. задачками. Как столкнешься, так сразу напрягут
... << RSDN@Home 1.0 beta 8 >>
AVK Blog
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.