4 мая 2005 · Комментарий

ФП

1) Распространение функциональных языков и связанных с ними идей увеличивается. Сейчас академическая CS полностью оккупирована FP Я серьезно - ML в публикациях на тему ЯП занимает роль стандартного псевдокода, и все сколько-нибудь значинтельные исследования ведутся только в этой области. Другой research фактически маргинален Во-вторых - идет процесс очень активной ассимилияции идей из FP мэйнстримом (generics, type inference и closures уже ассимилированы). И в Java и в MS вопросами языкового дизайна сейчас занимаются люди из "функциональной академической науки" - Wadler, Odersky, Syme etc. На прошлогодних MS-овских посиделках в Зеленогорске было даже как-то дико слушать, как C# мелкомягкие докладчики (кстати - тоже FP-шники) сравнивали с Haskell или ML и открытым текстом говорили, что они стараются заимствовать то, что можно заимствовать. Следующая стадия, вероятно, будет разработкой промышленного функционального языка (как только рынок созреет для нового языка - сейчас он переваривается С# и Java). Вряд ли можно это назвать "рынок игнорирует". Что до того, что массово на ML коммерческие продукты не пишут - это увы объективная реальность Software Engeneering - долгоиграющий крупный проект следует делать на мэйнстримном языке. Важна именно мэйнстримность - ибо это и библиотеки и другие инструментальные средства, и гарантии долгосрочной поддержки и легкость в поисках кадров etc. 2) Тезис об эффективности кода ФЯ - увы неверен - O'Caml способен конкурировать с С++ (но довольно неровно - одно лучше там, другое - там), но это исключение. Эффективность Lisp - выдача желаемого за действительное (нет - можно подобрать примеры, где какой-нибудь компилятор Lisp выиграет у C, но в реальном использовании будет значительный проигрыщ). 3) Как раз школьников учить функциональым языкам проще, чем студентов. Опытный факт. Никакого "врожденного стиля мышления" тут нет, и когда образ мысли еще не сформирован - все проще - не надо ничего выворачивать, потому что выворачивать нечего. Единственная (но серьезная) сложность - школьников, в отличие от студентов, надо учить не только языку, но и программированию вообще. 4) Lisp - это уже давно история. ФП сейчас не Lisp, а ML и Haskell (которые отличаются от Lisp, примерно как С++ - от ассемблера). Если разговаривающий с Вами адепт ФП не в курсе этого - он просто не владеет предметом. 5) Я уже утомился объяснять противникам ФП, что ФП сейчас (в отличие от ООП) - не "методология" и не "парадигма". Что это просто набор определенных инструметов и приемов, большинство их которых к великой "функциональной" идее имеют лишь то отношение, что по объективным историческим причинам (одна из которых - сосредоточение в последние лет 20 практчески всего языкового research в этой области) зародились там. Параллели с австрийской школой оставляю на Ваше усмотрение.

К записи · К обсуждению