Встречайте 61-й выпуск SDCast’а, целиком и полностью посвящённый языку OCaml. У меня в гостях Павел Аргентов, практикующий fp-программист. В этом выпуске мы попытались осветить все аспекты языка OCaml, сферы его применения, вопросы разработки, экосистему и сообщество вокруг.
В начале Паша сделал довольно подробный экскурс в историю появления самого языка, начиная с появления диалекта Lisp’а в семидесятых, добавление алгебраических типов данных и категориальной абстрактной машины в восьмидесятых, появление реализации Caml Light в девяностых и заканчивая уже современной инкарнацией c поддержкой объектной модели.
Подробно обсудили основые парадигмы языка и ключевые концепции, такие как: функциональное программирование, strict-механика и вытекающие из этого последствия, связывание переменных и лексические скоупы для связывания, система типов Хиндли-Милнера и опциональные аннотации типов, ООП-слой, язык модулей и функторы, инструментарий для синтаксического расширения (собственные DSL) и многое другое.
Пообщались о сферах применения языка, для каких задач OCaml подходит лучше всего, какие преимущества у него по сравнению с другими языками в контексте этих задач. Паша рассказал про различные известные (и не очень) проекты, написанные на OCaml, среди которых, например, MirageOS, фреймворк для построения Unikernel систем. Рассказал про различные проекты, написанные под сильным влиянием OCaml. В основном это различные языки программирования, которые основаны на идеях OCaml, например FSharp, Haxe или ReasonML.
Не забыли мы обсудить и экосистему вокруг языка, какие есть инструменты для работы с языком: моды к различным IDE, браузер типов, пакетные менеджеры и прочие сопутствующие инструменты, коммьюнити вокруг языка, списки рассылки, места скопления OCaml-программистов, чаты и форумы.
Так же немного пофилософствовали на тему того, почему язык не получил широкого распространения среди разработчиков, с каких языков проще перейти на OCaml, стоит ли в принципе сейчас изучать этот язык.
Ссылки на ресурсы по темам выпуска:
- ocaml.org. Главный источник информации, знаний и документации по OCaml
- Wiki-статья про OCaml
- Статья Павла “Beginner’s OCaml setup on Mac”
- Статья Павла “How to synchronize application development using Unison?”
- Multicore OCaml
- ocaml-workbench — пример развёртывания OCaml-окружения в Docker
- Экосистема OCaml:
- Awesome OCaml
- OCaml Package Manager
- Tuareg: an Emacs OCaml mode
- Merlin is an editor service that provides modern IDE features for OCaml
- oasis – Tooling for building OCaml libraries and applications
- OCaml Labs
- Jane Street Capital’s standard library overlay
- Ocsigen.The most advanced multi-tier framework for Web and mobile apps
- MirageOS. Library operating system that constructs unikernels for secure, high-performance network applications across a variety of cloud computing and mobile platforms
- Success’n’users:
- Телефон, телеграф и вокзалы (aka Community):
- r/Ocaml на Reddit — очень даже не мёртвый веб-форум, там все новости
- irc.freenode.net — IRC каналы #ocaml, #mirage, #ocsigen — оперативная болтовня с Создателями, авторами книг и прочими богами ;)
- Gitter-чаты:
- Списки рассылки
- Книги:
Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon а так же ретвитом, постом и просто рассказом друзьям!