Haskell нужен! (в Standard Chartered Bank)
От: jazzer Россия Skype: enerjazzer
Дата: 30.01.15 02:43
Оценка: 72 (7) +1
К вопросу о том, что хаскель не нужен и это инструмент для гиков-энтузиастов и никто его в продакшене в здравом уме использовать не будет

Haskell in the Large
(доклад товарища Don Stewart на Google Tech Talk)

http://code.haskell.org/~dons/talks/dons-google-2015-01-27.pdf

пара цитат для затравки:

• Total Haskell code base: >2M lines, >150 contributors (~20 core), >110k commits.
• Haskell code everywhere: real time pricing, risk management, data analysis, regulatory systems, desktop and web GUIs, web services, algo pricing, end-user scripting, and as plugins to C++, Java, C#, Excel.
• Windows, Linux, clusters and grids. On servers and desktops in >30 countries.

GUIs: Generate native Windows WPF GUI or JavaScript app from single Haskell impl.
Bindings: Tons of bindings to external services. Haskell as API glue.

In-house Haskell compiler: `Mu’. One of Lennart’s many Haskell compilers.
• Whole world optimizing compiler.
• Compiles to portable bytecode – same blob runs on Linux or Windows.
• Values, closures, functions can be serialized.


ЗЫ Будем надеяться, что видео тоже выложат
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: Haskell нужен! (в Standard Chartered Bank)
От: vsb Казахстан  
Дата: 30.01.15 04:59
Оценка:
Хаскель отличный язык, было бы здорово, если бы он взлетел хотя бы до уровня скалы.
Re: Не верь глазам своим
От: Mamut Швеция http://dmitriid.com
Дата: 30.01.15 10:58
Оценка: 78 (7) +2
J>К вопросу о том, что хаскель не нужен и это инструмент для гиков-энтузиастов и никто его в продакшене в здравом уме использовать не будет

В банках чего только не используют, как ни странно. Но таким презентациям советую не верить ни на грош. Мы тоже такие презентации еще года два тому назад создавали.

Судя по тому, что они написали на нем все, что только можно написать, их база кода — мешанина неуправляемого кода, в котором никто не может разобраться. Поэтому им понадобилось 150 разработчиков (из которых 20 — core). В общем, ровно то, что было/есть у нас в Кларне, только у них Хаскель, а у нас Erlang.


Fast delivery — это тоже в какой-то мере ложь Потому что им нужен delivery просто быстрее, чем в других банках. У нас релизы раз в неделю, все люди из банковской индустрии «как это так? как вы можете так часто релизить, шаманы!»

Самое главное во всей презентации — в самом конце.

And, even if the language has the tools, developers need taste and guidance to use them


Ну, то есть если нет насаждающих это диктаторов, все будет очень, очень плохо (ну, как в Кларне ).

Из того, за что зацепился глаз:


Often working from verbal, ad hoc evolving spec. And at best from informal functional specs.
 Spec often refined/derived based on the Haskell implementation.
o “No plan survives contact with implementation”


Ахахахахаха, то есть мяу. На русский это переводится так: «их база кода — мешанина неуправляемого кода, в котором никто не может разобраться». У нас тут тоже периодически спеки реверс-инжинирят из реализации. Именно потому что "ad-hoc", реализацию пишут быстро «надо вчера» и в компании есть один человек, который знает, как это работает, но он уволился полгода тому назад.

Writing lots of apps; services; libraries in Haskell.


Ну, у нас в нашей системе тоже было все на Erlang'е — от генерации PDF'ов, до роутинга звонков в customer support. В итоге никто не знает, что это, где оно находится, и как оно работает. И надо 150 человек (вместо реально 20), чтобы эти авгиевы конюшни вычистить.

Heavy use of process isolation. Baby Erlang in Haskell.


Ну дык Следствие Армстронга

Old code doesn’t fall apart – large, (very) strongly typed code bases don’t rot.


Это ложь. Потому что требования меняются, люди уходят, и как эта хренотень работает в итоге не знает никто. От того, что оно принимает на вход TContact2 а возвращает TAddress1, легче не становится, потому что половина нового кода использует TContactInfo, и как конвертировать одно в другое не знает никто (а как оно выглядит в базе данных — это еще один отдельный песнь).


Use the machine to... Document the design for later developers

идет вразрез с процитированным выше:

Often working from verbal, ad hoc evolving spec. Spec often refined/derived based on the Haskell implementation.


Если все, что есть по спецификациям, это — код, то все, приплыли. Потому что люди увольняются и забывают, а многие вещи (особенно «это наш главный клиент, для него проводим особую интеграцию») сильно рушат самые внятные представления о том, как система должна работать.

Make wrong code impossible to write


Ахахаха. Из того, что у тебя проверены все типы, никак не следует, что твоя реализация real time pricing или risk management хоть близко похожа на правду.

Strong, expressive types give us machine-checkable, modular software
• APIs become self-describing


Нет, не становятся. Особенно, если тебе сделать несколько разных вызовов подряд. Особенно, как я уже указывал выше, ты не имеешь ни малейшего представления, что делать с API, который требует TContact2 на вход, если у тебя на руках TContactInfo.

Ах, да Я уже умолчу, что когда contact:is_empty(contact:new()) возвращает false (а должен true), от этого не спасают ни системы типов, ни «самописывающиеся API».

Any dev can build systems without worrying about implementation internals.
 Just fit types together


После чего в пятницу вечером сервер ложится и не поднимается, потому что какой-то новичок написал код, позволяющий создавать отчеты о продажах за целый год, что начало поднимать с диска терабайты данных в память. А что? API-вызов всего лишь требует типа TDate



Остальное вполне норм, хотя и в стиле капитана очевидности


dmitriid.comGitHubLinkedIn
Re[2]: Не верь глазам своим
От: LuciferSaratov Россия  
Дата: 30.01.15 11:02
Оценка: +1
Здравствуйте, Mamut, Вы писали:

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


этой — можно верить.
я, когда работал в Сингапуре, был знаком с человеком, который как раз на хаскеле в SCB и писал.
ну и да, хорошим спецам по хаскелю и шарящих в предметной области, там были готовы много платить и таких спецов у них был постоянный дефицит.
Re[3]: Не верь глазам своим
От: Mamut Швеция http://dmitriid.com
Дата: 30.01.15 11:09
Оценка:
M>>В банках чего только не используют, как ни странно. Но таким презентациям советую не верить ни на грош. Мы тоже такие презентации еще года два тому назад создавали.

LS>этой — можно верить.

LS>я, когда работал в Сингапуре, был знаком с человеком, который как раз на хаскеле в SCB и писал.
LS>ну и да, хорошим спецам по хаскелю и шарящих в предметной области, там были готовы много платить и таких спецов у них был постоянный дефицит.

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


dmitriid.comGitHubLinkedIn
Re: Haskell нужен! (в Standard Chartered Bank)
От: Wolverrum Ниоткуда  
Дата: 31.01.15 22:30
Оценка:
Здравствуйте, jazzer,

А как эти дифирамьы соотносятся с другим твоим постом
Автор: jazzer
Дата: 30.01.15
?
Re[2]: Haskell нужен! (в Standard Chartered Bank)
От: jazzer Россия Skype: enerjazzer
Дата: 01.02.15 04:15
Оценка:
Здравствуйте, Wolverrum, Вы писали:

W>Здравствуйте, jazzer,


W>А как эти дифирамьы соотносятся с другим твоим постом
Автор: jazzer
Дата: 30.01.15
?


А как они должны соотноситься?
Сорри, я не понимаю вопроса.
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: Haskell нужен! (в Standard Chartered Bank)
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 01.02.15 06:14
Оценка: +2 :)
Здравствуйте, jazzer, Вы писали:

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


Это был, есть и будет инструмент для гиков, либо компаний которые могут запросто нанять 200 человек вместо 20 на один и тот же продукт и не заметить этого. Правда, в конце концов, вся эта писанина придет в состояние "говно неподдерживаемое" и после нескольких лет мозгового штурма все же найдется человек, который таки решится предложить начать её переписывать на каком-то более адекватном для продашна языке или хотя бы документировать... Но это будет потом, а пока будут победные крики этих 200 человек, которым и платят хорошо и работать увлекательно
Re[2]: Haskell нужен! (в Standard Chartered Bank)
От: jazzer Россия Skype: enerjazzer
Дата: 01.02.15 14:32
Оценка:
Здравствуйте, kaa.python, Вы писали:

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


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


KP>Это был, есть и будет инструмент для гиков, либо компаний которые могут запросто нанять 200 человек вместо 20 на один и тот же продукт и не заметить этого.


Вообще сейчас для банков не самое лучшее время, все пояса затягивают и cost reduction-ом занимаются уже который год. Маловероятно, чтоб в таких условиях кто-то дал согласие на набор 200 человек вместо 20 — это все ж таки десятикратные траты.

KP>Правда, в конце концов, вся эта писанина придет в состояние "говно неподдерживаемое" и после нескольких лет мозгового штурма все же найдется человек, который таки решится предложить начать её переписывать на каком-то более адекватном для продашна языке или хотя бы документировать... Но это будет потом, а пока будут победные крики этих 200 человек, которым и платят хорошо и работать увлекательно


А "в конце концов" — это когда?
Вот сам Don Stewart работает там с 2011 года, Lennart и прочие звезды — с 2008. Или ты о десятках лет говоришь?
Я вот видел проекты, которые превращались в то, что ты сказал, года за два (некоторые — вообще еще до продакшена, и благополучно умирали, не родившись, и слава богу)
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[2]: Не верь глазам своим
От: jazzer Россия Skype: enerjazzer
Дата: 01.02.15 14:39
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Самое главное во всей презентации — в самом конце.


M>

M>And, even if the language has the tools, developers need taste and guidance to use them

Ну раз это самое главное, то цитируй уж до конца, что ли:

You can write Java in any language


M>Ну, то есть если нет насаждающих это диктаторов, все будет очень, очень плохо (ну, как в Кларне ).


Давай, я сыграю в КО — приведенная цитата верна вообще безотносительно языка.
На коболе/бейсике/подставить-по-вкусу можно писать на любом языке, и именно нужны диктаторы, насаждающие в команде хороший стиль, хорошую архитектуру и прочая.
Иначе да, все будет очень, очень плохо (не знаю, что там в Кларне, но верю на слово)
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[3]: Не верь глазам своим
От: Mamut Швеция http://dmitriid.com
Дата: 01.02.15 16:56
Оценка:
M>>

M>>And, even if the language has the tools, developers need taste and guidance to use them

J>Ну раз это самое главное, то цитируй уж до конца, что ли:
J>

J>You can write Java in any language


Ну дык У нас пытались Haskell и OCaml на Эрланге писать

M>>Ну, то есть если нет насаждающих это диктаторов, все будет очень, очень плохо (ну, как в Кларне ).


J>Давай, я сыграю в КО — приведенная цитата верна вообще безотносительно языка.

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

Ну, это безусловно. Поэтому я не верю восторженным "you cannot write wrong code" и прочему в таких презентациях.

J>Иначе да, все будет очень, очень плохо (не знаю, что там в Кларне, но верю на слово)


Ну, оно не прямо «ужас-ужас», но за многие куски кода хочется убивать на месте И в первую очередь — всяких «гуру»


dmitriid.comGitHubLinkedIn
Re[4]: Не верь глазам своим
От: jazzer Россия Skype: enerjazzer
Дата: 01.02.15 17:08
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Ну дык У нас пытались Haskell и OCaml на Эрланге писать


Я уж молчу, что на С++ пишут

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


M>Ну, это безусловно. Поэтому я не верю восторженным "you cannot write wrong code" и прочему в таких презентациях.


А кто сказал, что кобол — это wrong code? Он не wrong, он просто так пахнет
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: Haskell нужен! (в Standard Chartered Bank)
От: Константин Россия  
Дата: 01.02.15 19:21
Оценка: +1
Здравствуйте, jazzer, Вы писали:

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

J>

J>In-house Haskell compiler: `Mu’. One of Lennart’s many Haskell compilers.


