Re[3]: Haskell нужен! (в Standard Chartered Bank)
От: a_g_99 США http://www.hooli.xyz/
Дата: 02.02.15 08:43
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Без детализации звучит как набор баззвордов, сорри.


Ок, по другому.

python vs haskell. почему python имеет гораздо большую популярность чем хаскелл, хотя оба языка появились примерно в одно и то же время?
Re[4]: Haskell нужен! (в Standard Chartered Bank)
От: jazzer Россия Skype: enerjazzer
Дата: 02.02.15 09:19
Оценка: +1
Здравствуйте, a_g_99, Вы писали:

__>python vs haskell. почему python имеет гораздо большую популярность чем хаскелл, хотя оба языка появились примерно в одно и то же время?


python проще на порядок, его вообще учить не надо, если еще хоть какой-то язык знаешь.

С другой стороны, язык поощряет написание овнокода (как и какой-нть JS или там бейсик), и действительно, овнокода на нем навалом, и все проблемы динамики в полный рост (я помню, был какой-то большой и известный пакет, в котором были внутри синтаксические ошибки. Просто они были под ифом, который у обычных юзеров не срабатывал — а у нас сработал и доставил неимоверно)

языки со статической проверкой типов вообще менее популярны, чем динамические, ибо 95% (с) программистов не хотят удовлетворять компилятор, а хотят *як *як и в продакшен и айда пиво пить, а если че не так — нехай скрэшится.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[5]: Haskell нужен! (в Standard Chartered Bank)
От: a_g_99 США http://www.hooli.xyz/
Дата: 02.02.15 09:49
Оценка: +1
Здравствуйте, jazzer, Вы писали:

J>python проще на порядок, его вообще учить не надо, если еще хоть какой-то язык знаешь.


Это большое преимущество, вы согласны?

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

J>С другой стороны, язык поощряет написание овнокода (как и какой-нть JS или там бейсик), и действительно, овнокода на нем навалом, и все проблемы динамики в полный рост (я помню, был какой-то большой и известный пакет, в котором были внутри синтаксические ошибки. Просто они были под ифом, который у обычных юзеров не срабатывал — а у нас сработал и доставил неимоверно)

Так и здесь хаскелл не нужен. Возьмите скажем любимицу-старушку банков java. Статическая типизация + простота использования. Что там говнокода меньше стало?
Вопрос говнокода — это прежде всего вопрос культуры разработки. Он решается с помощью статического анализа (типа коверити), рефакторинга и правильным построением команды и проекта.
Что есть главный враг говнокода? Это первичная ясность, простота кода, эффективная абстракция от сложной концепции к простым паттернам. Хаскелл не может сделать этого из коробки. Он "витает" в высоком мире трансьюдеров, каррирования и пр. Как результат количество "непонятного"=="говнокода" кода будет существенно выше чем в пайтоне. Другая огромная проблема — мэйнтейнить все это.
Re[5]: Haskell нужен! (в Standard Chartered Bank)
От: Alex912  
Дата: 02.02.15 09:49
Оценка:
Здравствуйте, jazzer, Вы писали:

J>языки со статической проверкой типов вообще менее популярны, чем динамические, ибо 95% (с) программистов не хотят удовлетворять компилятор, а хотят *як *як и в продакшен и айда пиво пить, а если че не так — нехай скрэшится.


Я как — то на haskell решил что-то запилить используя yesod. Так вот некоторые пакеты там выдавали ошибку при сборке, тоже были синтактические ошибки внутри. Те народ вообще даже не запускал то, что напихали в cabal.
Re[6]: Haskell нужен! (в Standard Chartered Bank)
От: jazzer Россия Skype: enerjazzer
Дата: 02.02.15 10:52
Оценка: +1
Здравствуйте, a_g_99, Вы писали:

__>Здравствуйте, jazzer, Вы писали:


J>>python проще на порядок, его вообще учить не надо, если еще хоть какой-то язык знаешь.


__>Это большое преимущество, вы согласны?


