Компания Bloomberg опубликовала первый стабильный релиз проекта BuckleScript, позволяющего компилировать проекты на языке OCaml в представление на javascript. BuckleScript позиционируется как альтернатива таким системам, как TypeScript, дающая возможность разрабатывать web-проекты с использованием статической типизации, без потерь в удобстве разработки. BuckleScript позволяет организовать бесшовное использование кода OCaml в javascript, сохраняя имена переменных и генерируя читаемый код. Исходные тексты проекта написаны на языке OCaml и распространяются под лицензией GPLv2.
В отличие от TypeScript в BuckleScript предоставляется полноценная система типов, без нагромождения кода аннотациями. Корректность использования типов проверяется на этапе компиляции, что гарантирует отсутствие ошибок типизации во время выполнения проекта. Информация о типах также позволяет задействовать в BuckleScript большое число оптимизаций, выполняемых на этапе компиляции, таких как свёртывание констант, удаление мёртвого кода (DCE) и оптимизация хвостовой рекурсии (TCO).
Из достоинств BuckleScript также отмечается возможность применения в проектах уже существующего языка OCaml, без необходимости изучения нового языка программирования. Написанный на OCaml код может применяться не только для преобразования в javascript, но и собираться в виде нативных исполняемых файлов или в форме самодостаточных unikernel, работающих поверх гипервизора. Применение интерфейса FFI (Foreign Function Interface) позволяет моделировать в программах на OCaml родную систему объектов javascript и использовать в проектах существующие библиотеки javascript. Компилируемые модули OCaml отражаются в модули javascript.
Для управления генерацией кода можно применять специальные атрибуты OCaml. Обеспечивается достаточно высокая скорость компиляции, например, по сравнению с TypeScript проект собирается как минимум в десять раз быстрее. Компилятор может быть собран в виде нативного исполняемого файла или в представлении на javascript, при этом вариант на javascript также обладает отличной производительностью и позволяет на лету компилировать проекты, практически в режиме реального времени.
Компания Bloomberg представила открытый оптимизирующий компилятор BuckleScript
Компания Bloomberg опубликовала первый стабильный релиз проекта BuckleScript, позволяющего компилировать проекты на языке ..., Компания Bloomberg опубликовала первый стабильный релизТакже по теме: