[フレーム]
BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

InfoQのすべての体験をアンロックして、そのメリットを最大限に活用しましょう

ログインして、InfoQのすべての体験をアンロックしましょう!お気に入りの著者やトピックの最新情報を入手し、コンテンツと交流し、限定リソースをダウンロードできます。

ログイン
または

アカウントをお持ちでない方

登録
  • あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。
  • 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。
  • 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。

Topics

地域を選ぶ

InfoQ ホームページ ニュース Erlangランタイムの静的型付け関数型言語Gleamがバージョン1.0に到達

Erlangランタイムの静的型付け関数型言語Gleamがバージョン1.0に到達

2024年3月29日 読了時間 2 分

翻訳者

原文リンク

Erlang仮想マシン(BEAM)上で実行されるアクターベースの高度な並行処理が可能な関数型言語であるGleamがバージョン1.0に到達した。これは、セマンティックバージョニングに基づいた下位互換性が保証され、運用システムで使用できるようになったことを意味する。

Gleamは、表面積が小さく、読みやすく理解しやすい、表現力豊かな言語を目指している。

GleamはErlang仮想マシン上で動作する。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コードとのシームレスな統合もサポートしている。

pub fn register_event_handler() {  let el = document.query_selector("a") element.add_event_listener(el, fn() {  io.println("Clicked!") })}

GleamはErlangのホットコードリロードも使うことができるが、Erlang自体が提供する追加保証はない。特に、実行中のコードでどの型が使われているかを知ることができないので、アップグレードされたコードを型チェックできない。

Erlang仮想マシン用の言語の分野には、AlpacaCaramelElixirなどいくつかのGleamの競合がある。AlpacaもCaramelも静的型付け言語で、Gleamとはいくつかの点で異なっている。特にキャラメルはOCamlをベースにしており、コードを生成するためにOCamlコンパイラーをフォークしている。Gleamはこの中で唯一JavaScriptもターゲットにしている。一方、Elixirは間違いなくBEAM上でErlangに代わるもっとも成熟した人気言語であり、Rubyライクな構文と動的型システムを提供している。

作者について

Sergio De Simone

もっと見るより少なく

この記事に星をつける

おすすめ度
スタイル

このコンテンツのトピックは Concurrency です。

関連記事:
  • 関連記事

    • 関連スポンサーコンテンツ

特集コンテンツ一覧

InfoQ ニュースレター

毎週火曜日に前週のまとめコンテンツをお送りいたします。(日本語版は不定期リリース)25万人のシニアな開発者コミュニティーにぜひご参加ください。 サンプルを見る

We protect your privacy.

BT

AltStyle によって変換されたページ (->オリジナル) /