Смотря для чего. Чтоб за один день въехать и накропать что-то как-то работающее — безусловно. Чтоб писать хороший код, надо становиться профессионалом, что гораздо дольше, и в этом смысле двухнедельный выигрыш при въезжании в язык с нуля роли не играет, имхо. Гораздо важнее изучить и прочувствовать идиомы, перестроить образ мыслей — это все занимает время (у некоторых бесконечное — они так и продолжают писать в высокоуровневых языках как на бейсике).

__>То бишь главное преимущество которое я слышу от хаскелистов на самом деле это "говнокодить на пайтоне каждый сможет, а вот хаскел освоить тяжело. я редкий специалист и буду востребован". Это конечно полное заблуждение.


Я такого не видел, хотя верю, что такое встречается (такое везде встречается).
Обычно говорят (из того, что я видел, и помимо стандартных аргументов в пользу статической типизации), что Хаскель (и ФП вообще) как раз облегчает управление сложностью и сложность кода в результате потока изменяющихся требований растет с меньшей скоростью.

J>>С другой стороны, язык поощряет написание овнокода (как и какой-нть JS или там бейсик), и действительно, овнокода на нем навалом, и все проблемы динамики в полный рост (я помню, был какой-то большой и известный пакет, в котором были внутри синтаксические ошибки. Просто они были под ифом, который у обычных юзеров не срабатывал — а у нас сработал и доставил неимоверно)

__>Так и здесь хаскелл не нужен. Возьмите скажем любимицу-старушку банков java. Статическая типизация + простота использования. Что там говнокода меньше стало?
Нет. Наоборот, они именно жабу и упоминают в презентации, это я тут дипломатично на кобол стрелки перевел

__>Вопрос говнокода — это прежде всего вопрос культуры разработки. Он решается с помощью статического анализа (типа коверити), рефакторинга и правильным построением команды и проекта.


Ну вот утверждается, что в ФП все это проще и в каком-то виде из коробки.

__>Что есть главный враг говнокода? Это первичная ясность, простота кода, эффективная абстракция от сложной концепции к простым паттернам. Хаскелл не может сделать этого из коробки.

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

__>Он "витает" в высоком мире трансьюдеров, каррирования и пр. Как результат количество "непонятного"=="говнокода" кода будет существенно выше чем в пайтоне.

Это статьи витают, а не продакшен-код. Вон статьи по Немерле тоже витают бг знает где, хотя народ при этом, вроде как, пишет нормальный читабельный рабочий код безо всяких этих завихрений. А все завихрения живут (и должны жить, иначе по рукам, по рукам) в библиотеках.

__>Другая огромная проблема — мэйнтейнить все это.

В смысле набора программеров? Ну да, хаскеллистов меньше, чем джавистов, тут спору нет.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[6]: Haskell нужен! (в Standard Chartered Bank)
От: jazzer Россия Skype: enerjazzer
Дата: 02.02.15 10:54
Оценка:
Здравствуйте, Alex912, Вы писали:

A>Здравствуйте, jazzer, Вы писали:


J>>языки со статической проверкой типов вообще менее популярны, чем динамические, ибо 95% (с) программистов не хотят удовлетворять компилятор, а хотят *як *як и в продакшен и айда пиво пить, а если че не так — нехай скрэшится.


A>Я как — то на haskell решил что-то запилить используя yesod. Так вот некоторые пакеты там выдавали ошибку при сборке, тоже были синтактические ошибки внутри. Те народ вообще даже не запускал то, что напихали в cabal.


Ну так не собралось же, а не в продакшене навернулось, как в нашем случае. Хотя, конечно, позор.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[5]: Haskell нужен! (в Standard Chartered Bank)
От: Mamut Швеция http://dmitriid.com
Дата: 02.02.15 12:12
Оценка:
J>языки со статической проверкой типов вообще менее популярны, чем динамические, ибо 95% (с) программистов не хотят удовлетворять компилятор, а хотят *як *як и в продакшен и айда пиво пить, а если че не так — нехай скрэшится.

Ну и потому что проблемы типов обычно — мизерная часть собственно проблем в коде. У нас в команде вот за год появился первый тикет, который напрямую связан с ошибкой типов. Все остальные проблемы — это логика.

Ну и да. Let it crash рулит Его, правда, никто готовить не умеет (мы тоже )


