Джоэль недавно написал заметку 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. По сути не существует серебрянных пуль.
К>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++.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, Курилка, Вы писали:
К>>Но вот некоторые утверждают, что функциональное программирование является искомой серебрянной пулей
E>Очень похоже на мифы об ООП лет пятнадцать назад. ООП к тому времени уже имело долгую историю и то же были проекты, на которых был существенный выигрыш по отношению к C. Но народ дозрел до ООП только к 90-м годам. Сейчас, видимо, дозревает до функционального программирования. Чтобы еще лет через пятнадцать дозреть еще до чего-нибудь
Да, у меня примерно такое же впечатление сложилось. Только тут такой вопрос, что и то же ООП далеко не каждый, кто работает программистом понимает в полной мере, а уж ФП — это ещё более требовательная к мозгам вещь, имхо.
Здравствуйте, Курилка, Вы писали:
К>Только тут такой вопрос, что и то же ООП далеко не каждый, кто работает программистом понимает в полной мере, а уж ФП — это ещё более требовательная к мозгам вещь, имхо.
Ну, это дело наживное. Вопрос в том, с какого уровня начинается образование. Меня в 89-м начинали учить в школе на бейсике. Тогда даже о структурном программировании речи не шло. Принципы структурного и модульного программирования нам давали уже в университете. И тогда это после бейсика воспринималось как очень и очень продвинутое дело. Затем, когда в 92-м я начал сам на C++ программировать, я даже не знал, что классы/методы -- это уже ООП, понимание пришло только через год-полтора, когда статьи об ООП стали просачиваться в популярные журналы, вроде "КомпьютерПресс". Зато уже где-то в 99-м или 2000-м студентов уже начали учить ООП. Так что можно предположить, что сейчас молодежь приходя в ВУЗ уже больше понимает в ООП, чем я когда-то. Зато с этого базиса они могут начать "на свежую" голову изучать ФП. И, глядишь, лет через десять, ФП будет вполне обыденным делом. Так что ничего страшного для тех, кто будет входить в программирование, не видно.
Другое дело, что ФП требует перестройки мозгов у, как нас называют некоторые, "старперов". Которые в свое время уже серьезно перестроили себя на ООП после процедурного программирования. Вот с нашей стороны еще долго будет слышно ворчание "нафига надо?", презрительное фыркание "ну и что" и простое отмахивание "у меня и так все работает!".
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, Курилка, Вы писали:
К>>Только тут такой вопрос, что и то же ООП далеко не каждый, кто работает программистом понимает в полной мере, а уж ФП — это ещё более требовательная к мозгам вещь, имхо.
E>Ну, это дело наживное. Вопрос в том, с какого уровня начинается образование. Меня в 89-м начинали учить в школе на бейсике. Тогда даже о структурном программировании речи не шло. Принципы структурного и модульного программирования нам давали уже в университете. И тогда это после бейсика воспринималось как очень и очень продвинутое дело. Затем, когда в 92-м я начал сам на C++ программировать, я даже не знал, что классы/методы -- это уже ООП, понимание пришло только через год-полтора, когда статьи об ООП стали просачиваться в популярные журналы, вроде "КомпьютерПресс". Зато уже где-то в 99-м или 2000-м студентов уже начали учить ООП. Так что можно предположить, что сейчас молодежь приходя в ВУЗ уже больше понимает в ООП, чем я когда-то. Зато с этого базиса они могут начать "на свежую" голову изучать ФП. И, глядишь, лет через десять, ФП будет вполне обыденным делом. Так что ничего страшного для тех, кто будет входить в программирование, не видно.
E>Другое дело, что ФП требует перестройки мозгов у, как нас называют некоторые, "старперов". Которые в свое время уже серьезно перестроили себя на ООП после процедурного программирования. Вот с нашей стороны еще долго будет слышно ворчание "нафига надо?", презрительное фыркание "ну и что" и простое отмахивание "у меня и так все работает!".
Ну это да, возможно, но по мне гораздо более значимым будет то, что и то же ООП знают реально лишь часть программистов толком. Т.е. вопрос квалификации.
Конечно всегда будут люди, которые будут разбираться в тонкостях всяких вещей типа замыканий и т.п. Но вот думаю, что это будет выше средней планки квалификации.
Как говорится объём интеллекта на Земле вещь постоянная, а население растёт
Здравствуйте, Курилка, Вы писали:
К>Ну это да, возможно, но по мне гораздо более значимым будет то, что и то же ООП знают реально лишь часть программистов толком. Т.е. вопрос квалификации. К>Конечно всегда будут люди, которые будут разбираться в тонкостях всяких вещей типа замыканий и т.п. Но вот думаю, что это будет выше средней планки квалификации.
Ну, уж если искать, чего бояться, то следует боятся войны или каких-нибудь природных катаклизмов, которые разрушат нынешнюю глобализацию. Тогда от нас, программистов, вообще никакого проку не будет.
В случае же мирного развития событий как-нибудь прорвемся
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, Курилка, Вы писали:
К>>Ну это да, возможно, но по мне гораздо более значимым будет то, что и то же ООП знают реально лишь часть программистов толком. Т.е. вопрос квалификации. К>>Конечно всегда будут люди, которые будут разбираться в тонкостях всяких вещей типа замыканий и т.п. Но вот думаю, что это будет выше средней планки квалификации.
E>Ну, уж если искать, чего бояться, то следует боятся войны или каких-нибудь природных катаклизмов, которые разрушат нынешнюю глобализацию. Тогда от нас, программистов, вообще никакого проку не будет.
Дак вроде про "бояться" я не говорил
Просто при разговоре про серебрянную пулю речь идёт о повышении производительности труда вообще. Т.е. получается для среднего программера.
А разница между средним и действительно стоящим может быть очень нехилая, думаю согласишься
Т.е. получается: т.к. они не смогут понять тонкости ФП, они не смогут их заюзать и производительность не повысится. Вот так, если очень примитивно
E>В случае же мирного развития событий как-нибудь прорвемся
Здравствуйте, Курилка, Вы писали:
К>Дак вроде про "бояться" я не говорил
Мне показалось, что ты как раз опасаешься такого расслоения.
К>Просто при разговоре про серебрянную пулю речь идёт о повышении производительности труда вообще. Т.е. получается для среднего программера. К>А разница между средним и действительно стоящим может быть очень нехилая, думаю согласишься
Нет, я настроен более оптимистично. Думаю, что разница будет сохраняться аналогично нынешней ситуации.
К>Т.е. получается: т.к. они не смогут понять тонкости ФП, они не смогут их заюзать и производительность не повысится. Вот так, если очень примитивно
Да чего-нибудь придумают для продвижения "самого передового подхода" в массы. Свои паттерны придумают и книгу напишут. Рефакторинги какие-нибудь изобретут и IDE научат их делать. Снабдят IDE соответствующими Wizard-ами. В общем, найдется масса способов упростить практику не сильно напрягаясь теорией.
Все как всегда, короче
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
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.: Винодельческие провинции — это есть рулез!
Здравствуйте, eao197, Вы писали:
E>Да чего-нибудь придумают для продвижения "самого передового подхода" в массы. Свои паттерны придумают и книгу напишут. Рефакторинги какие-нибудь изобретут и IDE научат их делать. Снабдят IDE соответствующими Wizard-ами. В общем, найдется масса способов упростить практику не сильно напрягаясь теорией.
Здравствуйте, Курилка, Вы писали:
К>Да, у меня примерно такое же впечатление сложилось. Только тут такой вопрос, что и то же ООП далеко не каждый, кто работает программистом понимает в полной мере,
Понимает в какой степени? Чтобы использовать или чтобы писать об этом учебники?
К>а уж ФП — это ещё более требовательная к мозгам вещь, имхо.
Если у девелопера присутствует пониание того, что такое указатель на функцию, то FP сводится просто к очередной технике.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, Курилка, Вы писали:
К>Ну это да, возможно, но по мне гораздо более значимым будет то, что и то же ООП знают реально лишь часть программистов толком. Т.е. вопрос квалификации.
Интересно ты сам себя относишь к тем кто знает ООП реально или нереально
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, Алексей П, Вы писали:
АП>Здравствуйте, eao197, Вы писали:
E>>Да чего-нибудь придумают для продвижения "самого передового подхода" в массы. Свои паттерны придумают и книгу напишут. Рефакторинги какие-нибудь изобретут и IDE научат их делать. Снабдят IDE соответствующими Wizard-ами. В общем, найдется масса способов упростить практику не сильно напрягаясь теорией.
АП>ФП без теории... ужас! Это вообще возможно?
Ну как ООП без теории, пару кнопок, пару галок в визарде и... вуаля!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Одно хорошо: судя по всему, продавать серебряные пули становится всё сложнее и сложнее. Не то серебро закончилось, не то вампир какой-то невнятный, не то пули не той системы. Ну да и то ладно, может быть, придётся торговцам заниматься чем-то более значимым, чем продажей очередного "сильноколдунского" способа сложить кубики в 355-й вариант одной и той же пирамидки. Хотя, конечно, я далёк от иллюзии, что "заниматься делом" станет когда-нибудь "настоящей модой", очередным buzzword и этим, как его, а... майнстримом, вот. Ну да и это тоже славно.
Вот мне интересно, а что будет следующим? Что ещё можно вспомнить в славном прошлом программирования?
Здравствуйте, Курилка, Вы писали:
К>Вот мне интересно, а что будет следующим? Что ещё можно вспомнить в славном прошлом программирования?
Я надеюсь, это риторический вопрос?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Курилка, Вы писали:
АП>>ФП без теории... ужас! Это вообще возможно?
К>Ну как ООП без теории, пару кнопок, пару галок в визарде и... вуаля!
В случае с ООП да, этап пройденный. А вот ФП — это всё-таки код. И паттернов, которые можно было бы автоматически реализовать, afaik, немного.
Здравствуйте, Алексей П, Вы писали:
К>>Ну как ООП без теории, пару кнопок, пару галок в визарде и... вуаля!
АП>В случае с ООП да, этап пройденный. А вот ФП — это всё-таки код. И паттернов, которые можно было бы автоматически реализовать, afaik, немного.
Что значит: "Автоматически реализовать паттерн"?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, Курилка, Вы писали:
К>>Вот мне интересно, а что будет следующим? Что ещё можно вспомнить в славном прошлом программирования?
ГВ>Я надеюсь, это риторический вопрос?
Видимо да, тебяж Геной вроде зовут, а не Кассандрой