Мы совсем-совсем не гики-энтузиасты, но компилятор под себя запилим
Re[3]: Haskell нужен! (в Standard Chartered Bank)
От: Wolverrum Ниоткуда  
Дата: 01.02.15 21:53
Оценка:
Здравствуйте, jazzer, Вы писали:

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


W>>Здравствуйте, jazzer,


W>>А как эти дифирамьы соотносятся с другим твоим постом
Автор: jazzer
Дата: 30.01.15
?


J>А как они должны соотноситься?

J>Сорри, я не понимаю вопроса.

Ну как-то выглядит вполне себе противоречиво. Там — ленивость, утечки, рефакторинг кода: все это суть проблемы и попоболь. А тут "все просто работает", "few resources for manual tasks" (явно противоречие с проблемой рефакторинга) etc.
Re[4]: Haskell нужен! (в Standard Chartered Bank)
От: jazzer Россия Skype: enerjazzer
Дата: 02.02.15 03:27
Оценка:
Здравствуйте, Wolverrum, Вы писали:

W>Ну как-то выглядит вполне себе противоречиво. Там — ленивость, утечки, рефакторинг кода: все это суть проблемы и попоболь. А тут "все просто работает", "few resources for manual tasks" (явно противоречие с проблемой рефакторинга) etc.


