METABYTE
К списку статей

O(x)Caml в космосе: когда функциональное программирование встречается с орбитой

OCaml отправился на орбиту — и это не шутка про монады в невесомости.

15 мая 20262 мин чтения
O(x)Caml в космосе: когда функциональное программирование встречается с орбитой

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

Суть в том, что OCaml с его строгой типизацией и иммутабельностью отлично подходит для критического ПО, где ошибка стоит дороже, чем перерасход топлива. Разработчики утверждают, что код на OCaml для спутников получается компактнее и надёжнее, чем на C. Конечно, без боли не обошлось: пришлось написать свой рантайм и биндинги к железу, но кто сказал, что космос — это легко?

Что под капотом

  • Микроядро на OCaml — да, прямо на борту, без приколов с GC в реальном времени (почти).
  • Инструмент для верификации — типы помогли отловить пару багов ещё до компиляции, что в космосе экономит не только время, но и миллионы долларов.
  • Интеграция с CubeSat — стандартный наноспутник, так что любой стартап может попробовать.

Конечно, до продакшна в духе "полететь на Марс на OCaml" ещё далеко, но первые тесты на стратосферных шарах показали, что GC не убивает процессор мгновенно. А это уже победа.

Комментарий студии METABYTE: Мы пока не запускали спутники, но если ваш проект требует надёжности, как у космического корабля, — OCaml или не OCaml, а код писать всё равно придётся. И мы знаем, как сделать это без багов (ну, почти).

СЛЕДУЮЩИЙ ШАГ

Понравилось как мыслим?

Применяем те же принципы в клиентских проектах: AI, автоматизации, продукты, которые не умирают после релиза.