![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Сейчас я опишу одну из главных причин по которым я недолюблюваю Ъ ф.п, и люблю CL.
Понимаете, рассуждая о развитии IT-индустрии, можно провести аналогию с классической промышленностью.
В истории классической промышленности были периоды когда всё делали единично и ручками. Я мог бы сравнить такие периоды с ранним развитием IT. Со временами расцвета UNIX или DOS. С языками вроде Си.
Потом были периоды рабовладельческого строя и раннего капитализма, когда любую задачу закидывали необходимым количеством человеков. Я бы сказал, что сейчас в IT-индустрии как раз такой подобный период, со всеми этими Java и PHP.
Но в итоге, во всех развитых странах промышленность пришла к автоматизации. И производит продукты лучше, быстрее и качественнее, чем когда-либо.
И IT-индустрию ждет когда-нибудь то же самое, то есть массовая автоматизация, программы которые пишут программы(понимаете, к чему я клоню, да?), и это неминуемо.
Я смотрю на языки функционального программирования, вроде хаскеля, как на, ну не знаю, алмазные лопаты. Выглядят красиво, конечно, прочностью обладают неслабой, но что они могут сделать против таких детищ автоматизированной промышленности, как отбойные молотки и экскаваторы?
Я не вижу, как ф.п. может помочь с если уж не уменьшением, то хотя бы со сдерживанием растущей сложности софта. Я вижу ф.п. как модный фетиш, и ничего более, и поэтому время от времени на него наезжаю, т.к. бессмысленные фетиши меня раздражают, т.к. бессмысленные фетиши это может быть круто в дизайне шмоток, например, но не в инженерии.
Кстати, скоро напишу на хабр статью о макросах и метапрограммировании в лиспе, как только продумаю её.
Понимаете, рассуждая о развитии IT-индустрии, можно провести аналогию с классической промышленностью.
В истории классической промышленности были периоды когда всё делали единично и ручками. Я мог бы сравнить такие периоды с ранним развитием IT. Со временами расцвета UNIX или DOS. С языками вроде Си.
Потом были периоды рабовладельческого строя и раннего капитализма, когда любую задачу закидывали необходимым количеством человеков. Я бы сказал, что сейчас в IT-индустрии как раз такой подобный период, со всеми этими Java и PHP.
Но в итоге, во всех развитых странах промышленность пришла к автоматизации. И производит продукты лучше, быстрее и качественнее, чем когда-либо.
И IT-индустрию ждет когда-нибудь то же самое, то есть массовая автоматизация, программы которые пишут программы(понимаете, к чему я клоню, да?), и это неминуемо.
Я смотрю на языки функционального программирования, вроде хаскеля, как на, ну не знаю, алмазные лопаты. Выглядят красиво, конечно, прочностью обладают неслабой, но что они могут сделать против таких детищ автоматизированной промышленности, как отбойные молотки и экскаваторы?
Я не вижу, как ф.п. может помочь с если уж не уменьшением, то хотя бы со сдерживанием растущей сложности софта. Я вижу ф.п. как модный фетиш, и ничего более, и поэтому время от времени на него наезжаю, т.к. бессмысленные фетиши меня раздражают, т.к. бессмысленные фетиши это может быть круто в дизайне шмоток, например, но не в инженерии.
Кстати, скоро напишу на хабр статью о макросах и метапрограммировании в лиспе, как только продумаю её.
no subject
Date: 2011-11-01 06:03 pm (UTC)Я не буду утверждать тот-же Haskell уже там, но как метод борьбы с сложностью композиционность и чистота (точнее не столько сама чистота, сколько явные эффекты) мне кажутся более правильным подходом.
no subject
Date: 2011-11-01 06:12 pm (UTC)no subject
Date: 2011-11-01 08:44 pm (UTC)no subject
Date: 2011-11-02 12:48 am (UTC)Это и сокрытие состояния в объектах, и чистота которая позволяет точно знать что вот в этом коде state-related тараканов точно нет и его можно кешировать/параллелить/you name it.
И библиотеки комбинаторов и ещё 1001 методов.
no subject
Date: 2011-11-02 10:04 am (UTC)Макросы по возможностям построения абстракций как от ООП, так и от функциональных методов, отличаются _качественно_.
Что ООП, что ФП позволяют снизить accidental complexity, макросы же могут помочь даже с essential complexity.
no subject
Date: 2011-11-01 10:52 pm (UTC)no subject
Date: 2011-11-02 12:48 am (UTC)no subject
Date: 2011-11-02 12:51 am (UTC)no subject
Date: 2011-11-02 02:21 am (UTC)Потому что как только мы убираем линивость, то ФВП превращаются или в тыкву (компилятор не может упрощать код поскольку это будет нарушением семантики языка) или же в стандартный кошмарик где нам приходится руками сворачивать/переписывать код, протаскивать аккумуляторы или параметры ограничивающие глубину рекурсии и т.п.
no subject
Date: 2011-11-02 09:44 am (UTC)Это как минимум.