Circle-ellipse problem на "Хабрахабре"
От: Аноним  
Дата: 02.07.11 10:06
Оценка: -1
По идее, это надо в "Коллеги улыбнитесь". На "Хабрахабре" устроили голосование и обсуждение классической "Circle-ellipse problem".

Заставляет задуматься о том, насколько базовые концепции объектно-ориентированного программирования понятны средней массе программистов, да и о полноценности самого объектно-ориентированном программирования.

И ведь на "Хабрахабре", насколько я понимаю, общаются достаточно активные представители профессии, те, кто чем-то интересуется и желает развиваться. Тех, кто просто отсиживает время за деньги, там, скорее всего, нет.
Re: Circle-ellipse problem на "Хабрахабре"
От: dimgel Россия https://github.com/dimgel
Дата: 02.07.11 10:56
Оценка: +2
Здравствуйте, Аноним, Вы писали:

А>На "Хабрахабре" устроили голосование и обсуждение классической "Circle-ellipse problem".


А где ссылка?
Re: Circle-ellipse problem на "Хабрахабре"
От: Sinix  
Дата: 02.07.11 10:58
Оценка: 7 (2) +6 :))) :)
Здравствуйте, Аноним, Вы писали:

А>Заставляет задуматься о том, насколько базовые концепции объектно-ориентированного программирования понятны средней массе программистов, да и о полноценности самого объектно-ориентированном программирования.


Имхо, оценивать уровень программистов по хабрахабру — всё равно, что судить о мире в целом — по какому-нить ньюсру
Re: Circle-ellipse problem на "Хабрахабре"
От: wildwind Россия  
Дата: 02.07.11 12:11
Оценка:
Здравствуйте, Аноним, Вы писали:

А>По идее, это надо в "Коллеги улыбнитесь". На "Хабрахабре" устроили голосование и обсуждение классической "Circle-ellipse problem".


Это надо в мусорку. Ты что хотел-то? Поругать Хабр или сказать, что такие элементарные вещи должны знать в детском саду? Ну тогда приведи свое, "единственно верное" решение проблемы.

P.S. Хабр наводнен самыми разными представителями самых разных профессий.
Re[2]: Circle-ellipse problem на "Хабрахабре"
От: Аноним  
Дата: 02.07.11 12:32
Оценка: -3
Здравствуйте, wildwind, Вы писали:

W>Это надо в мусорку.


Это тебя надо в мусорку, хамло.
Re[2]: Circle-ellipse problem на "Хабрахабре"
От: Аноним  
Дата: 02.07.11 12:38
Оценка:
Здравствуйте, dimgel, Вы писали:

D>А где ссылка?


Да, черт, это ж надо было так стормозить...

http://habrahabr.ru/blogs/programming/123014/
Re[2]: Circle-ellipse problem на "Хабрахабре"
От: Аноним  
Дата: 02.07.11 12:57
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Имхо, оценивать уровень программистов по хабрахабру — всё равно, что судить о мире в целом — по какому-нить ньюсру


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

А какие сайты "правильные"?
Re[3]: Circle-ellipse problem на "Хабрахабре"
От: Sinix  
Дата: 02.07.11 13:07
Оценка: +4
Здравствуйте, Аноним, Вы писали:

А>Это тебя надо в мусорку, хамло.

А давайте таки закроем филиал ЛоРа, плииз?

Если по теме — задача сама по себе бессмысленная. Чего мы хотим добиться? Представить окружность как эллипс? Эллипс как окружность (если, конечно, фокусы совпадают)? Поработать с геометрическими абстракциями или отрисовать графические примитивы? Или просто показать, что баррдак в модели не пропадает магическим образом, если изложить модель в ооп-терминах?

It depends — для каждого случая вполне можно подобрать свои компромиссные решения. Самое правильное

Liskov substitution principle, вид сбоку. Эллипс никак не связан с кругом ровно по тем же причинам, по которым прямоугольник не связан с квадратом.

en.wikipedia.org/wiki/Circle-ellipse_problem


Другими словами, не надо использовать наследование просто потому, что кажется что им можно решить проблему. Точно так же, как и с регулярными выражениями, у вас теперь две проблемы. Ну, и холивар в духе "микроскоп — отстойный ударный инструмент!" — третья
Re: Circle-ellipse problem на "Хабрахабре"
От: Аноним  
Дата: 02.07.11 13:11
Оценка: :)
Здравствуйте, Аноним, Вы писали:

А>По идее, это надо в "Коллеги улыбнитесь". На "Хабрахабре" устроили голосование и обсуждение классической "Circle-ellipse problem".


