LINUX.ORG.RU

[вброс]Почему объектно-ориентированное программирование провалилось?

 


2

7

http://citforum.ru/gazeta/165/

по линку многабукаф, немного для Ъ:

факт остаётся фактом: сторона, представлявшая объектно-ориентированное программирование, во время открытой дискуссии с противниками под смех зала даже запуталась в своих же концепциях. Люди вспоминают, что у всех создалось стойкое впечатление, что аргументация Lisp’еров была куда убедительней и последовательней, чем сторонников ООП.

Другой крупный критик ООП – это известный специалист по программированию Александр Степанов, который, работая в Bell Labs, участвовал в создании C++ вместе c Бьерном Страуструпом (Bjarne Stroustrup), а впоследствии, уже после приглашения в HP Labs, написал Standard Template Library (STL). Александр Александрович полностью разочаровался в парадигме ООП; в частности, он пишет: “Я уверен, что парадигма ООП методологически неверна. Она начинает с построения классов. Это как если бы математики начинали бы с аксиом. Но реально никто не начинает с аксиом, все начинают с доказательств. Только когда найден набор подходящих доказательств, только тогда на этой основе выводится аксиома. Т.е. в математике вы заканчиваете аксиомой. Тоже самое и с программированием: сначала вы должны начинать развивать алгоритмы, и только в конце этой работы вы приходите к тому, что оказываетесь в состоянии сформулировать четкие и непротиворечивые интерфейсы. Именно из-за этой неразберихи в ООП так популярен рефакторинг – из-за ущербности парадигмы вы просто обречены на переписывание программы, уже в тот самый момент, когда только задумали её спроектировать в ООП-стиле”.

Ричард Столлман (Richard Stallman) также известен своим критическим отношением к ООП, особенно он любит шутить насчет того мифа объектников, что ООП “ускоряет разработку программ”: “Как только ты сказал слово «объект», можешь сразу забыть о модульности”.

Ричард Гэбриел неожиданно сравнивает нынешнюю ситуацию с ООП с провалом эфиродинамики в физике начала 20 века, когда, в сущности, произошла “тихая революция”.

Ответ на: комментарий от korvin_

> динамическая типизация != нестрогая типизация, миллион раз это повторяли.

Перл вообще-то именно weekly typed.

