Неделя интервью Evrone — день 3. Соавтор MirageOS Ханнес Менерт о функциональном программировании и OCaml

Наш разработчик Павел Аргентов в 2020-м съездил в Марокко, чтобы принять участие в MirageOS Retreat, на котором разработчики со всего мира разрабатывают дочерние проекты для этой операционной системы. Павлу повезло взять интервью у соавтора MirageOS Ханнеса Менерта, сегодня рассказываем самые интересные мысли из него.

Ханнес поделился с нами мыслями о функциональном программировании, рассказал о своём вкладе в MirageOS, о потенциале и ограничениях OCaml.

Вот самое интересное из интервью:

  • MirageOS написана на OCaml, мультипарадигмальном языке с развитой системой модулей, который используется для функционального программирования. Это означает, что можно избегать использования shared mutable state и фактически верифицировать программы, в том числе в контексте операционных систем.
  • Я обладаю довольно серьёзной подготовкой в области безопасности, что стало моей основной мотивацией для участия в доработке MirageOS и попытках запустить её в продакшн. С позиции безопасности, в ней меньше mutable state, и, к тому же, можно запускать HTTPS-приложения или веб-серверы с TLS. Здесь гораздо меньше кода, что означает меньше ошибок и меньшую ресурсоёмкость. Потому что, если не нужно запускать лишний код, не истратится лишних циклов CPU и лишней памяти.
  • У самого OCaml довольно быстрый рантайм. Есть сборщик мусора (он же менеджер памяти), который работает очень быстро. Основной вопрос заключается в том, позволяет ли OCaml написать достойный интерфейс, чтобы правильно передать аргументы и не тратить слишком много процессорного времени. Оказывается, позволяет, и достаточно быстро.
  • Создавая ретрит по MirageOS, я вдохновлялся опытом различных конференций, а также хакатонов OpenBSD. Основная идея — собрать приятную тусовку. Вы находитесь в приятном месте, где приятная погода, еда, солнце, и можно по-настоящему насладиться обстановкой.
  • С одной стороны, я пытаюсь привлечь завсегдатаев сообщества, у которых есть опыт и идеи на предмет различных библиотек и экосистемы, чтобы, находясь здесь, обсудить фундаментальные изменения. Но также я высоко оцениваю присутствие здесь новичков, новых идей и людей, которых мы можем оперативно интегрировать в группу и привлечь к программированию на OCaml и MirageOS — для развития сообщества.

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

Ханнес Менерт, Соавтор MirageOS
  • На мой взгляд, функционально программирование — это во многом про управление кодом и точное понимание логики программы.
  • Благо функционального программирования — это уровень контроля над довольно сложным кодом. В функциональном программировании, если обнаруживается ошибка где-то на верхнем уровне программы, её можно отследить до самого низкого уровня и исправить в течение одного уик-энда, тогда как сделать это в обычных операционных системах просто невозможно из-за размера и собственного кода, и используемых библиотек.
  • У меня есть мощный стимул открывать исходный код, потому что тогда другие разработчики смогут его переиспользовать. Мне нравится писать программы, и меня радует, что ими кто-то пользуется, будь то частное лицо или компания, использующая их для получения прибыли.

Полную версию интервью с техническими вопросами и деталями читайте на нашем сайте.

0
Комментарии
-3 комментариев
Раскрывать всегда