dmitriid.comGitHubLinkedIn
Re[4]: Haskell нужен! (в Standard Chartered Bank)
От: HrorH  
Дата: 02.02.15 15:02
Оценка:
Здравствуйте, a_g_99, Вы писали:

__>python vs haskell. почему python имеет гораздо большую популярность чем хаскелл, хотя оба языка появились примерно в одно и то же время?


Дык Саймон Пейтон Джонс сказал же "avoid success at all costs".
Они не ставили своей целью популярность, скорее наоборот.
Re[5]: Haskell нужен! (в Standard Chartered Bank)
От: nikov США http://www.linkedin.com/in/nikov
Дата: 02.02.15 18:35
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Проблема с рефакторингом решается, как выяснилось, очень просто — через специальный режим компилятора, когда проверяется только то, что реально используется, а не всё на свете


Вот только странно, что авторы доклада этого не знают (или делают вид, что не знают). Хотя у них свой компилятор (и не совсем Хаскелла), и возможно, он этого не умеет.
Re[6]: Haskell нужен! (в Standard Chartered Bank)
От: jazzer Россия Skype: enerjazzer
Дата: 02.02.15 18:39
Оценка:
Здравствуйте, nikov, Вы писали:

N>Здравствуйте, jazzer, Вы писали:


J>>Проблема с рефакторингом решается, как выяснилось, очень просто — через специальный режим компилятора, когда проверяется только то, что реально используется, а не всё на свете


N>Вот только странно, что авторы доклада этого не знают (или делают вид, что не знают). Хотя у них свой компилятор (и не совсем Хаскелла), и возможно, он этого не умеет.


Так это разные люди же — те, которые жаловались, и те, которых презентация. Видимо, у тех, которых презентация, никаких проблем с рефакторингом нет, они все знают и считают очевидным
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[6]: Haskell нужен! (в Standard Chartered Bank)
От: lazy-cjow-rhrr Россия lj://_lcr_
Дата: 02.02.15 19:40
Оценка: +1
a_g_99,

__>Что есть главный враг говнокода? Это первичная ясность, простота кода, эффективная абстракция от сложной концепции к простым паттернам. Хаскелл не может сделать этого из коробки. Он "витает" в высоком мире трансьюдеров, каррирования и пр. Как результат количество "непонятного"=="говнокода" кода будет существенно выше чем в пайтоне. Другая огромная проблема — мэйнтейнить все это.


Главный враг говнокода — профессионализм. Остальные выводы — ложные, потому что следуют из ложной посылки.
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[6]: Haskell нужен! (в Standard Chartered Bank)
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 03.02.15 06:53
Оценка: +3
Здравствуйте, Mamut, Вы писали:

M>Ну и потому что проблемы типов обычно — мизерная часть собственно проблем в коде. У нас в команде вот за год появился первый тикет, который напрямую связан с ошибкой типов. Все остальные проблемы — это логика.


Ну вот сторонники продвинутых (или хотя бы приличных) систем типов как раз и ратуют за смещение этой границы, чтобы как можно больше логики кодировать в типах и проверять компилятором. Средний питонист/джаваскриптер/эрлангист может и не догадывается, что его "проблема в логике" может в другом языке быть проблемой с типами и быть поймана компилятором. Чем меньше твой язык позволяет выразить типами, тем меньше у тебя ошибок с типами и тем больше ошибок "в логике", это естественно.
Re[7]: Haskell нужен! (в Standard Chartered Bank)
От: Mamut Швеция http://dmitriid.com
Дата: 03.02.15 10:11
Оценка: +3
M>>Ну и потому что проблемы типов обычно — мизерная часть собственно проблем в коде. У нас в команде вот за год появился первый тикет, который напрямую связан с ошибкой типов. Все остальные проблемы — это логика.

DM>Ну вот сторонники продвинутых (или хотя бы приличных) систем типов как раз и ратуют за смещение этой границы, чтобы как можно больше логики кодировать в типах и проверять компилятором.


А потом дебажить типы, когда логика закодирована неправильно

