Программирование как Лего?
От: Курилка Россия http://kirya.narod.ru/
Дата: 07.12.06 22:59
Оценка: 17 (1) +1 :)
Джоэль недавно написал заметку Lego Programming, в которой он по сути повторяет идею Брукса от 1987:

Not only are there no silver bullets now in view, the very nature of software makes it unlikely that there will be any—no inventions that will do for software productivity, reliability, and simplicity what electronics, transistors, and large-scale integration did for computer hardware.... I believe the hard part of building software to be the specification, design, and testing of this conceptual construct, not the labor of representing it and testing the fidelity of the representation.... If this is true, building software will always be hard. There is inherently no silver bullet.

(мой) перевод:

Не только не наблюдается в данный момент серебрянных пуль, но и сама природа программного обеспечения делает маловероятной появление таковых — никакое изобретение не сделает для продуктивности, надёжности, и простоты программного обеспечения того, что электроника, транзисторы, и СБИС сделали для аппаратного обеспечения комьютера.... Я верю, что трудная часть производства ПО это составление спецификаций, проектирование и тестирование этой концептуальной конструкции, а не труд воплощения его и тестирования точности этого воплощения.... Если это правда, то создание ПО всегда будет трудным. If this is true, building software will always be hard. По сути не существует серебрянных пуль.

По поводу неё вышла ещё одна заметка, более подробно раскрывающая тему (я так и не смог найти ФИО автора там )
Но вот некоторые утверждают, что функциональное программирование является искомой серебрянной пулей
Re: Программирование как Лего?
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 08.12.06 07:04
Оценка:
Здравствуйте, Курилка, Вы писали:

К>

К>I believe the hard part of building software to be the specification, design, and testing of this conceptual construct, not the labor of representing it and testing the fidelity of the representation....


Имхо, он недооценивает важность и сложность тестирования

К>Но вот некоторые утверждают, что функциональное программирование является искомой серебрянной пулей


Очень похоже на мифы об ООП лет пятнадцать назад. ООП к тому времени уже имело долгую историю и то же были проекты, на которых был существенный выигрыш по отношению к C. Но народ дозрел до ООП только к 90-м годам. Сейчас, видимо, дозревает до функционального программирования. Чтобы еще лет через пятнадцать дозреть еще до чего-нибудь


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[2]: Программирование как Лего?
От: Курилка Россия http://kirya.narod.ru/
Дата: 08.12.06 09:04
Оценка:
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, Курилка, Вы писали:


К>>Но вот некоторые утверждают, что функциональное программирование является искомой серебрянной пулей


E>Очень похоже на мифы об ООП лет пятнадцать назад. ООП к тому времени уже имело долгую историю и то же были проекты, на которых был существенный выигрыш по отношению к C. Но народ дозрел до ООП только к 90-м годам. Сейчас, видимо, дозревает до функционального программирования. Чтобы еще лет через пятнадцать дозреть еще до чего-нибудь


Да, у меня примерно такое же впечатление сложилось. Только тут такой вопрос, что и то же ООП далеко не каждый, кто работает программистом понимает в полной мере, а уж ФП — это ещё более требовательная к мозгам вещь, имхо.
Re[3]: Программирование как Лего?
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 08.12.06 09:59
Оценка: :))
Здравствуйте, Курилка, Вы писали:

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


Ну, это дело наживное. Вопрос в том, с какого уровня начинается образование. Меня в 89-м начинали учить в школе на бейсике. Тогда даже о структурном программировании речи не шло. Принципы структурного и модульного программирования нам давали уже в университете. И тогда это после бейсика воспринималось как очень и очень продвинутое дело. Затем, когда в 92-м я начал сам на C++ программировать, я даже не знал, что классы/методы -- это уже ООП, понимание пришло только через год-полтора, когда статьи об ООП стали просачиваться в популярные журналы, вроде "КомпьютерПресс". Зато уже где-то в 99-м или 2000-м студентов уже начали учить ООП. Так что можно предположить, что сейчас молодежь приходя в ВУЗ уже больше понимает в ООП, чем я когда-то. Зато с этого базиса они могут начать "на свежую" голову изучать ФП. И, глядишь, лет через десять, ФП будет вполне обыденным делом. Так что ничего страшного для тех, кто будет входить в программирование, не видно.

