Jane Street発の強力なUIライブラリ「Bonsai」を徹底解説!
Bonsai: Janestreet's UI Library
Bonsai: Janestreet's UI Library
Jane Streetが開発したUIライブラリ「Bonsai」について紹介します。Bonsaiは、関数型プログラミング言語のOCamlを活用し、複雑なUIコンポーネントを型安全かつ効率的に構築するために設計されたフレームワークです。宣言的なプログラミングモデルを採用しており、高いメンテナンス性とパフォーマンスを両立させたいエンジニアにとって注目の選択肢となっています。
あー、それユーザーランドのトランポリンが必要ってことか!
JSOOは末尾呼び出し最適化(TCO)に対応してないからね
BonsaiはOCamlで書かれているから、バックエンドとフロントエンドの両方で同じ言語と型を使えるようになる。
ついに来た!これが可能になるのをずっと待ってたよ!
OCamlを採用している企業がフロントとバックの両方でOCamlを活用するために使っているMelange(ahrefsが主要なユーザー兼スポンサーだね)と比べてどうなのか気になる。これって、JSエコシステム(Reactやgraphqlとか)を大幅に諦めることになるの?
パフォーマンスは高いんだろうけど、見た目がとにかくひどい。マージンを調整するくらい誰でもできるし、パフォーマンスを維持したまま改善できるはず。
興味深い!Bonsaiの依存関係はどうなってるの?OCamlは使ってるけど、今のところJane Streetのライブラリとかは使ってないんだよね。
Jane Streetって、オタク向けYoutubeチャンネルのスポンサーになったりUIライブラリ書いたりする以外に何やってるの?
この取り組みについて語っているSignals and Threads(Jane Streetのポッドキャスト)の素晴らしいエピソードがあるよ:https://signalsandthreads.com/building-a-ui-framework/ (https://signalsandthreads.com/building-a-ui-framework/)
docsディレクトリが存在してないせいで、READMEからクイックガイドや「Thinking in Bonsai」ページへのリンクが全部切れてるよ。
あと、bonsai-webがどうやってDOMを更新してるのかも気になる。変更された要素を直接書き換えてるのか、それともDOMの差分比較(DOM differ)を使ってるのか。ソースをざっと見た感じだと直接更新しているように見えるけど、確信が持てないな。
Web UIライブラリだって言ってるのに、実際にどんなものか見せるためのサンプルページ(github.ioとか)へのリンクが一つもないって一体どういうこと?
もっと現実的な質問なんだけど、仕事の社内アプリで実際にこれを本番導入した人いる?こういうUIは見た目もいいし、個人的には好きなんだけど、チームにTailwind CSSとか自前でコンポーネントを作る構成の代わりにこれを導入しようって提案するのは少し勇気がいるというか、違和感があるかな。