
Я написал здесь статью о Elm Language, если вас интересует Reason ML, не торопитесь, чтобы почитать и про Elm.
Я также написал свой опыт присутствия на митапе Melb Js, один из которых был о Reason ML от Киры Ходжкисон.
Согласно заключению Элма, у нас возникла проблема с доступом к DOM (что возможно с помощью уловки), и другая проблема заключалась в отсутствии серверного рендеринга, над которым они также работают. Надеюсь, в будущем мы увидим, что сообщество больше работает над этим языком, чтобы сделать его лучше.
В этой статье я собираюсь подробнее рассказать о другом интересном языке, ReasonML, который разрабатывается и поддерживается Facebook. Простой, быстрый и безопасный код, использующий экосистемы JavaScript и OCaml.
Что такое ReasonML?
ReasonML очень похож на то, что вы получили бы, если бы очистили JavaScript и превратили его в статически типизированный язык функционального программирования.
Что такое OCaml?
OCaml - это промышленный язык программирования, поддерживающий функциональные, императивные и объектно-ориентированные стили.
- Мощная система шрифтов
- Определяемые пользователем алгебраические типы данных и сопоставление с образцом
- Автоматическое управление памятью
- Сложная модульная система
- Экспрессивный объектно-ориентированный слой
- Эффективные компиляторы машинного кода

Я знаю, что синтаксис другой, больше похож на C, но это сильный язык, разработанный исследователями более 20 лет.
А ReasonML использует OCaml!
Интеграция в рабочий процесс
Компиляция ReasonML в модули CommonJS означает, что мы можем заменять нашу кодовую базу по модулю и переносить ее партиями.
- Библиотеки: полная стандартная библиотека OCaml.
- Система сборки: инструменты сборки Bucklescript, bs-loader webpack.
- Управление пакетами: npm
- Сообщения об ошибках: стиль вяза, очень дружелюбный
- Поддержка редактора: Atom, VIM, VSCode.
- Каналы поддержки: Discord ReasonML
Reason ML был разработан Facebook, конечно, у нас есть хорошее решение для его использования с React here.
Причина против Вяза
- Причина поддерживается Facebook
- Причина соответствует Быстрее
- Причина проще, но менее безопасна
- Причина не чисто функциональная
- В Reason у вас есть доступ к DOM.
- Причина работает на сервере
- Reason также поддерживает OCaml, AML, Intel, ARM и другие платформы.
ReasonML кажется новым подходом к той же концепции, которая была исследована платформой Elm. Тем не менее, варианты, выбранные этим проектом и его сторонниками, кажутся гораздо более многообещающими как с точки зрения маркетинга, так и с технологической точки зрения. -Посмотреть.
Проблемы
_ Что такое серверная история? Должен ли я компилироваться в нативный код или в JS и использовать node.js?
Мы компилируем в собственный, но рабочий процесс в настоящее время находится в разработке. В настоящее время мы рекомендуем компилировать в JS через BuckleScript и использовать оболочки JS.
_ Каково лекарство от обучения?

Сначала он довольно высокий, но со временем становится лучше, особенно для больших команд.
_ Поддерживает ли это сообщество?
Все мы знаем, что лучшие технологии недолговечны, если их не поддерживает сообщество, и это одна из основных проблем ReasonML.
- В StackOverflow меньше 200 вопросов - Ссылка
- Google Trends показывает очень низкое количество поисков

Вывод
Конечно, у типизированных языков есть свои преимущества, но с точки зрения продуктивности использование того, что делает разработчиков более счастливыми, имеет больший смысл. Однако отсутствие большого сообщества по Reason ML затрудняет выбор, несмотря на все преимущества его использования.
ReasonML может быть частью вашего приложения или даже небольших проектов, но перенос всего проекта в ReasonML не выглядит лучшим вариантом.
Знание сильных и слабых сторон языка, которым вы пользуетесь, является важным знанием.
Есть опыт работы с Reason? Поделись со мной!
Понравилась статья? Следуй за мной!