Другое дело, что ФП требует перестройки мозгов у, как нас называют некоторые, "старперов". Которые в свое время уже серьезно перестроили себя на ООП после процедурного программирования. Вот с нашей стороны еще долго будет слышно ворчание "нафига надо?", презрительное фыркание "ну и что" и простое отмахивание "у меня и так все работает!".


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[4]: Программирование как Лего?
От: Курилка Россия http://kirya.narod.ru/
Дата: 08.12.06 10:50
Оценка:
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, Курилка, Вы писали:


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


E>Ну, это дело наживное. Вопрос в том, с какого уровня начинается образование. Меня в 89-м начинали учить в школе на бейсике. Тогда даже о структурном программировании речи не шло. Принципы структурного и модульного программирования нам давали уже в университете. И тогда это после бейсика воспринималось как очень и очень продвинутое дело. Затем, когда в 92-м я начал сам на C++ программировать, я даже не знал, что классы/методы -- это уже ООП, понимание пришло только через год-полтора, когда статьи об ООП стали просачиваться в популярные журналы, вроде "КомпьютерПресс". Зато уже где-то в 99-м или 2000-м студентов уже начали учить ООП. Так что можно предположить, что сейчас молодежь приходя в ВУЗ уже больше понимает в ООП, чем я когда-то. Зато с этого базиса они могут начать "на свежую" голову изучать ФП. И, глядишь, лет через десять, ФП будет вполне обыденным делом. Так что ничего страшного для тех, кто будет входить в программирование, не видно.


E>Другое дело, что ФП требует перестройки мозгов у, как нас называют некоторые, "старперов". Которые в свое время уже серьезно перестроили себя на ООП после процедурного программирования. Вот с нашей стороны еще долго будет слышно ворчание "нафига надо?", презрительное фыркание "ну и что" и простое отмахивание "у меня и так все работает!".


Ну это да, возможно, но по мне гораздо более значимым будет то, что и то же ООП знают реально лишь часть программистов толком. Т.е. вопрос квалификации.
Конечно всегда будут люди, которые будут разбираться в тонкостях всяких вещей типа замыканий и т.п. Но вот думаю, что это будет выше средней планки квалификации.
Как говорится объём интеллекта на Земле вещь постоянная, а население растёт
Re[5]: Программирование как Лего?
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 08.12.06 10:54
Оценка:
Здравствуйте, Курилка, Вы писали:

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

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

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

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


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[6]: Программирование как Лего?
От: Курилка Россия http://kirya.narod.ru/
Дата: 08.12.06 10:59
Оценка:
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, Курилка, Вы писали:


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

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

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


Дак вроде про "бояться" я не говорил
Просто при разговоре про серебрянную пулю речь идёт о повышении производительности труда вообще. Т.е. получается для среднего программера.
А разница между средним и действительно стоящим может быть очень нехилая, думаю согласишься
Т.е. получается: т.к. они не смогут понять тонкости ФП, они не смогут их заюзать и производительность не повысится. Вот так, если очень примитивно

E>В случае же мирного развития событий как-нибудь прорвемся


Да ясен пончик
Re[7]: Программирование как Лего?
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 08.12.06 11:26
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Дак вроде про "бояться" я не говорил


Мне показалось, что ты как раз опасаешься такого расслоения.

К>Просто при разговоре про серебрянную пулю речь идёт о повышении производительности труда вообще. Т.е. получается для среднего программера.

К>А разница между средним и действительно стоящим может быть очень нехилая, думаю согласишься

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

