0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gleamであそぼ ①初めましてGleam

0
Posted at

近況

仕事が忙しくなって技術のインプットから半ば逃避していました・・
が、3年目にして直属の部下が出来てしまった
しかも超優秀な部下でねえ・・勘弁してくれ()

じゃあ自分も頑張って実装をするしかねえ!!!!

何をしようか

ただ技術進歩がすさまじい昨今。
学ぶことが無限にある中で逆張りオタクの私が選んだのがGleamである

Gleamってなあに

Gleamは静的型付けの関数型プログラミング言語

ざっくり言うと
・ErlangのVM(BEAM)の上で動く = WhatsAppやDiscordを支える、超高並行・耐障害性に優れた基盤の上で動く
・静的型付け = コンパイル時にエラーを潰せる安心感(nullなし・例外なし)
・JavaScriptにもコンパイルできる = バックエンドもフロントエンドも同じ言語で書ける
・モダンで親しみやすい構文 = Rust / Elm / TypeScript経験者ならすぐ読める
らしいです(いつもありがとうclaude先生)

特徴

1. BEAM(Erlang VM)の上で動く

GleamはErlangのコードにコンパイルされ、BEAMという仮想マシンの上で動く。
BEAMはWhatsAppやEricssonの通信インフラを支えてきた、実戦で鍛え抜かれたランタイム。

アクターモデルによる並行処理(数百万の軽量プロセスを同時に動かせる)
「世界を止めない」並行GC
耐障害性に優れた設計

特別なことをしなくても、スケールしやすくて落ちにくいシステムが書ける。

2. 静的型付けで「nullなし・例外なし」

ErlangやElixirは動的型付けですが、Gleamは静的型付け。ここが最大の差別化ポイント。

nullが存在しない
例外を投げない
エラーはResult型、値の有無はOption型で表現する
パターンマッチが網羅的 = ケースの考慮漏れをコンパイラが教えてくれる

ランタイムでヌルポやエラーに悩む時間が、コンパイル時にぐっと前倒しされる。

3. エラーメッセージが親切

Gleamは「開発体験(DX)」をとにかく重視しています。タイプミスをすると「もしかして?」まで提案してくれます。

error: Unknown record field
  ┌─ ./src/app.gleam:8:16
  │
8 │   user.alias
  │        ^^^^^ Did you mean `name`?

コンパイラがフレンドリーなので、初心者でも詰まりにくい。

4. ツールチェインがオールインワン

Gleamのツール群はRust製の単一バイナリにまとまっている。

コンパイラ / ビルドツール / パッケージマネージャ / フォーマッタ / 言語サーバー(LSP)

gleam newでプロジェクトを作ればテストの雛形まで自動生成。環境構築で消耗しないのは大きな魅力。VS CodeやNeovimのエディタ統合も整っている。

5. バックエンドもフロントエンドも書ける

GleamはErlangだけでなくJavaScriptにもコンパイルでき、TypeScriptの型定義も自動生成してくれる。

バックエンド → BEAM(高並行・耐障害)
フロントエンド → JavaScript(ブラウザ・エッジ)

LustreというElmインスパイアのWebフレームワークを使えば、フロントもGleamで書けます。同じ言語・同じ思考のまま全レイヤーを書けるのは地味に強力。

6. BEAMの資産をそのまま使える

BEAM上の言語(Erlang / Elixir)と相互運用できるので、Hexパッケージマネージャ経由で何千ものライブラリを使えます。新しい言語にありがちな「ライブラリ不足問題」を、既存エコシステムの力でカバーできる。

じゃあどうすr

ここまでclaude君に助けてもらったがそれでは学びになりづらいので、何か作ろう

次回予告

Gleamで格ゲーツール作ってみた

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?