Ничего противоречивого.
Проблема с рефакторингом решается, как выяснилось, очень просто — через специальный режим компилятора, когда проверяется только то, что реально используется, а не всё на свете (примерно как мелкософтовский компилятор С++ не компилирует шаблоны вообще, пока ты их не используешь — даже синтаксис не проверяет).
Проблема с ленивостью решена в Standard Chartered опять же на уровне компилятора фактически отменой оной: Has a few language and runtime customizations: Largely strict(-ish) evaluation strategy (стр. 7 в презентации)
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: Haskell нужен! (в Standard Chartered Bank)
От: a_g_99 США http://www.hooli.xyz/
Дата: 02.02.15 07:45
Оценка:
Здравствуйте, jazzer, Вы писали:

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

Haskell не нужен.
Главная проблема хаскелла и др. подобных языков что он игнорирует сложность. Это нормальный прагматичный подход для практиков. Но увы не лучший.
Лучший подход — создавать такие ЯП и tools которые делают сложные вещи простыми для понимания.
И такие tools существуют.
Re[5]: Haskell нужен! (в Standard Chartered Bank)
От: Wolverrum Ниоткуда  
Дата: 02.02.15 08:06
Оценка:
Здравствуйте, jazzer,

Спасибо, теперь вкурился: банк собственный диалект хаскеля юзает, и его нахваливает.
Re[6]: Haskell нужен! (в Standard Chartered Bank)
От: jazzer Россия Skype: enerjazzer
Дата: 02.02.15 08:22
Оценка:
Здравствуйте, Wolverrum, Вы писали:

W>Здравствуйте, jazzer,


W>Спасибо, теперь вкурился: банк собственный диалект хаскеля юзает, и его нахваливает.


Где ты видишь диалект? Там лишь аспекты компиляции подкручены. Это как бэкэнд для любого другого языка — компилироваться в нейтив или в байткод, оптимизировать или нет (ленивость, в принципе, к оптимизации относится, а не к корректности), и т.п. В С/С++ все то же самое.
Изменений языка (что составило бы диалект) я у них не вижу.

ЗЫ Хотя даже если бы и был диалект — он что, перестал быть хаскелем? Это всего лишь будет означать, что есть такой очень полезный Хаскель, который рулит в Standard Chartered — и?
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[2]: Haskell нужен! (в Standard Chartered Bank)
От: jazzer Россия Skype: enerjazzer
Дата: 02.02.15 08:24
Оценка:
Здравствуйте, a_g_99, Вы писали:

__>Главная проблема хаскелла и др. подобных языков что он игнорирует сложность. Это нормальный прагматичный подход для практиков. Но увы не лучший.

__>Лучший подход — создавать такие ЯП и tools которые делают сложные вещи простыми для понимания.
__>И такие tools существуют.

Без детализации звучит как набор баззвордов, сорри.
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[2]: Haskell нужен! (в Standard Chartered Bank)
От: jazzer Россия Skype: enerjazzer
Дата: 02.02.15 08:26
Оценка:
Здравствуйте, Константин, Вы писали:

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


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

J>>

J>>In-house Haskell compiler: `Mu’. One of Lennart’s many Haskell compilers.


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


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

Мои слова про гиков относились к заказчикам (например, профессор в универе, для которого студент пишет эзотерическое исследование, или посетители конференций по теории типов). Банк в качестве заказчика — очевидно не гик.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.