LINUX.ORG.RU

Продолжения нет

https://habrahabr.ru/post/193722/

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

Camel ★★★★★
()
Ответ на: Продолжения нет от Camel

Вот после этого поста и задал тут вопросик, про риалюзэйдж.

А так да, этого и опасаюсь. Хоть всё и выглядит романтично

SL_RU ★★★★
() автор топика

Этот вопрос всяко лучше задать в соответствующем канале irc или рассылке. В РФ вряд ли найдется много хаскеллистов. По субжу сразу можно отметить в качестве подводных камней нормальный порядок вычислений и очень высокий порог вхождения. Тот же OCaml много проще. Yesod так вообще выносит мозг только в путь, Ocsigen как-то много проще и в некоторых аспектах интереснее.

Freyr69 ★★★
()

Сложно определить, откуда проистекают space leaks. Биндинги к сишным либам бывают нестабильные, падают.

unC0Rr ★★★★★
()
Ответ на: комментарий от Freyr69

Я вот давно хочу уйти с питона и шарпа на более интересные вещи, а ОКамл и прочие не дают ничего принципиально нового. Оки

SL_RU ★★★★
() автор топика
Ответ на: комментарий от unC0Rr

Да биндинги сишных либ везде не очень то и стабильны

SL_RU ★★★★
() автор топика
Ответ на: комментарий от SL_RU

питона

ОКамл

принципиально нового

Ого. Производительность (на пару порядков быстрее)? Строгая статическая типизация с алгебраическими типами и GADT, типобезопасность? Порядочный FFI? Лямбды, карирование, комбинаторы и проч. функциональщина? Синтаксис без чертовых табов? Синтаксический сахар и возможность расширять синтаксис?

Ну не знаю, в таком приближении вообще все языки — одно.

А вообще есть видео на тему:

https://www.youtube.com/watch?v=v1CmGbOGb2I

Freyr69 ★★★
()
Последнее исправление: Freyr69 (всего исправлений: 1)

Присовываю хацкелл в кровавый продакшен уже три года. Брат жив.

До появления stack была очень большая проблема со сборкой под centos/debian/прочие некродистры и деплоем.

Порог вхождения ВНЕЗАПНО проблемой не оказался: многие коллеги, раньше работавшие с erlang или scala, без проблем освоили хацкелл.

Библиотеки могут быть проблемой, но тут зависит от области. У меня особых проблем не было, хотя некоторые штуки пришлось запиливать самому.

hateyoufeel ★★★★★
()
Ответ на: комментарий от SL_RU

Я вот давно хочу уйти с питона и шарпа на более интересные вещи, а ОКамл и прочие не дают ничего принципиально нового.

Принципиально новое даёт тебе предметная область, а не язык. Язык, конечно, тоже может являться предметной областью, например, если ты будешь делать компилятор\библиотеку и тп. Самоцель «найти работу на хаскель» немного наивна, имхо.

Deleted
()
Ответ на: комментарий от hateyoufeel

Брат жив.

В какой стране-городе жив? Какая отрасль? Нет ли размена финансового интереса на интерес к хаскелю?

Порог вхождения ВНЕЗАПНО проблемой не оказался

А это так часто бывает. Если люди действительно адекватные, то им твой хаскель только в помощь, а иначе, и на жаве наговнокодят

Deleted
()
Ответ на: комментарий от Freyr69

В РФ вряд ли найдется много хаскеллистов.