чё вы все так боитесь плагинов?
Со strong-typed - гораздо менее гибкости, и часто юзеру надо дать DSL - чтобы он сам экспериментировал: главное репортить ошибки правильно. Валидаторы и юнит-тесты избавят вас от страхов иметь проблемы кастинга в рантайме.
Всё равно в реале типами будут не встроенные int и char, а большие валидирующие куски (см. выше по этому топику - что такое тип «Деньги для бухгалтера т.Маши» или «Номер машины». Это чистый рантайм.

Чистые теоретики не нужны.

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

> Ты кажется перепутал JavaScript и VB.

не перепутал

http://en.wikipedia.org/wiki/Strong_typing

http://en.wikipedia.org/wiki/JavaScript

JavaScript is an implementation of the ECMAScript... It can be characterized as ... language that is dynamic, _weakly_ typed

http://learnyouahaskell.com/making-our-own-types-and-typeclasses#a-yes-no-typ...

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

> чё вы все так боитесь плагинов?

при чём тут плагины? они отлично пишутся и на Питонах/Рубях, которые строго типизированы. и на Схеме даже

Со strong-typed - гораздо менее гибкости, и часто юзеру надо дать DSL - чтобы он сам экспериментировал: главное репортить ошибки правильно. Валидаторы и юнит-тесты избавят вас от страхов иметь проблемы кастинга в рантайме.

Всё равно в реале типами будут не встроенные int и char, а большие валидирующие куски (см. выше по этому топику - что такое тип «Деньги для бухгалтера т.Маши» или «Номер машины». Это чистый рантайм.

какой-то бред

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

> при чём тут плагины? они отлично пишутся и на Питонах/Рубях, которые строго типизированы. и на Схеме даже

Вот и ищи работу на своих Питонах/Рубях/схемах в браузере.
А на джава-скрипте её много, только менагеры часто этого не понимают, и всё тормозит на сервере (вместо того чтобы взять суперскоростной в браузерах жабаскрипт и распараллелить процессинг хотя бы не рендеря компоненты на сервере - как делают веб мейл-клиенты или гугледоксы). И иметь на сервере чистый REST. Ты точно теоретик.

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

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

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

> Вот и ищи работу на своих Питонах/Рубях/схемах в браузере.

при чем тут поиск работы? мы говорили про возможность использования не-жаваскрипта для написания плагинов. в чём заключаются проблемы?

mv и archimag пишут на работе на CL, причём архимаг совершенно добровольно, по собственной инициативе. сколько вакансий на CL ты найдёшь?

ну и в принципе вот, немного, но есть: http://python.org/community/jobs/

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

> Это ерунда полная и зависит от того, как трактовать. JavaScript имеет признак слабой типизации только в том, что есть неявное приведение к строке там, где нужна строка, и то, это очень удобно.

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

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

> это не ерунда, а нестрогая типизация, источник нелепых ошибок

и никакого удобства (ну кроме сферического, в вакууме).


JavaScript потрясающе удобный язык, один из лучших с которыми мне приходилось работать, больше чем на JS я люблю писать только на CL. А сферические ошибки не нужны.

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

> А сферические ошибки не нужны.

угу, имеено поэтому языки, допускающие сферические ошибки (типа JS), тоже не нужны

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

> источник нелепых ошибок и никакого удобства

«вы просто не умеете его готовить» (С)

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

> опускающие сферические ошибки (типа JS)

Перестань бредить, очень глупо выглядит, тем более, что лидеры индустрии говорят совсем об обратном.

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

> Перестань бредить, очень глупо выглядит, тем более, что лидеры индустрии говорят совсем об обратном.

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

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

> задавят массой

увы и ах, как я и посетовал выше - массы как раз и нет. В том то и дело - что даже на уровне книги Фленагана, не говоря про все лекции Crockford'a, - жабаскрипт знают очень не многие. Не понимают. Потому что не понимают прототипы, closures, зачем нужны first-class functions итд. И не могут писать на нём масштабировано большие проекты (а в нём есть неймспейсы), можно делать модули etc. Как например YUI. Или хотя бы использовать YUI грамотно, все его виджеты.

И тех немногих умных - перехватывают большие компании, которые делают веб-мейлы и другие нетривиальные интерфейсы.

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

> языки, допускающие сферические ошибки (типа JS), тоже не нужны

что за сферические ошибки допускает js?

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

> веб-мейлы и другие нетривиальные интерфейсы

а архимаг писал, что веб-приложение на js писать проще, чем традиционное десктопное, а оказывается почтовый клиент на js — это нетривиальный интерфейс...

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

в js? ты не беришь, не? дай ка линк на ман, а не на костыли типа «var namespace...»

сказал же читать Фленагана или хотя бы послушать лекции Крокфорда.

Здесь вкратце (первый пример из гугла, видел намного лучше объяснения, но влом искать):
http://ajaxian.com/archives/a-javascript-module-pattern

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

> «I love it how JavaScript developers are always coming up with weird patterns and conventions»

на вкус и цвет.

И уже сказано: другого веба у нас нет.

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

> «I love it how JavaScript developers are always coming up with weird patterns and conventions»

http://developer.yahoo.com/yui/examples/

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

а теперь пожалуйста предложите другие технологии/языки (JSF и GWT не предлагать, не говоря о .НЕТе)

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

> Например, надо сделать таблицу из сотен тысяч селов, десятков табов, тултипами, модифицируемыми селлами, и прочими фишками)

микрософт ексель пойдёт?

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

> это из простого, в реале компоненты гораздо сложнее.

ух е... и тебе это нравится...? асиль extjs уже и не пугай народ.

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

> Там у яху очень хорошие примеры.

они там двух видов: страшные и очень страшные. на какие смотреть?

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

> они там двух видов: страшные и очень страшные. на какие смотреть?

а что есть не страшные?
(стили, цвета, фонты меняются легко)

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

> это костыли «var namespace», о которых я писал, кстати. чукча не читатель?

ты не сказал самого главного - что не просто var, а анонимная функция.

Костыль - понятие относительное. Всё можно назвать костылями, включая человеческий язык. Работает - что ещё надо.

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

> Впервые слышу, что жабаскрипт верх совершенства.

дорогие товарищи перфекционисты: кто выше сказал что «верх совершенства»? Было сказано- что другого (ФЯ, реально работающего, на котором уже не один десяток лет веб держится) подобного просто нет!!

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

> а что есть не страшные?

еще раз: extjs очень миленько выглядит.

еще раз: extjs очень миленько выглядит.

(стили, цвета, фонты меняются легко)

да какие нафиг стили!? сравни православный ext.direct и это убожество в твоей яхе.

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

> Было сказано- что другого (ФЯ, реально работающего, на котором уже не один десяток лет веб держится) подобного просто нет!

в полку КО прибыло?

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

> еще раз: extjs очень миленько выглядит

он свободный? открытый (можно ли зафиксить код в будущем самому - если надо)?
Там есть дата-таблица с тултипами, модифицируемыми селлами с плагинами-редакторами, которые можно написать самому (типа свинговских), скроллинг и вертикальный и горизонтальный и фиксирование титула и скроллинг всего остального?
Если да - тогда мы идём к вам :)

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

