SDCast #74: и вновь Павел Аргентов, бэкенд-разработчик в компании Evrone

Встречайте 74-й выпуск SDCast’а, в котором идёт речь про Unikernel, MirageOS и вообще концепцию Virtual Library Operating System. У меня в гостях вновь Павел Аргентов, бэкенд-разработчик в компании Evrone, практикующий fp-программист.

В начале мы поговорили про традиционные подходы к развертыванию приложений: от физических серверов к гипервизорам с виртуалками и до контейнеров приложений. Обсудили разные ограничения этих подходов, плюсы и минусы. А дальше мы подошли к идеи Unikernel aka Library Operating Systems.

Обсудили саму концепцию Unikernel, что это за подход, что такое Library Operating Systems, как оно устроено и работает. Паша рассказал о том, какие основные плюсы у данного подхода по сравнению с традиционными, а так же и какие есть минусы.

Далее мы подробно поговорили про одну из реализаций Unikernel под названием “MirageOS”. Паша рассказал про архитектуру и внутреннее устройство MirageOS, из каких слоёв и компонентов оно состоит, какие предоставляет интерфейсы и инструменты для разработчика. Пообщались о том, как разрабатывать приложения на базе MirageOS, какие есть ограничения, как и во что собирается итоговое приложение и какие есть возможности деплоя.

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

Читать далее

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, стоит ли в принципе сейчас изучать этот язык.

Читать далее