История изменений
Исправление
vertexua,
(текущая версия)
:
Вчера себе пару панелек для i3 переписал с Python на OCaml.
Позитив: быстро компилируется, никакой клинической зацикленности на ФП ради ФП. Хочешь как холоп писать императивщину и бросать исключения - легко, более того, походу это дефолт. Это такой себе С/Go от ФП, без перегибов. Хочешь стрелять в ногу? Легко - держи зенитный комплекс. Вообще все сигнатуры модулей простые и понятные. Бинарники по эффективности похожи на средненаписаный С/С++ код, никакого внезапного 10-ти кратного оверхеда.
Минусы: часть вышеописанного. В ФП языке стрелять exceptions по дефолту? Отступы насколько я понял имеют смысл. Установка пакетов через opam по две минуты, и я не знаю почему, если язык так быстро компилируется. Я получил пару ошибок «Syntax error» без объяснений указывающих на последний символ файла. Оказывается я в 5ой строчке «in» пропустил.
Вердикт, при нужной сноровке и чуть практике хорошая замена типизированому Python. (Нетипизированый - прошлый век, его с огнем выжгли у себя все корпорации на уровне policy)
Это очень не Haskell. В OCaml ноль академичности, обычная ежедневная практика. Просто Unix язык, как С, может только без проблем с управлением памятью. Со всеми другими косяками если ты хочешь сильных гарантий.
Исправление
vertexua,
:
Вчера себе пару панелек для i3 переписал с Python на OCaml.
Позитив: быстро компилируется, никакой клинической зацикленности на ФП ради ФП. Хочешь как холоп писать императивщину и бросать исключения - легко, более того, походу это дефолт. Это такой себе С/Go от ФП, без перегибов. Хочешь стрелять в ногу? Легко - держи зенитный комплекс. Вообще все сигнатуры модулей простые и понятные. Бинарники по эффективности похожи на средненаписаный С/С++ код, никакого внезапного 10-ти кратного оферхеда.
Минусы: часть вышеописанного. В ФП языке стрелять exceptions по дефолту? Отступы насколько я понял имеют смысл. Установка пакетов через opam по две минуты, и я не знаю почему, если язык так быстро компилируется. Я получил пару ошибок «Syntax error» без объяснений указывающих на последний символ файла. Оказывается я в 5ой строчке «in» пропустил.
Вердикт, при нужной сноровке и чуть практике хорошая замена типизированому Python. (Нетипизированый - прошлый век, его с огнем выжгли у себя все корпорации на уровне policy)
Это очень не Haskell. В OCaml ноль академичности, обычная ежедневная практика. Просто Unix язык, как С, может только без проблем с управлением памятью. Со всеми другими косяками если ты хочешь сильных гарантий.
Исходная версия
vertexua,
:
Вчера себе пару панелек для i3 переписал с Python на OCaml.
Позитив: быстро компилируется, никакой клинической зацикленности на ФП ради ФП. Хочешь как холоп писать императивщину и бросать исключения - легко, более того, походу это дефолт. Это такой себе С/Go от ФП, без перегибов. Хочешь стрелять в ногу? Легко - держи зенитный комплекс. Вообще все сигнатуры модулей простые и понятные. Бинарники по эффективности похожи на средненаписаный С/С++ код, никакого внезапного 10-ти кратного оферхеда.
Минусы: часть вышеописанного. В ФП языке стрелять exceptions по дефолту? Отступы насколько я понял имеют смысл. Установка пакетов через opam по две минуты, и я не знаю почему, если язык так быстро компилируется. Я получил пару ошибок «Syntax error» без объяснений указывающих на последний символ файла. Оказывается я в 5ой строчке «in» пропустил.
Вердикт, при нужной сноровке и чуть практике хорошая замена типизированому Python. (Нетипизированый - прошлый век, его с огнем выжгли у себя все корпорации на уровне policy)