DM>Средний питонист/джаваскриптер/эрлангист может и не догадывается, что его "проблема в логике" может в другом языке быть проблемой с типами и быть поймана компилятором. Чем меньше твой язык позволяет выразить типами, тем меньше у тебя ошибок с типами и тем больше ошибок "в логике", это естественно.


Действительно, ведь раз логика закодирована типами, она перестает быть логикой, ага, и никогда не может быть неверной.


dmitriid.comGitHubLinkedIn
Re[2]: Haskell нужен! (в Standard Chartered Bank)
От: Klapaucius  
Дата: 03.02.15 10:58
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Хаскель отличный язык, было бы здорово, если бы он взлетел хотя бы до уровня скалы.


А какие есть признаки того, что между хаскелем и скалой в смысле "взлетания" есть какая-то заметная разница?
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[3]: Haskell нужен! (в Standard Chartered Bank)
От: Константин Россия  
Дата: 03.02.15 11:05
Оценка:
Здравствуйте, jazzer, Вы писали:

К>>Мы совсем-совсем не гики-энтузиасты, но компилятор под себя запилим


J>Э-э-э, а какая связь? Айтишники в любой фирме должны быть гиками, иначе нафиг они нужны. Во многих конторах хачат GCC и собирают собственные его билды — и что теперь, С/С++ — для гиков на основании этого?


J>Мои слова про гиков относились к заказчикам (например, профессор в универе, для которого студент пишет эзотерическое исследование, или посетители конференций по теории типов). Банк в качестве заказчика — очевидно не гик.


Пусть не гики. Тем не менее то, что ребята модифицируют под себя компилятор, это отличная антиреклама Haskell'а:
— Неужели, существующие тулы настолько нехороши, что для использования в банковской сфере их нужно улучшать под себя?
— Раз их нужно иногда менять, готова ли наша компания этим заниматься?

P.S. в период увлечения Emacs'ом я понял, что меня "прёт" от допиливания его под себя. Работа при этом страдает.
Re[8]: Haskell нужен! (в Standard Chartered Bank)
От: Klapaucius  
Дата: 03.02.15 11:10
Оценка: +1
Здравствуйте, Mamut, Вы писали:

M>А потом дебажить типы, когда логика закодирована неправильно


Для типов есть легковесная верификация, в случае их отсутствия не все так радужно.

M>Действительно, ведь раз логика закодирована типами, она перестает быть логикой, ага, и никогда не может быть неверной.


Она не перестает быть логикой, она представляется в форме, которая хорошо подходит для автоматической проверки.
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[4]: Haskell нужен! (в Standard Chartered Bank)
От: jazzer Россия Skype: enerjazzer
Дата: 03.02.15 11:55
Оценка:
Здравствуйте, Константин, Вы писали:

К>Пусть не гики. Тем не менее то, что ребята модифицируют под себя компилятор, это отличная антиреклама Haskell'а:

А кто сказал, что немодифицированная версия не будет работать? Просто они дозаточили под свои нужды.

К>- Неужели, существующие тулы настолько нехороши, что для использования в банковской сфере их нужно улучшать под себя?

Ну вот, например, компиляция в байткод. Язык не изменился ведь, зато стало можно запускать на любой платформе.
Тот же С++ тоже вполне можно было бы компилять в байткод, если бы компиляторостроители озаботились этим (во всех главных компиляторах есть промежуточное представление, которое почти не зависит от языка и потом просто скармливается бэк-энду). Можно было бы захачить тот же GCC, чтоб он сохранял промежуточный образ в файл, и потом этот файл распространять, чтоб он докомпилировался уже у заказчика на месте.
Причем, насколько я знаю, некоторые конторы GCC таки хачат (не в направлении байткода, а больше на тему кодогенерации, расширений, дополнительных метаданных и т.п.) Тем более что GCC сейчас вообще плагины уже поддерживает, так что заточка еще проще стала. И что, это антиреклама С/С++/что-там-еще-GCC-умеет-собирать?

К>- Раз их нужно иногда менять, готова ли наша компания этим заниматься?

Ну вот компиляторы же все апгрейдят плюсовый/шарповые, и ничего, вроде. Или тоже не готовы? Так на джава-1/С++98/... и сидите? Или новая версия языка или новое расширение компилятора — это антиреклама языку в целом?