типа этого:
http://developer.yahoo.com/yui/examples/datatable/dt_complex.html
(забыл сказать, что надо ещё paginator, чтобы не грузило всю дату, её много табов, несколько десятков, и сортировка по столбцам на стороне клиента.
gwt имеет ещё скроллинг табов, чего нет у YUI, тоже надо.

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

ха,
как раз подтверждение моим словам выше - что сильных функциональщиков, хорошо знающих и правильно использующих жабаскрипт - не найдёшь: на YUI сайте вверху: «The YUI Team is hiring»

Если бы это были «мухи», как предположил korvin - то в условиях кризиса в америках с 10% безработицы - они не искали бы долго.
Нужны люди действительно могущие зафиксить сложный проект. Думаю - типа портировать data-table со старой версии 2 на 3. А таких людей в мире - как разработчиков ядра: раз два и обчёлся. Вот и ищут.

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

> он свободный? открытый (можно ли зафиксить код в будущем самому - если надо)?

ниче ниче, бан в гугле время от времени снимают.

Если да - тогда мы идём к вам

давно пора.

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

> Нужны люди действительно могущие зафиксить сложный проект. Думаю - типа портировать data-table со старой версии 2 на 3.

ты сам по линку-то ходил?

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

для немикрософтовского клиента?

OOo Calc?

для тех у кого нет экселя?

для тех, у кого нет уеб-браузера?

// korvin_

anonymous
()

Я предпочитаю модульное программирование, кто-то предпочитает ООП. Вообще по-моему стоило бы обсудить качество программного кода, который с использованием любой парадигмы может быть как дерьмовым, так и гениальным. Также, как разные типы сортировок на разных по свойствам наборам данных могут давать разброс результатов по времени - от нуля до плюс бесконечности. Или SQL-запросы: один напишет так, что база данных его день жевать будет, захламив память говном, а другой - сделает настолько изящно, что всем будет вообще по барабану, сколько он там работает, поскольку в итоге приложение, обращающееся к СУБД начнёт летать. А ещё надо оценить ТСО хороших программистов и дерьмовых...
И не знаю, что там с провалом эфиродинамики, но ежу понятно, что ООП было, есть и будет, никуда оно не денется ни через 50 лет, ни через 100.

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

>> он свободный? открытый (можно ли зафиксить код в будущем самому - если надо)?

ниче ниче, бан в гугле время от времени снимают.


у тебя какой-то другой гуг, из лицензии extjs:
------8<------
This is the appropriate option if you are creating proprietary applications and you are not prepared to distribute and share the source code of your application under the GPL.

* Based on the «Quid Pro Quo» principle, if you wish to derive a commercial advantage by not releasing your application under an open source license, you must purchase an appropriate number of commercial licenses from Sencha. By purchasing commercial licenses, you are no longer obligated to publish your source code.
------8<------

http://www.bytestopshere.com/post.cfm/brewing-controversy-surround-extjs
http://news.cnet.com/8301-13505_3-9878693-16.html

нет, спасибо.

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

Ха-ха-ха:

Jack, создатель ext-js, сам форкнул YUI:
«For 7 months I wrote yui-ext full time from my home»

так что в основе ext-js тоже стоял мощный фундамент YUI.

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

Короче, YUI - это по-настоящему свободная аяксовая библиотека и к вам с ext-js я не пойду.

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

> OOo Calc?

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

Только веб предоставляет такое отсутствие траблов.

для тех, у кого нет уеб-браузера?


а такие ещё есть в 21 веке?

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

> ты сам по линку-то ходил?

ходил. Стандартно. Чтобы не докучали пионеры с повышенным ЧСВ. Это приманка сильных спецов.

«However, many opportunities remain to work directly with YUI at Yahoo!. You can always find the full list of YUI-related jobs at Yahoo! by searching on “YUI” at careers.yahoo.com, where you’ll find open frontend engineering positions at Yahoo offices throughout the world.»

Если спец крупный и референсами на большие проекты - вам ответят.

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

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

siberean
()

19 страниц, эпично, да.

А ты прочел все 19 страниц темы, перед тем, как сделать вброс? :-D
blinkenlichten
()
Ответ на: комментарий от siberean

>бухгалтерше нужно через браузер - чтобы она открыла браузер и всё (не мучаясь с установками, версиями итд).

Ага, я помню, как в одной конторе нам за Zimbr'у эти самые бухгалтерши выносили мозг. Людям удобнее работать так, как привычнее и как не тормозит. Веб-приложения не отвечают ни одному из этих критериев.

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

> > Короче, YUI - это по-настоящему свободная аяксовая библиотека и к вам с ext-js я не пойду.

Короче, bsd - это по-настоящему свободная лицензия и к вам с gpl я не пойду.

fix.

и чем же, по-твоему, bsd лучше? :)

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

