stdray: (Default)
stdray ([personal profile] stdray) wrote2012-06-12 04:07 pm

Simon Peyton Jones - Haskell is useless



В этой шутке есть доля шутки, хотя непонятно какая именно. То есть я смотрел, как [personal profile] metaclass под всеобщие аплодисменты пытался какие-то низкоуровневые вещи на Haskell делать, которые потом, по-моему, в момент были переписаны на Python. Или же Scala, которая, по идее, попадает в правый верхний угол этой диаграммки, стремительным ростом своей популярности какбэ подтверждает корректность рассуждений. Хотя ведь и на Haskell бывают откровения, но тут сложно судить, что в итоге больше повлияло: мощь Хаскеля или же скил автора презентации опердени. Я думаю, что второе. Но тут как: чем чаще будет появляться информация об успешных проектах с использованием Haskell, тем выше мотивация для преодоления страха (лени?) перед всякими монадами, аппликативными функторами, полиморфизмом высших порядков и прочими отличными терминами. Чтобы что-то реальное писать на Haskell надо обладать неплохим скилом (как минимум уметь писать подобное на чем-то другом) и быть ко всему готовым. Scala же не заставляет сходу менять привычки, то есть можно по началу писать как на Java с маттерн-матчингом и замыканими, а потом втянуться. Ну а если с большого расстояния посмотреть, то суждение таково, что "все енто ихнее функциональное программирование - баловство, лучше прочитать новую книжку по паттернам, рефакторингу и последним тенденция в agile". А еще дальше оказывается, что большинство даже слышали про ФП и в особо запущенных случая запрещают LINQ использовать, ибо нипонятно.

С программированием что-то странное происходит. То есть куда-то уходит понимание, что основные инструменты программиста - это его мозг и язык программирования, вместо этого какая-то каша. Выясняется, что код компилируется вижаул студией, а не компилятором, что запросы к sql серверу надо делать исключительно мышкой. То есть появляется новый слой абстракции костылей. Развиваются инструменты для использования инструмента: IDE, рефакторинги, скалфолдинг, ГРАФИЧЕСКИЕ КОНСТРУКТОРЫ. И какие-то улучшения в этим компонентах вызывают гораздо больше восторга и обсуждение, чем в самом языке. Я вот смотрю, как выползает на свет .net 4.5, так программистам на додиезе плевать вообщем-то на async/await, как и на внезапное замыкание на значение счетчика цикла, но вот НОВЫЙ РЕВОЛЮЦИОННЫЙ СТИЛЬ СТУДИИ - гвоздь программы, то есть реально войны ведут лучше ли станет программироват с серыми иконками. Языков много, срачи какой лучше, олимпиады всякие... А победит (то есть получит наибольшее распространение) язык обладающий самым продвинутым инструментарием по работе с ним. И это точно будет не ФП язык, поскольку функциональщики они такие: "ide нинужно", и все. Но это так, одна из версий, хотя и весьма реальная, на мой взгляд. В принципе, декларативность достигается, хоть и такими корявыми методами, так что все ровно.

[identity profile] katresv.livejournal.com 2012-06-12 02:47 pm (UTC)(link)
Вот и надо дать нормальный инструмент, ползволяющий делать безопастные модули и аккуратно их собирать. Вместо этого какое-то топтание на месте: новые дизигнеры, новые скалфолдинги, новые рефакторинги, но обобщить это все в T4 как-то попыток нет. То есть конструкт Лего и есть Дупло, а строить из разных деталей неудобно.
Я думаю, просто пока не определились с неким средневзвешенным "удобно для большинства", но подвижки-то есть, согласитесь, слишком разношерстное видение этого "удобно".

А я натыкался на рсдн, на хабре и в чатике. Просто каждый строит в интернетах свои мирок так, чтобы неугодные вещи туда не проникали, но мне иногда вот попадается.
Соглашусь, но я имела в виду реал. В реале многих ваших коллег волнует стиль студии?

Вот JetBrains в свое время решили, что стоит, и пришли у успеху. Я знаю, какое после Visual Studio оставляет ощущение Eclipse, потому не могу недооценивать важность хорошей IDE.
Согласитесь, что хорошая IDE появляется, 1. когда язык де-факто широко распространен 2. когда вкладываются значительные средства в создание и продвижение языка.

Вот в ВУЗах не очень любят на этом акцент делать. А чтобы самому учить, надо иметь какую-то мотивацию. Я в свое время наткнулся на один из первых выпусков ПФП, потому в принципе без сомнений стал разбираться. А если просто со сторны посмотреть, то виден неоправданный "матан".

По-хорошему, в вуз следует идти, имея неслабую мотивацию. В моем политехническом препы так и говорили - вы должны научиться работать с литературой самостоятельно. Лекция - это всегда результат некоего плана, спущенного сверху на количество часов и т.п. Т.е. далеко не то, что преп хочет дать (а многие и ничего не хотят давать и где-то я их понимаю). Самостоятельно ставить цели, самостоятельно определять средства достижения и т.п. Инженера они понимали очень высоко. но дипломы выдавали всем кому не лень :)

[identity profile] stdray.livejournal.com 2012-06-12 03:14 pm (UTC)(link)
>с неким средневзвешенным "удобно для большинства", но подвижки-то есть, согласитесь

Конечно есть, так или иначе движение в сторону большей декларативности. Просто где-то это делается более прозрачно и посдедовательно, а где-то через хитрые конструкции с последующими сомнительными аналогиями (http://habrahabr.ru/post/142591/).

>В реале многих ваших коллег волнует стиль студии?

Нет) Хотя вроде сначала были недовольны синим цветом текущей студии.

>Согласитесь, что хорошая IDE появляется, 1. когда язык де-факто широко распространен 2. когда вкладываются значительные средства в создание и продвижение языка.

Да. Полурятность способствует появлению IDE, IDE способствует еще больше популярности.


>По-хорошему, в вуз следует идти, имея неслабую мотивацию.
>Лекция - это всегда результат некоего плана, спущенного сверху на количество часов
>Самостоятельно ставить цели, самостоятельно определять средства достижения и т.п


Вот здесь и проблема. То есть откуда возмется мотивация и появится цель. Зависимоть оплаты от качества кода и уровня специалиста не всегда имеет место.
Edited 2012-06-12 15:16 (UTC)