Gleam 1.0: Статически типизированный функциональный язык на Erlang VM достиг v1.0

Gleam, функциональный язык с акторной моделью, работающий на виртуальной машине Erlang (BEAM), достиг версии 1.0. Это означает, что теперь он готов к использованию в производственных системах с гарантией обратной совместимости на основе семантического версионирования.

Gleam стремится быть языком с небольшой областью применения, легким для чтения и понимания, а также выразительным.

Преимущества Gleam:

  • Надежная виртуальная машина: Gleam работает на виртуальной машине Erlang — зрелой и проверенной платформе, на которой работают многие из самых надежных и масштабируемых систем мира, такие как WhatsApp. Gleam также может работать в средах выполнения JavaScript, что позволяет запускать код Gleam в браузере, на мобильных устройствах или в любом другом месте.
  • Статическая типизация и надежность: Gleam следует примеру строго типизированных языков, таких как Elm, OCaml и Rust, обеспечивая надежный статический анализ и гарантии во время компиляции. Он также использует неизменяемые структуры данных, реализованные с помощью структурного разделения, как в Clojure, для обеспечения эффективной работы.
  • Конкурентность и безопасность: Доступ к изменяемому состоянию одновременно осуществляется через акторов или базу данных ключей-значений в памяти Erlang (ETS).
  • Масштабируемость: По словам команды разработчиков ядра языка, система параллелизма Gleam может одновременно выполнять миллионы задач и легко масштабируется благодаря неизменяемым данным и сборщику мусора, который никогда не останавливает работу всей системы.
  • Взаимодействие с другими языками: Программы Gleam могут использовать пакеты, созданные для BEAM, независимо от языка, на котором они написаны. Кроме того, в программе Gleam можно смешивать код Erlang и Elixir. Это возможно благодаря тому, что инструмент сборки Gleam может компилировать зависимости Elixir, а также исходные файлы Elixir и поддерживает специальный синтаксис, позволяющий импортировать внешние функции для их вызова из кода Gleam. Gleam также поддерживает бесшовную интеграцию с кодом JavaScript при компиляции для среды выполнения JavaScript.
  • Горячая перезагрузка кода: Gleam может использовать горячую перезагрузку кода Erlang, но без каких-либо дополнительных гарантий, кроме тех, которые предоставляет сам Erlang. В частности, обновленный код не может быть проверен на типы, поскольку невозможно узнать, какие типы используются в запущенном коде.

Конкуренция на BEAM VM:

На виртуальной машине Erlang у Gleam есть несколько конкурентов, включая Alpaca, Caramel и Elixir. Alpaca и Caramel — это статически типизированные языки, которые отличаются от Gleam по ряду параметров. В частности, Caramel основан на OCaml и даже форкает компилятор OCaml для генерации кода, в то время как Gleam и Alpaca — оригинальные языки. Gleam — единственный из них, который также ориентирован на JavaScript. С другой стороны, Elixir, безусловно, является самой зрелой и популярной альтернативой Erlang на BEAM, предлагая синтаксис, похожий на Ruby, и динамическую систему типов.

Читайте также
Dev новости: Vite 5, Roc язык, JS Framework SDKs
Dev новости: Vite 5, Roc язык, JS Framework SDKs
Dev новости: Vite 5, Roc язык, JS Framework SDKs

Коротко о Vite который использует Rust. Язык Roc использует WebAssembly и SDK платформы JS для аутентификации.

Angular V17: главные обновления
Angular V17: главные обновления
Angular V17: главные обновления

Вышло обновление фреймворка Angular V17: увеличение производительности, расширенные возможности, разработка с прицелом на будущее.

WildFly 30 готовится к использованию JDK 21
WildFly 30 готовится к использованию JDK 21
WildFly 30 готовится к использованию JDK 21

В релиз также включили новую возможность настройки параметра «max-read-page-bytes» в подсистеме messaging-activemq.

Dev новости: React 19, Bun приходит в Angular и GitHub AI Fund
Dev новости: React 19, Bun приходит в Angular и GitHub AI Fund
Dev новости: React 19, Bun приходит в Angular и GitHub AI Fund

React 19 вот-вот выйдет, спустя два года после выхода предыдущей версии, а еще обновления Angular и Astro, а также фонд искусственного интеллекта на GitHub.