К>P.S. в период увлечения Emacs'ом я понял, что меня "прёт" от допиливания его под себя. Работа при этом страдает.

Это ортогонально. Они в компиляторе допилили совершенно конкретные и очень практичные вещи. Типа сериализации функций — круто же: упаковал, послал по сети, на том конце (на другой платформе, может даже) принял, распаковал, запустил, все работает.
Это не просто улучшательства ради улучшательства.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[4]: Haskell нужен! (в Standard Chartered Bank)
От: Klapaucius  
Дата: 03.02.15 11:56
Оценка: 23 (3)
Здравствуйте, Константин, Вы писали:

К>Пусть не гики. Тем не менее то, что ребята модифицируют под себя компилятор, это отличная антиреклама Haskell'а:


Они не модифицировали какой-то существующий компилятор. Они написали компилятор хаскелеподобного языка Mu (при условии, что энергичный язык можно считать хаскелеподобным).
Ну и они используют и обычный GHC, Mu у них что-то вроде скрипта для написания бизнес-логики, у него какая-то интеграция с Java/.Net/Excel, но сложно что-то сказать точно — никто за пределами их конторы Mu не видел.

К>- Неужели, существующие тулы настолько нехороши, что для использования в банковской сфере их нужно улучшать под себя?


Существующие в 2008-м году? Серьезно? В этом году для хаскеля даже строк нормальных не было, а массивы нормальные только появились в экспериментальном виде. 2008 год — это GHC 6.8, первый рантайм в котором более-менее SMP работал спустя две версии появился. Да что SMP — тогда с юникодом-то нельзя было стандартными средствами работать.
Вообще, это некоторое упрощение, но можно считать, что то, что сейчас понимается под словом "хаскель" появилось примерно в 2011 году. Хаскель до 2011-го это как C++ времен 80-х годов.
В общем, то, что они что-то там свое начали лепить в 2008 совсем не удивительно. Но, в любом случае, утверждение о том, что они сейчас используют только какой-то свой хаскель с исправленными ошибками не соответствует действительности, или, по крайней мере, не соотвествует тому, что написано в презентации или например тому, что они оплачивали некоторые работы для улучшения у GHC поддержки Windows.
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[5]: Haskell нужен! (в Standard Chartered Bank)
От: jazzer Россия Skype: enerjazzer
Дата: 03.02.15 12:05
Оценка:
Здравствуйте, Klapaucius, Вы писали:

K>Здравствуйте, Константин, Вы писали:


К>>Пусть не гики. Тем не менее то, что ребята модифицируют под себя компилятор, это отличная антиреклама Haskell'а:


K>Они не модифицировали какой-то существующий компилятор. Они написали компилятор хаскелеподобного языка Mu (при условии, что энергичный язык можно считать хаскелеподобным).


А почему нельзя? Я так понимаю, отсутствие ленивости только убивает разные бесконечные последовательности, да и то с оговорками, не?
Остальное же все остается — правила вывода, паттерн-матчинг, частичное применение и т.п...
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[8]: Haskell нужен! (в Standard Chartered Bank)
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 03.02.15 12:17
Оценка:
Здравствуйте, Mamut, Вы писали:

DM>>Ну вот сторонники продвинутых (или хотя бы приличных) систем типов как раз и ратуют за смещение этой границы, чтобы как можно больше логики кодировать в типах и проверять компилятором.


M>А потом дебажить типы, когда логика закодирована неправильно


Да, а что в этом плохого? Особенно, когда и до дебага-то не доходит, т.к. проблемы уже на стадии компиляции прояаляются.

DM>>Средний питонист/джаваскриптер/эрлангист может и не догадывается, что его "проблема в логике" может в другом языке быть проблемой с типами и быть поймана компилятором. Чем меньше твой язык позволяет выразить типами, тем меньше у тебя ошибок с типами и тем больше ошибок "в логике", это естественно.


M>Действительно, ведь раз логика закодирована типами, она перестает быть логикой, ага, и никогда не может быть неверной.


Зачем клоуна строишь? Ничего подобного я не говорил и не имел в виду.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.