К>Т.е. получается: т.к. они не смогут понять тонкости ФП, они не смогут их заюзать и производительность не повысится. Вот так, если очень примитивно


Да чего-нибудь придумают для продвижения "самого передового подхода" в массы. Свои паттерны придумают и книгу напишут. Рефакторинги какие-нибудь изобретут и IDE научат их делать. Снабдят IDE соответствующими Wizard-ами. В общем, найдется масса способов упростить практику не сильно напрягаясь теорией.

Все как всегда, короче


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: Программирование как Лего?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 08.12.06 15:14
Оценка: 107 (7) +3 :))) :))) :)
Здравствуйте, Курилка, Вы писали:

К>По поводу неё вышла ещё одна заметка, более подробно раскрывающая тему (я так и не смог найти ФИО автора там )

К>Но вот некоторые утверждают, что функциональное программирование является искомой серебрянной пулей

Замечательный ответ, процитирую полностью:

You wish Says:

And yet Lisp, which is considered a functional language, has been around since 1962 (it was spec’ed in 1958), and Brooks doesn’t point to it in his paper. Functional programming isn’t new, and it is certainly not a silver bullet.





Собсно, вокруг чего крутимся-то? Вокруг того, какой способ агрегирования алгоритмов и данных станет Самой Настоящей Серебряной Пулей. Сначала они были отдельно: алгоритмы и данные, это назвали Структурным Программированием. Потом их стали частично совмещать, привязывая алгоритмы к данным — так появилось ООП. Потом решили, что часть алгоритмов могут быть универсальными для всех-всех-всех — так родилось КОП. Потом решили, что универсальные для всех-всех-всех алгоритмы нужны не всегда, а можно их прикручивать в нужных местах — всплыло АОП. Потом вспомнили, что агрегаты вообще можно создавать по месту и обращаться с ними довольно таки своевольно — тут уже вспомнили про ФП. Ну, осталось вспомнить, что программы могут интерпретироваться как данные (уже вспомнили), а данные — как программы, тут все дружно вспомнят про Lisp, но будут говорить, что это "не-Lisp". Театр, да и только.

Одно хорошо: судя по всему, продавать серебряные пули становится всё сложнее и сложнее. Не то серебро закончилось, не то вампир какой-то невнятный, не то пули не той системы. Ну да и то ладно, может быть, придётся торговцам заниматься чем-то более значимым, чем продажей очередного "сильноколдунского" способа сложить кубики в 355-й вариант одной и той же пирамидки. Хотя, конечно, я далёк от иллюзии, что "заниматься делом" станет когда-нибудь "настоящей модой", очередным buzzword и этим, как его, а... майнстримом, вот. Ну да и это тоже славно.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[8]: Программирование как Лего?
От: Алексей П Россия  
Дата: 08.12.06 16:51
Оценка:
Здравствуйте, eao197, Вы писали:

E>Да чего-нибудь придумают для продвижения "самого передового подхода" в массы. Свои паттерны придумают и книгу напишут. Рефакторинги какие-нибудь изобретут и IDE научат их делать. Снабдят IDE соответствующими Wizard-ами. В общем, найдется масса способов упростить практику не сильно напрягаясь теорией.


ФП без теории... ужас! Это вообще возможно?
... << RSDN@Home 1.2.0 alpha rev. 668>>
Re[3]: Программирование как Лего?
От: IT Россия linq2db.com
Дата: 08.12.06 20:44
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Да, у меня примерно такое же впечатление сложилось. Только тут такой вопрос, что и то же ООП далеко не каждый, кто работает программистом понимает в полной мере,


Понимает в какой степени? Чтобы использовать или чтобы писать об этом учебники?

К>а уж ФП — это ещё более требовательная к мозгам вещь, имхо.


Если у девелопера присутствует пониание того, что такое указатель на функцию, то FP сводится просто к очередной технике.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Программирование как Лего?
От: IT Россия linq2db.com
Дата: 08.12.06 20:54
Оценка:
Здравствуйте, eao197, Вы писали:

E>как нас называют некоторые, "старперов".


Старпёрами вас называют не из-за возраста, а потому что старпёрство оно прежде всего в голове.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[5]: Программирование как Лего?
От: IT Россия linq2db.com
Дата: 08.12.06 20:59
Оценка: +1
Здравствуйте, Курилка, Вы писали:

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


Интересно ты сам себя относишь к тем кто знает ООП реально или нереально
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[9]: Программирование как Лего?
От: Курилка Россия http://kirya.narod.ru/
Дата: 08.12.06 21:00
Оценка:
Здравствуйте, Алексей П, Вы писали:

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


E>>Да чего-нибудь придумают для продвижения "самого передового подхода" в массы. Свои паттерны придумают и книгу напишут. Рефакторинги какие-нибудь изобретут и IDE научат их делать. Снабдят IDE соответствующими Wizard-ами. В общем, найдется масса способов упростить практику не сильно напрягаясь теорией.


АП>ФП без теории... ужас! Это вообще возможно?


Ну как ООП без теории, пару кнопок, пару галок в визарде и... вуаля!
Re[2]: Программирование как Лего?
От: Курилка Россия http://kirya.narod.ru/
Дата: 08.12.06 21:05
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Одно хорошо: судя по всему, продавать серебряные пули становится всё сложнее и сложнее. Не то серебро закончилось, не то вампир какой-то невнятный, не то пули не той системы. Ну да и то ладно, может быть, придётся торговцам заниматься чем-то более значимым, чем продажей очередного "сильноколдунского" способа сложить кубики в 355-й вариант одной и той же пирамидки. Хотя, конечно, я далёк от иллюзии, что "заниматься делом" станет когда-нибудь "настоящей модой", очередным buzzword и этим, как его, а... майнстримом, вот. Ну да и это тоже славно.


Вот мне интересно, а что будет следующим? Что ещё можно вспомнить в славном прошлом программирования?
Re[3]: Программирование как Лего?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 08.12.06 21:26
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Вот мне интересно, а что будет следующим? Что ещё можно вспомнить в славном прошлом программирования?


Я надеюсь, это риторический вопрос?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[10]: Программирование как Лего?
От: Алексей П Россия  
Дата: 08.12.06 21:55
Оценка:
Здравствуйте, Курилка, Вы писали:

АП>>ФП без теории... ужас! Это вообще возможно?


К>Ну как ООП без теории, пару кнопок, пару галок в визарде и... вуаля!


В случае с ООП да, этап пройденный. А вот ФП — это всё-таки код. И паттернов, которые можно было бы автоматически реализовать, afaik, немного.
... << RSDN@Home 1.2.0 alpha rev. 668>>
Re[11]: Программирование как Лего?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 08.12.06 22:03
Оценка:
Здравствуйте, Алексей П, Вы писали:

К>>Ну как ООП без теории, пару кнопок, пару галок в визарде и... вуаля!


АП>В случае с ООП да, этап пройденный. А вот ФП — это всё-таки код. И паттернов, которые можно было бы автоматически реализовать, afaik, немного.


Что значит: "Автоматически реализовать паттерн"?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[4]: Программирование как Лего?
От: Курилка Россия http://kirya.narod.ru/
Дата: 08.12.06 22:07
Оценка: :))
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Здравствуйте, Курилка, Вы писали:


К>>Вот мне интересно, а что будет следующим? Что ещё можно вспомнить в славном прошлом программирования?


ГВ>Я надеюсь, это риторический вопрос?


Видимо да, тебяж Геной вроде зовут, а не Кассандрой
Re[12]: Программирование как Лего?
От: Алексей П Россия  
Дата: 08.12.06 22:37
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Что значит: "Автоматически реализовать паттерн"?


Имею в виду автоматическую генерацию кода визардом или чем-то вроде форм-дизайнера. А как ещё?
... << RSDN@Home 1.2.0 alpha rev. 668>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.