love5an: (Default)
[personal profile] love5an
Сейчас я опишу одну из главных причин по которым я недолюблюваю Ъ ф.п, и люблю CL.


Понимаете, рассуждая о развитии IT-индустрии, можно провести аналогию с классической промышленностью.

В истории классической промышленности были периоды когда всё делали единично и ручками. Я мог бы сравнить такие периоды с ранним развитием IT. Со временами расцвета UNIX или DOS. С языками вроде Си.

Потом были периоды рабовладельческого строя и раннего капитализма, когда любую задачу закидывали необходимым количеством человеков. Я бы сказал, что сейчас в IT-индустрии как раз такой подобный период, со всеми этими Java и PHP.

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

И IT-индустрию ждет когда-нибудь то же самое, то есть массовая автоматизация, программы которые пишут программы(понимаете, к чему я клоню, да?), и это неминуемо.

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

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

Кстати, скоро напишу на хабр статью о макросах и метапрограммировании в лиспе, как только продумаю её.

Date: 2011-11-01 06:03 pm (UTC)
From: [identity profile] usovalx.livejournal.com
Пролистай "Why FP" -- там эта мотивация хорошо описана.
Я не буду утверждать тот-же Haskell уже там, но как метод борьбы с сложностью композиционность и чистота (точнее не столько сама чистота, сколько явные эффекты) мне кажутся более правильным подходом.

Date: 2011-11-01 06:12 pm (UTC)
From: [identity profile] love5an.livejournal.com
Я глубоко убежден, что со сложностью помогает бороться только абстрагирование, а не чистота и прочее, которые тем более ставят палки в колеса при необходимости общаться с реальным миром, таким образом добавляя сложности.

Date: 2011-11-01 08:44 pm (UTC)
From: [identity profile] 9zloy.livejournal.com
Гы. Полностью согласен. Повышение уровня абстракции единственное, что помогает.

Date: 2011-11-02 12:48 am (UTC)
From: [identity profile] usovalx.livejournal.com
Вот только абстрагирование это далеко не только макросы в лиспе.
Это и сокрытие состояния в объектах, и чистота которая позволяет точно знать что вот в этом коде state-related тараканов точно нет и его можно кешировать/параллелить/you name it.
И библиотеки комбинаторов и ещё 1001 методов.

Date: 2011-11-02 10:04 am (UTC)
From: [identity profile] love5an.livejournal.com
>Вот только абстрагирование это далеко не только макросы в лиспе.

Макросы по возможностям построения абстракций как от ООП, так и от функциональных методов, отличаются _качественно_.

Что ООП, что ФП позволяют снизить accidental complexity, макросы же могут помочь даже с essential complexity.

Date: 2011-11-01 10:52 pm (UTC)
From: [identity profile] xeno-by.livejournal.com
А можно что-нибудь кроме why fp? С ФВП все понятно, вопросы возникают дальше.

Date: 2011-11-02 12:48 am (UTC)
From: [identity profile] usovalx.livejournal.com
С этим лучше к thezs -- я так, сбоку стоял.

Date: 2011-11-02 12:51 am (UTC)
From: [identity profile] usovalx.livejournal.com
Э, thesz. Или в соответствующие группы.

Date: 2011-11-02 02:21 am (UTC)
From: [identity profile] usovalx.livejournal.com
Да, и ещё один момент. Why FP не столько о ФВП, сколько о них в ленивом функциональном языке.
Потому что как только мы убираем линивость, то ФВП превращаются или в тыкву (компилятор не может упрощать код поскольку это будет нарушением семантики языка) или же в стандартный кошмарик где нам приходится руками сворачивать/переписывать код, протаскивать аккумуляторы или параметры ограничивающие глубину рекурсии и т.п.

Date: 2011-11-02 09:44 am (UTC)
From: [identity profile] thesz.livejournal.com
Алан Кей считает, что Лиспу бы не повредила ленивость по умолчанию: http://kazimirmajorinc.blogspot.com/2010/02/alan-kay-on-fexprs.html

Это как минимум.

Profile

love5an: (Default)
Dmitry Ignatiev

June 2020

S M T W T F S
 123456
78910 111213
14151617181920
21222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 26th, 2025 10:13 pm
Powered by Dreamwidth Studios