Gleam Weeklyの11と12がリリースされたので勝手に解説していきます。
issue 11
issue 12
issue11
This week in Gleam
Gleam 1.2.0 release - Fault tolerant Gleam
![Fault tolerant Gleam – Gleam](https://gleam.run//images/social-image.png)
Gleam v1.2.0がリリースされました。ここ1~2週間で一番デカい出来事と言えばこれですね。 今回のリリースは開発体験の向上が主となっています。現に自分も日々の開発で恩恵を受ける機会が多いです。
このリリースについてはZennでも解説しているので気になる方は是非読んでみてください。
![Gleam v1.2.0がリリースされた話](https://res.cloudinary.com/zenn/image/upload/s--wHt4AMve--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Gleam%2520v1.2.0%25E3%2581%258C%25E3%2583%25AA%25E3%2583%25AA%25E3%2583%25BC%25E3%2582%25B9%25E3%2581%2595%25E3%2582%258C%25E3%2581%259F%25E8%25A9%25B1%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:%25E3%2581%2593%25E3%2581%25BE%25E3%2582%2582%25E3%2581%258B%2520%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2U3NGU0NmZkYzMuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png)
Kielet 2.0.0 - A GNU Gettext implementation
KieletというGleamのgettext統合を提供するライブラリのv2.0.0がリリースされました。 gettextというのはGNUプロジェクトにより開発されているツールで、プログラムの他言語対応を補助する機能を持っています。
ソフトウェアの翻訳をやったことがある方は.po
とか.mo
なんて名前のファイルを見たことがあると思うのですが、アレを生成したりするツールがgettextです。
Kieletというライブラリを使うことで、プログラムが出力する文字列をこのgettextの対象に含めることができ翻訳作業をスムースに行えます。
Gloogle - Search through all public gleam packages
これは個人的に衝撃を受けたサイトで、Gleamの型名などを元に関数単位での検索を行なえるというものです。 ライブラリの検索としてGleam Packagesというサイトが既に存在しています。
こちら自分も便利に使っているのですが、ここまで詳細かつ多くの情報を見られるサイトは無いと思います。
リリース当初は応答が遅く、タイムアウトすることもしばしばでしたが、今では応答もかなり速くなっているのでぜひ使ってみてください。
Even more great Gleam stuff
Gleam JSON 2.0 is faster using erlangs built-in JSON library
Gleam公式が提供しているJSONライブラリgleam_json
がv2.0.0に到達しました。
また、このリリースではErlangの組込みライブラリを用いることで速度が向上しました。
最近gleam_json
を使う機会が増えているので速度の向上はかなりありがたいです。
Convert HTML into Lustre automatically.
HTMLをLustreのプログラムに変換してくれるサイトです。 FlowbiteなどのTailwindのコンポーネントをLustre使う際にかなり使えます。
issue12
This week in Gleam
End-to-end types: full-stack web apps
![End-to-end types: full-stack Web apps with Gleam by Hayleigh Thompson | Code BEAM Europe 2023](https://i.ytimg.com/vi/eVtkYQva0Ic/maxresdefault.jpg)
ベルリンで開かれたBEAM言語のカンファレンスでGleamのセッションがありました。 このセッションではGleamとLustreを使って音楽を作れるアプリのデモやElmアーキテクチャとErlang OTPのプロセスの類似性などハッとさせられる内容が多かったです。
あとLustre
って「ラスター」って読むんですね…ちゃんとした読み方が分かったのも良い収穫でした。
Interactive Lustre tutorial
![Welcome to lustre - The Lustre tutorial](https://gleam.run/images/og-image.png)
対話的なLustreのチュートリアルサイトが公開されています。 Runボタンを押すと実際のページが見られるので気軽にLustreをいじれます。
Bravo - 2.3.0
ETSのGleam wrapperです。
ETSのWrapperとしてはcarpenterがありますが、 CarpenterはDict と同様に、オブジェクトを単純なキーと値のペアに制限している1ため、柔軟性に欠けています。
bravoはテーブル内の全てのオブジェクトが同じ型でなければならないという事以外制約がありません。
またbravoはすべてのETS関数をライブラリに実装する予定らしく、期待したいところです。
Even more great Gleam stuff
stdin 1.0.0 - provides a synchronous iterator for consuming stdin.
Gleamで標準入力を扱うためのライブラリです。 ありそうでなかったのが結構ビックリで、これ使えば競プロできるんじゃないかと思ったのでやってみたいですね。
This Gleam project prints iterations of the Dragon Curve stacked on top of each other.
Gleamでドラゴン曲線を生成できるプロジェクトです。
リポジトリをcloneしてgleam run
すると./data
にSTLファイルが出力されます。
Temporary - A package to work with temporary files and directories.
Gleamで一時ファイルを扱うためのライブラリです。 一時ファイルを扱う機会は以外と多いのでありがたいですね。
まとめ
今回も色々なライブラリが発表されたり更新されました。 興味深いプロダクトも増えてきて、知名度も増してきているのを感じているので自分も何か作ってみたいですね。
Footnotes
-
本来ETSは動的型付け言語なので、静的型付け言語であるGleamにとって実装がかなり難しい。 ↩