вообще похоже довольно много. например, я на видео видел представителя комитета по стандартизации хаскеля (вот кстати видео https://www.lektorium.tv/lecture/29852 ).

ну ещё навскидку можно вспомнить касперси лаб, которые в хаскель ударились. думаю люди есть всё таки. другой вопрос много ли их на лоре (но сколько то есть точно).

AndreyKl ★★★★★
()
Ответ на: комментарий от Freyr69

Лаадна, это довольно большие преимущества, но не то...

Конечн одно и тож, только способ записи разный. Вот верилог и прочие HL - иное.

SL_RU ★★★★
() автор топика
Ответ на: комментарий от SL_RU

Конечн одно и тож, только способ записи разный. Вот верилог и прочие HL - иное.

Чем иное? Функциональщина как раз ближе к HL, чем к императивным языкам. Ну и компилируются те же хаскели/окамлы в verilog/vhdl без проблем. Ну и операционная/денотационная семантика — всяко большее, чем «способ записи разный». Это как раз различие на уровне семантики.

Freyr69 ★★★
()
Последнее исправление: Freyr69 (всего исправлений: 1)
Ответ на: комментарий от Deleted

Область не даёт мне перейти с Си, хотя появляется rust и даже уже на МК, но нужно ещё подождать, попробовал - он ещё не готов для них.

SL_RU ★★★★
() автор топика
Ответ на: комментарий от SL_RU

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

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

Deleted
()
Ответ на: комментарий от Deleted

Понятненько, можно попробовать. Спасиб за советик

SL_RU ★★★★
() автор топика
Ответ на: комментарий от hateyoufeel

Порог вхождения ВНЕЗАПНО проблемой не оказался: многие коллеги, раньше работавшие с erlang или scala, без проблем освоили хацкелл.

scala

По-моему, это одинакового уровня сложности ЯП с хаскелем, что тут внезапного.

Virtuos86 ★★★★★
()
Ответ на: комментарий от SL_RU

Зря ты так. Окамл таки гораздо ближе к хаскелю, чем к питону. Из принципиально нового он даёт возможность писать полностью в функциональном стиле.

Ну, можно конечно и на окамле императивный код говнять. Ну так и на хаскеле можно писать как на фортране.

anonymous
()
Ответ на: комментарий от SL_RU

уйти с питона и шарпа на более интересные вещи, а ОКамл и прочие не дают ничего принципиально нового.

для питоношарпа есть camlp5? нука-нука? :)

Rastafarra ★★★★
()
Ответ на: комментарий от Deleted

Нет ли размена финансового интереса на интерес к хаскелю?

Конечно есть. Я мог бы стать охренительным порнорежиссёром и грести бабло лопатой. Но если оставаться в пределах программирования, то вряд ли я получу больше 15-20% от смены работодателя в пределах страны.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от Virtuos86

уровня сложности ЯП

дело не в сложности языка. Как правило, наоборот, чем проще язык, тем меньше могут его осилить, то есть, писать на нем. Есть 2 стороны: сделать простое простым, а сложное возможным и сделать простое сложным, а сложное — недосягаемым. Хаскель как раз исповедует второй принцип. Все языки, построенные по такому принципу, как правило, сложны сами по себе, и просты для освоения, так как освоение заключается в основном в зубрежке правил.

noconformism
()

Нормально все, но язык надо знать, т.е. с наскоку и опытом из других языков можно и пролететь. Если в команде есть 1-2 человека с опытом и просто хорошие программисты без опыта, то можно писать.

Готовых проектов не назову, их все равно не видно, так что, напишу или нет, придётся принимать на веру.

qnikst ★★★★★
()
Ответ на: комментарий от hateyoufeel

ты мог бы решать конкретные задачи эффективней. Я хоть и против порно в принципе, но абстрагируясь от этого, надо заметить, что это тоже способ зарабатывания денег, и не все порнорежиссеры одинаково эффективны, и во многом их эффективность и успех тоже зависит от выбора инструмента. Возможно кто-то не преследует задач зарабатывания бабла, а снимает «для души». Именно об этом был вопрос. Само собой, за вычисление факториалов индустрия не готова раскошеливаться, но зато когда-нибудь можно попасть на «каннский порнофестиваль», и продемонстрировать свое искусство в кругу единомышленников.

http://arhsvoboda.ru/wp-content/uploads/2014/08/elita.jpg

noconformism
()
Ответ на: комментарий от hateyoufeel

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

noconformism
()
Ответ на: комментарий от noconformism

Хаскель как раз исповедует второй принцип.

в-нулевых, примените бритву Хэнлона, что ли. Крайне сомнительно, что существуют мейнстримные ЯП вообще, нарочно сделанные сложно.

во-первых, это, конечно же, враньё

littlechris ★★★
()
Ответ на: комментарий от littlechris

Крайне сомнительно, что существуют мейнстримные ЯП вообще, нарочно сделанные сложно.

плюсы — типичный пример. Тысячи их

noconformism
()
Ответ на: комментарий от littlechris

о «нарочности», кстати, никто не говорил, скорей из-за дезигна головного мозга. Бездарные дезигнеры создают сложные и уродливые языки

noconformism
()
Ответ на: комментарий от noconformism

Сразу видно, что в порно ты понимаешь ещё меньше чем в хацкелле.

hateyoufeel ★★★★★
()
Ответ на: комментарий от DarkEld3r

ИСТОРИЯ 1

