OCaml as my primary language
Почему я выбрал OCaml как основной язык
С 2012 года OCaml стал моим главным инструментом для личных и профессиональных задач. Меня даже дружески называют «евангелистом OCaml» — звание, которым я горжусь. Несмотря на стереотипы, язык активно применяют Meta, Microsoft, Bloomberg, Jane Street, Tezos и многие другие.
Язык
- Статическая типизация без боли: компилятор выводит типы и не даёт ошибиться.
- Мультипарадигменность: функциональный стиль, ОО, императивные вставки.
- Алгебраические типы и pattern-matching делают моделирование данных естественным.
- Мощная модульная система позволяет собирать большие проекты без головной боли.
- Внедрение зависимостей через модули или эффекты без runtime-фреймворков.
- Будущее: multicore уже в релизе, эффекты, производительность растёт.
Недостатки: малый рынок труда, скромный набор библиотек, синтаксис «не для всех».
Экосистема
- Компилятор генерирует быстрый нативный код, есть JavaScript (js_of_ocaml) и MirageOS (уникальная unikernel-платформа).
- OPAM — удобный менеджер пакетов.
- Dune — современная сборка на S-expr; внутри реализованы Selective Applicative Functors.
- Merlin + LSP = IDE-фичи в VS Code, Vim, Emacs.
- Odoc генерирует документацию из кода.
- Библиотеки: Core, Lwt, Async, Irmin, Dream — покрывают большинство задач.
Сообщество
Компактное, дружелюбное, сильно ориентировано на open source. Конференции ICFP, OCaml Workshop, обсуждения в Discord и Discuss.
Мифы
- OCaml ≠ F#: разные экосистемы, рантаймы, цели.
- Операторы
+.
и+.
— не проблема, есть ppx-решения. - Разделение
.ml/.mli
не обязательно: интерфейсы можно описать прямо в.ml
.
Итог
OCaml — это прагматичный выбор, когда не нужен ручной контроль памяти как в Rust. Он даёт скорость разработки, надёжность и удовольствие от кода.