А>Заставляет задуматься о том, насколько базовые концепции объектно-ориентированного программирования понятны средней массе программистов, да и о полноценности самого объектно-ориентированном программирования.


Как на основе этого голосования можно делать выводы про знание базовых концепций ООП? Все зависит от того как разработчик определит характеристики этих объектов и какие характеристики можно выделить в общую группу (назвать предком). При удачном стечении обстоятельств множество свойств одного объекта может полностью совпасть с пересечением множеств свойств данных объектов. То есть результаты опроса скорее всего покажут с какими моделями чаще приходилось работать программистам. Для меня например круг и эллипс — это подкласс прямоугольников
Re[3]: Circle-ellipse problem на "Хабрахабре"
От: Sinix  
Дата: 02.07.11 13:20
Оценка:
Здравствуйте, Аноним, Вы писали:

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

Нет, там собираются люди. Не для того, чтобы решить проблемы, а так — потрындеть и полюбоваться на трындёж со стороны. То же самое в полный рост наблюдается на местных политике/священных войнах/ожизни. Несмотря на то что большинство участников — люди неглупые, общий уровень осведомлённости, аргументации и взаимоуважения прям зашкаливает, да.

Ну как, будем обзывать хабрахабровцев ущербными, вас — в мусорку хамлом, а меня — троллем? Или таки поостережёмся делать выводы по поверхностным ассоциациям?
Re[2]: Circle-ellipse problem на "Хабрахабре"
От: Аноним  
Дата: 02.07.11 13:29
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как на основе этого голосования можно делать выводы про знание базовых концепций ООП? Все зависит от того как разработчик определит характеристики этих объектов и какие характеристики можно выделить в общую группу (назвать предком). При удачном стечении обстоятельств множество свойств одного объекта может полностью совпасть с пересечением множеств свойств данных объектов. То есть результаты опроса скорее всего покажут с какими моделями чаще приходилось работать программистам. Для меня например круг и эллипс — это подкласс прямоугольников


Я вижу проблему в том, что две трети программистов решили применить некорректное наследование в этом элементарном классическом примере.

А как насчет более сложных случаев в реальных программах? Как вы думаете, будут ли они принимать неправильные решения и делать бредовые и логически ошибочные объектные модели? Конечно, будут. И делают.

В принципе, я всю жизнь любил делать все как следует, качественно. Теперь я пытаюсь научиться программировать как следует, качественно, стать хорошим программистом.

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

В программировании я никак не могу соединить концы с концами и довести идеи до логического завершения. Каждая новая программа или модуль — это эксперимент. Каждую новую программу приходится "рожать" в муках и переделывать по несколько раз. Утомило это все невыносимо.
Re[3]: Circle-ellipse problem на "Хабрахабре"
От: Аноним  
Дата: 02.07.11 13:55
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Я вижу проблему в том, что две трети программистов решили применить некорректное наследование в этом элементарном классическом примере.

Некорректное? Для этого надо спросить: что они понимают под кругом и эллипсом. Без знания на это вопрос не о чем судить. Главное чтоб у разработчиков были _непротиворечивые_абстракции_ для "модели мира" для разрабатываемой программы.

А>А как насчет более сложных случаев в реальных программах? Как вы думаете, будут ли они принимать неправильные решения и делать бредовые и логически ошибочные объектные модели? Конечно, будут. И делают.

Без комментариев. Я сам грешен. Не буду судить, да не судим буду

А>В принципе, я всю жизнь любил делать все как следует, качественно. Теперь я пытаюсь научиться программировать как следует, качественно, стать хорошим программистом.


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


А>В программировании я никак не могу соединить концы с концами и довести идеи до логического завершения. Каждая новая программа или модуль — это эксперимент. Каждую новую программу приходится "рожать" в муках и переделывать по несколько раз. Утомило это все невыносимо.


ООП — это модель/способ решения реальных задач. Это не сама реальность, не надо на нем зацикливаться, не все задачи решаются при помощи такой модели. Основной плюс ООП — это декомпозиция задачи, разделение на модули. Остальные моменты лучше решать более соответствующими проблеме методами.
Re[3]: Circle-ellipse problem на "Хабрахабре"
От: Wolverrum Ниоткуда  
Дата: 02.07.11 14:19
Оценка: :))) :)
Здравствуйте, Аноним, Вы писали:
А>Я вижу проблему в том, что две трети программистов решили применить некорректное наследование в этом элементарном классическом примере.

Сходил в Википедию — там есть рекомендация наследовать эллипс от круга, ибо "для эллипса надо хранить больше информации".
И еще мешок с тележкой "возможных решений" предложили.
Ужос.


