love5an: (Default)
Dmitry Ignatiev ([personal profile] love5an) wrote2011-11-01 03:05 pm

Небольшой ответ на ответы на мои "наезды" на хаскель

Сейчас я опишу одну из главных причин по которым я недолюблюваю Ъ ф.п, и люблю CL.


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

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

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

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

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

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

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

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

[identity profile] grouzen.livejournal.com 2011-11-01 11:13 am (UTC)(link)
А я вот не соглашусь, потому как считаю, что изучают такие языки, для расширения знаний о других подходах к решению задач, для широты кругозора, так сказать. Правда, наверное есть и такие для кого это фетиш.

[identity profile] xeno-by.livejournal.com 2011-11-01 11:29 am (UTC)(link)
С нетерпением жду обещанной статьи, ибо сейчас я как раз занимаюсь реализацией макросов для Скалы: https://raw.github.com/xeno-by/kepler/master/papers/2011-10-29-RuProjectKepler.pdf. Кстати, интересно будет узнать твое мнение по поводу слайдов и проекта.

[identity profile] nikita-timofeev.livejournal.com 2011-11-01 11:29 am (UTC)(link)
В том-то и дело что по сравнению с Java, PHP, C*, Python Haskell и есть автоматизация. И кстати, что такое Ъ ф.п.?

[identity profile] frotmnenogi.livejournal.com 2011-11-01 11:29 am (UTC)(link)
У кого мозги работают в итеративном варианте, а у кого в функциональном - восприятие ЯП сугубо индивидуально.

(Anonymous) 2011-11-01 12:39 pm (UTC)(link)
Аналогия разработки ПО и промышленности ложная. Потому, что вы говорите об автоматизации производства, а производство ПО и так полностью автоматизировано: изготовление - получение маш.кода, а тиражирование - простое копирование данных. Нужно проводить аналогии говоря о развитии R&D и проектирования, потому что разработка ПО только из этого и состоит, без всякого этапа "строительство" или "массовое производство". А труд инженера, проектирующего автомобили автоматизирует не конвейер, точно также и экскаватор - автоматизирует не труд архитектора.

[identity profile] asvil (from livejournal.com) 2011-11-01 12:53 pm (UTC)(link)
Очень согласен с разбивкой на периоды.
И не обязательно что автоматизация наступит с использованием cl, но она не избежна, просто потому, что программа пишущая программу не требует зарплаты, и не болеет, и не кочевряжится:) Это же знаменитый очевидный закон капиталистов.
Надо будет сделать такую программу пишущую программы, а потом поднять среди программистов волну с "требованием долей компаний" с целью грабить караваны^W^W стимулировать спрос со стороны капиталистов.

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

вы будете смьеяться...

(Anonymous) 2011-11-01 02:15 pm (UTC)(link)
но сейчас в "развитых капиталистических странах" в ряде случаешь отходят от автоматизации, и возвращают людей за конвейер. Автоматы ломаются, их обслуживание далеко не дешево, отсутствует гибкость в мощностях, как при применении "тупой" рабочей силы.

(Anonymous) 2011-11-01 03:59 pm (UTC)(link)
Так неумно, что я настроил фильтр в своём ридере.

[identity profile] usovalx.livejournal.com 2011-11-01 05:00 pm (UTC)(link)
Хорошо, а если посмотреть на это с другой стороны?

Как уже заметили написание кода ближе к инженерной деятельности чем к машиностроению. И если посмотреть с этой стороны то динамические системы как раз больше похожи на кустарную разработку: тут скотчем примотали, там тестом подпёрли ;)

[identity profile] kika.livejournal.com 2011-11-01 06:51 pm (UTC)(link)
Этот наезд на ФП семантически эквивалентен наезду на Лисп за то что в нем много скобочек (что, вообще говоря, правда, их там на самом деле много).

[identity profile] max630.livejournal.com 2011-11-02 04:04 am (UTC)(link)
Я по-прежнему не верю что напрямую писать макросы может быть продуктивно. Необходимы фичи на более высоком уровне, как следует продуманные и реализванные.

Ленивое применение - как раз одна из таких фич. Которая, кстати, покрывает 90% макросов, да?

Статические типы - вторая. Большинство кода можно типизировать статически. Кстати, по мере того как ты runtime-генерацию S-выражений заменяешь на более структурированные элементы - это можно сделать во всё больших местах. Как обходить места где простые системы типов не применимы - можно обсуждать. Haskell предлагает какие-то решения. Тебе они могут не нравиться, но если вместо ты предлагаешь выкинуть типы совсем - многие тебя не поймут.