Да, и что мешает сделать то же в императивных языках? Только собственная лень!
А что мешает написать современную ОС целиком на ассемблере? Только собственная лень! Лень то она знает где проще Если правило ничем не форсируется технически (например языком или внешней системой), это только вопрос времени когда оно будет нарущено (сознательно или по недосмотру).
Про серебрянную пулю можно почитать что пишет сам Брукс 20 лет спустя. Он говорит, что есть сложность задачи и сложность реализации. Так вотт ФП снижает сложность реализации очень сильно, но сложность задачи пока что ничего уменьшить не в состоянии. Если ты сам не представляешь как задачу решить никакая технология за тебя ее не решит. Но в ФП путь межу формулировкой задачи и ее реализацией минимален. Так в соответствии с изоморфизмом Карри-Говарда программа изоморфна доказательству своей корректности.
Я ни за что (ни против чего) агитировать не буду. Просто отмечу, что не видел ни одной серьёзной системы (например, SCADA), сделанной на функциональных языках... А это - миллионное производство и жизни людей...
ну на самом деле системы такие есть - просто их не так уж много. Тот же Erlang вполне себе промышленный язык на котором пишутся распределенные системы для коммутаторов Erricson'а. На Lisp'е довольно много софта. Просто надо тенденции отслеживать - сейчас вообще ФП силу набирает, во все новые языки ФП фишки уже основательно проникли. Python, Javascript, F#, LINQ - все это сейчас двигатели ФП. С обьемом кода на Javascript'e вряд ли что нынче сравнится - а тем не менее это ФП язык (не чисто ФП но ФП).
А что мешает написать современную ОС целиком на ассемблере?
Ничего не мешает. Я писал!
И даже на ассемблере можно писать удобно и надёжно! Хотя занятие это объективно трудное.
Цитата(Imp @ Jun 21 2010, 21:37)
Так вотт ФП снижает сложность реализации очень сильно, но сложность задачи пока что ничего уменьшить не в состоянии.
Да, я именно про это... Меня "сложность реализации" интересует в гораздо меньшей степени
Цитата(Imp @ Jun 21 2010, 21:37)
Так в соответствии с изоморфизмом Карри-Говарда программа изоморфна доказательству своей корректности.
Дык, объясните тогда, отчего, к примеру, ни одной банковской системы нет на ФЯ, и ни одной SCADA? Исторически так сложилось? Да. Только ли это? А фиг знает...
Дык, объясните тогда, отчего, к примеру, ни одной банковской системы нет на ФЯ, и ни одной SCADA? Исторически так сложилось? Да. Только ли это? А фиг знает...
Дык, объясните тогда, отчего, к примеру, ни одной банковской системы нет на ФЯ, и ни одной SCADA? Исторически так сложилось? Да. Только ли это? А фиг знает...
Как раз исторически, имхо. ФП активно начали продвигаться вроде бы не так уж и давно сравнительно. А в банковские системы и SCADA уже вбуханы сотни тысяч, миллионы человеко-часов. Это мощное, определяющее будущее наследие. И от него уйти - я думаю очень и очень трудно.
Интересно. У меня информация только по российским банкам, да и то не очень свежая... Тут за(от)стой...
Однако не нашёл в списке ничего по части SCADA. То ли специфика мешает, то ли консерватизм, то ли монополизм
А в финансовой сфере обширно - от бэкэнда до трейдинговых систем... Интересно.
тут несколько факторов - Хаскель хорош для решения сложных задач, либо таких где важна возможность формального доказательства корректности. А если задача простая, но объемная обычно выбирают более традиционные языки + толпу дешевых индусов. В программировании вообще простые задачи по объему преобладают - отсюда и сравнительно малая распространенность ФП. Вот когда индусы смогут суппортить код на Хаскелле он быстро разовьеться
P.S. Может нам с этим обсуждением переместиться в тему о ФП?
Тот же Erlang вполне себе промышленный язык на котором пишутся распределенные системы для коммутаторов Erricson'а.
А если бы они его не открыли, то ничего бы мы про сам язык и сферу его применения не знали... так бы и думали, что коммутаторы только на Си писать можно.
Сообщение отредактировал foo-bar - Jun 23 2010, 10:29