> что пугает? нормальная политика.

Платить vs бесплатно - это не разница? YUI же код _реально_ открыт, а не на словах. Мы могли его фиксить - когда появился дефектик на больших таблицах и одном особом случае.

И ради чего? Что такое кардинально другое имеет ext-js, чего нет в YUI2 и YUI3 - чтобы зависеть ещё от одного звена, которое может порваться (тот форкнувший гай может захотеть ещё больше денег, заболеть, перестать девелопить)? Стили легко меняются в YUI простым css.

Как ты думаешь - случайно народ всполошился при изменении лицензии или не случайно?
«The change in license over time, from a permissive open source license to a restrictive dual license, caused controversy in the ExtJS user community.[11][12][13][14]», 4 линка смотри в http://en.wikipedia.org/wiki/Ext_%28JavaScript_library%29.

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

> и чем же, по-твоему, bsd лучше? :)

Я не хочу поднимать здесь флейм bsd vs gpl. Я gpl тоже люблю, пользуюсь и свои проекты под ним ставлю. И здесь даже не столь проблема в лицензии (хотя тоже: ведь код будет реально меняться при фиксах, это не гнутые тулы и не линукс) - сколько ещё одно звено зависимсоти от одной фирмёшки - гая, которые гораздо меньше и моложе чем яху и её девелоперы (о репутации YUI vs ext даже не заикаюсь).

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