SDCast #61: в гостях Павел Аргентов, практикующий fp-программист

Встречайте 61-й выпуск SDCast’а, целиком и полностью посвящённый языку OCaml. У меня в гостях Павел Аргентов, практикующий fp-программист. В этом выпуске мы попытались осветить все аспекты языка OCaml, сферы его применения, вопросы разработки, экосистему и сообщество вокруг.

В начале Паша сделал довольно подробный экскурс в историю появления самого языка, начиная с появления диалекта Lisp’а в семидесятых, добавление алгебраических типов данных и категориальной абстрактной машины в восьмидесятых, появление реализации Caml Light в девяностых и заканчивая уже современной инкарнацией c поддержкой объектной модели.

Подробно обсудили основые парадигмы языка и ключевые концепции, такие как: функциональное программирование, strict-механика и вытекающие из этого последствия, связывание переменных и лексические скоупы для связывания, система типов Хиндли-Милнера и опциональные аннотации типов, ООП-слой, язык модулей и функторы, инструментарий для синтаксического расширения (собственные DSL) и многое другое.

Пообщались о сферах применения языка, для каких задач OCaml подходит лучше всего, какие преимущества у него по сравнению с другими языками в контексте этих задач. Паша рассказал про различные известные (и не очень) проекты, написанные на OCaml, среди которых, например, MirageOS, фреймворк для построения Unikernel систем. Рассказал про различные проекты, написанные под сильным влиянием OCaml. В основном это различные языки программирования, которые основаны на идеях OCaml, например FSharp, Haxe или ReasonML.

Не забыли мы обсудить и экосистему вокруг языка, какие есть инструменты для работы с языком: моды к различным IDE, браузер типов, пакетные менеджеры и прочие сопутствующие инструменты, коммьюнити вокруг языка, списки рассылки, места скопления OCaml-программистов, чаты и форумы.

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

Читать далее