Часть 1: Поддержка эволюции БД

  • migrations
  • описание структуры таблиц в виде DSL на s-выражениях (ключевое слово deftable), где также указаны констрейнты, заголовки полей для вывода в формах и прочие мелочи. Внутри использован AP5 - реляционное расширение Common Lisp, которое позволяет внутри образа лисп системы устанавливать отношения между объектами и делать запросы на языке, похожем на SQL (и в чём-то даже более выразительном). Хотя сегодня я бы подумал, перед тем, как снова использовать AP5 - он всё же несколько тормозной.
  • описание всех вьюх, триггеров и хранимых процедур на DSL, причём основная часть DDL стейтмента сделана не в виде S-выражений, а прямо на языке базы данных.
  • система макросов для облегчения написания SQL-запросов, по сути калька с макросов Common Lisp. См. [lisp][sql]немного похвастаюсь , http://lisp.ru/forums.php?m=posts&p=6873 и ещё где-то писал, но не могу найти уже. Она является практическим доказательством того, что синтаксис S-выражений совершенно не обязателен для создания макросистемы, подобной лисповой
  • большая кнопка «применить миграции»
  • большая кнопка «собрать серверную часть», к-рая берёт кучу файлов *.lisp и по определениях объектов серверной части SQL собирает базу
  • при этом ошибки в DDL запросах к базе данных сразу показываются в исходных файлах .lisp, что не свойственно DSL на базе S-выражений. Таким образом получен гигантский профит и сделан вывод, что генерация других языков из S-выражений - это тупиковый путь для практики, а вот специализированные ридеры для встраивания других языков в CL - это как раз правильно.
  • при этом все исходные тексты базы - это тексты, соответственно их можно хранить в системе контроля версий и мерджить
  • Также с помощью DSL описаны пользовательские формы. Из этого описания генерируется либо форма, либо конфигурация объекта «controller», а форма в этом случае была написана на Delphi (была ещё версия для Qt когда-то, потом отмерла). Т.е. реальная форма состоит из части, генерируемой из лиспа, и классов на «клиентском» ЯП, который выполняет клиентские задачи.

Часть 2: конвертер БД По сути - просто большой скрипт, можно было обычный командный файл написать (*.bat в моём случае, в линуксе это был бы *.sh). Скрипт ночью качал базу. Благодаря тому, что в Common Lisp очень хороший Just In Time Debugger и горячая замена кода, многократно было сэкономлено много ночных часов - вместо перезапуска всего скрипта перезапускался в лучшем случае один запрос. Самое главное - что в дебаггере полноценный REPL, что позволяло провести диагностику в контексте транзакции базы данных.

Часть 3: сервер приложений Интегрировал складскую и торговую части. Ничего особенного, просто реализована трёхзвенка. Показал достаточную надёжность и лёгкость диагностирования. Неоднократно правился на горячую без перезапуска.

Часть 4: транслятор с 1С в Common Lisp Понадобилось ускорить один скрипт на 1С, поэтому был написан транслятор с 1С 7.7 на CL и немаленька часть рантайм-библиотеки. Процесс не был завершён по причинам, лежащим вне техники.

Под категорию production попадают часть 2 и 3.

ИСТОРИЯ 2:

Моя последняя работа. То, что G2 имеет отношение к Common Lisp, в принципе, известно и без меня, а в остальном я подписывал соглашение о неразглашении :) Если что-то уже наболтал - можете нагуглить сами :)

Есть и другие мелочи, но они меркнут на фоне данных двух.

den73 ★★★★★
()
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

По первой истории: остальные оценили твои улучшения или им только конечный результат виден был?

DarkEld3r ★★★★★
()

У меня just-for-fun, но вполне уровня продукта с точки зрения кода. Наибольшим сюрпризом было для меня то, что на винде нельзя особо полагаться на асинхронные исключения, да и некоторые библиотеки на винде хромают. В целом же, haskell - на юниксах очень стабильная и качественная платформа для разработки. Сужу, имея опыт работы с Си++, Java и .NET

dave ★★★★★
()

Использую для внутренних типа-devops задач. Сабж используется в системе сборки, деплоя, по ночам гоняет автотесты и присылает на почту отчёты. Настоящих подводных граблей в общем-то не встречали, т.к. задачи достаточно простые, требований к производительности нет. Пару раз огребали с lazy io, не более того.

Главная проблема - имбецилы, застрявшие в своих js-python-мирках, отказывающиеся включать мозг и решившие, что haskell исключительно для очкастых ботанов. Адекватные люди спокойно читают код и вносят небольшие правки, после беглого прочтения того же Real World Haskell без проблем вливаются в полноценную работу. Есть ещё другая крайность - любители всяких point-free однострочников, например, благо среди нас таких нет - но написать нечитаемое говно можно на любом языке.

Laz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.