Аж руки зудят закатать статью вида "ellipse-triangle problem"
Re[4]: Circle-ellipse problem на "Хабрахабре"
От: Аноним  
Дата: 02.07.11 16:48
Оценка: +1 :)
Здравствуйте, Аноним, Вы писали:

А>Некорректное? Для этого надо спросить: что они понимают под кругом и эллипсом.


Глубокое замечание.
Re[5]: Circle-ellipse problem на "Хабрахабре"
От: Аноним  
Дата: 02.07.11 17:17
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>Некорректное? Для этого надо спросить: что они понимают под кругом и эллипсом.


А>Глубокое замечание.


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

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

Голубой и синий. Понимайте как хотите, но кто из них объектно-ориентированный "папа", а кто объектно-ориентированный "сын"?
Re[3]: Circle-ellipse problem на "Хабрахабре"
От: minorlogic Украина  
Дата: 03.07.11 08:48
Оценка:
Здравствуйте, <Аноним>, Вы писали:

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


А какое корректное ?
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[4]: Circle-ellipse problem на "Хабрахабре"
От: Аноним  
Дата: 03.07.11 12:08
Оценка: +1
Здравствуйте, minorlogic, Вы писали:

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


M>А какое корректное ?


В этом примере, очевидно, не нужно наследовать одно от другого.

Можно отнаследовать классы "Окружность" и "Эллипс" от общего базового класса, если согласно спецификации у них возникнет общая функциональность. В другом варианте класс "Окружность" может агрегировать объект "Эллипс" для реализации своей функциональности — это корректное решение, но не самое рациональное.

Вообще, я сейчас в процессе изучения теории программирования и ООП в частности, но мне уже давно кажется, что в ООП есть некоторые принципиальные логические недостатки, и в целом это ущербная методология. И видимое отсутствие единого понимания ООП является всего лишь проявлением глубоких фундаментальных проблем данной дисциплины.
Re[5]: Circle-ellipse problem на "Хабрахабре"
От: dimgel Россия https://github.com/dimgel
Дата: 03.07.11 12:20
Оценка: 1 (1) +1
Здравствуйте, Аноним, Вы писали:

А>мне уже давно кажется, что в ООП есть некоторые принципиальные логические недостатки,


Как я понял из всех здешних (в т.ч. давнишних) и хабровских (из сабжа) споров, у ООП принципиальный недостаток всего один: оно не является серебряной пулей. Есть однако подозрение, что это недостаток не ООП.

А>и в целом это ущербная методология.


Гы.

А>И видимое отсутствие единого понимания ООП является всего лишь проявлением глубоких фундаментальных проблем данной дисциплины.


Отсутствие решений для sqrt(-1) на множестве действительных чисел является всего лишь проявлением глубоких фундаментальных проблем данного множества.
Re[5]: Circle-ellipse problem на "Хабрахабре"
От: minorlogic Украина  
Дата: 03.07.11 12:43
Оценка: +2 -1
Здравствуйте, <Аноним>, Вы писали:

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


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


M>>А какое корректное ?


А>В этом примере, очевидно, не нужно наследовать одно от другого.


Очевидно что вы ошибаетесь.

Поясню. В примере вообще не сказано что какие либо данные хранятся и какую функциональность несут классы. И уж тем более непонятно в каких рамках и какие задачи они должны решать и что между классами может быть общего.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[6]: Circle-ellipse problem на "Хабрахабре"
От: Аноним  
Дата: 03.07.11 13:10
Оценка: +1
Здравствуйте, dimgel, Вы писали:

D>...у ООП принципиальный недостаток всего один: оно не является серебряной пулей. Есть однако подозрение, что это недостаток не ООП.


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

M>В примере вообще не сказано что какие либо данные хранятся и какую функциональность несут классы. И уж тем более непонятно в каких рамках и какие задачи они должны решать и что между классами может быть общего.


Вы, господа, своими ответами иллюстрируете причину, по которой не стоит обсуждать какие-либо более-менее нетривиальные вопросы на форумах: в ответ вы получите либо общее место (изложение стереотипных суждений, ответ dimgel), либо демагогию (приведение к абсурду, ответ minorlogic).

Ладно, проехали. На самом деле, я хотел просто дать ссылку на обсуждение на "Хабрахабре", но саму ссылку забыл. Устраивать обуждение непосредственно самой "Circle-Ellipse Problem" я не собирался — это занятие ну чересчур примитивное. Не ожидал, что кто-то начнет этим заниматься.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.