この記事は、Elixir Advent Calendar 2024 シリーズ5 の3日目です
昨日は、私で 「2024年のElixir②今年、更新されたライブラリ/FW編」 でした
piacere です、ご覧いただいてありがとございます
2024年末の時点で、Elixirにいったい何が出来るのかを紐解いていくシリーズで、前回は「②今年、更新されたライブラリ/FW編」 でしたが、今回は「③Livebook+プラグイン編」です
その前に、「Livebookって何?」という方が、Elixirを以前からやられている方々でもいらっしゃると思うので、まずはLivebookとその特徴についてもまとめておきます
本シリーズの全体像は、下記になります
①2024年の新たなライブラリ/FW編
②2024年に更新されたライブラリ/FW編
③2024年のLivebook+プラグイン編
④2024年のクラウドライブラリ編
⑤2024年のWeb/スマホ/マイクロサービス編
⑥2024年のAI・LLMトレンドから2025年のElixirを占う
⑦2024年末までのElixirができることを振り返る
なお、このコラムが、面白かったり、役に立ったら、 をお願いします
まず「Livebook」とは?
Livebookは、2022年1月にデビューしましたが、現在までの約3年の間に、最も進化したElixir OSSだと思います
当初は、「JupyterNotebookやColaboratoryのElixir版」のような、Web上でのElixir開発、もしくはAI・ML/データサイエンス開発環境としての位置付けが強かったです
ですが現在は、DB管理ツールやリアルタイムグラフ表示サーバ、データ変換サーバとしても使え、アプリケーションサーバとして他アプリへのモジュール/関数を提供するサーバや他サーバの管理コンソールとしても存在でき、さらにElixir分散ノードとしても高速稼働させることができます
また今年、「Livebook Teams」という形で、下図にあるように、顧客とKPIやメトリクス、オンボーディング、データベースのような運用情報を共有するコンソールとしての役割も付与されました
従来のElixir/Erlangが進化し続けてきた方向を受け継ぎ、「よりElixirらしい魅力」を広げつつも、全く異なるUXの実現や、ユーザー層確立へと繋がるプロダクトとなっています
Elixirを新たに始める方が、iexからスタートするのでは無く、Livebookからスタートするケースも出てきており、書いたコードをMarkdownとして保存し、使いまわせるメリットもあることから、「育成」という面でも強力なプロダクトです
Livebookが出来ること
- ノーコード(Elixir不要)でAI開発やDB管理、グラフ表示、データ変換をこなせる
- JupyterNotebookやColaboratory同様、Markdownでコードを保存できる
- GitHubにpushすればGitHub上で表示もできる
- Marmaidによるダイアグラムも使える
- JupyterNotebookやColaboratory同様、Markdownでコードを保存できる
- さまざまなデータ変換もノーコードでこなせる
- DB接続(PostgreSQL、MySQL、BigQuery、Snowflake等)とSQLもノーコードで
- Livebookで作ったアプリ(ノーコード含む)をLiveViewアプリとしてデプロイできる
- 既存のElixir PJやPhoenix PJに後付けでLivebookをバインドできる
- Livebook側でそれらPJのモジュールや関数を単独で動かして試せる
- データのグラフ化や
dbg
によるビジュアルデバッグ/スキップも可能
- データのグラフ化や
- 複数ユーザーで同時に1つのLivebookに入ってモブプログラミングもできる
- 複数のLivebook同士を接続して、コードを共有することもできる
- 動いているElixirサーバに接続し、リモートデバッガとして動かすことができる
- Elixirサーバとして、他ElixirノードとNW接続できる
- Livebookを1つの分散サーバとしてクラスタ参加させることもできる
- Livebookをコントローラとした分散すら可能
- Livebook側でそれらPJのモジュールや関数を単独で動かして試せる
- ノーコードで作ったものからElixirコードを抽出し、自作プロダクトに転用できる
- Phoenixのサーバレス機能「FRAME」で関数単位の分散も可能に
- Web上だけでElixirコードを実行することができる
- vi/emacsのようなキーバインディングが使える
- コードブロックの削除とアンドゥがWeb上でできる
2024年にリリース/更新されたLivebookプラグイン
ここからが本題で、hex.pm
の「Recently Created」、もしくは 「Recently Updated」 の今年分で上がっていたLivebook関連のプラグインのうち、キャッチーなものを13本、ピックアップして紹介します
Kino LiveComponent
Livebook上でLiveComponentを動かすためのKino
Kino Component
Livebook上でPhoenix Componentを動かすためのKino
Kino Benchee
BencheeをLivebook上で使うためのKino
Kino Figma
FigmaをLivebook上で見るためのKino
Kino STL Viewer
ThreeJSによる3Dデータ(STL)をLivebook上で見るためのKino
Phoenix Playground
Phoenixのプレイグラウンドライブラリで、Livebook上からでも利用できる
LiveView Playground
LiveViewのプレイグラウンドライブラリで、Livebook上からでも利用できる
Kino YouTube
YouTubeをLivebook上で見るためのKino
Kino Niconico
ニコニコ動画をLivebook上で見るためのKino
KinoPHP
Livebook上でPHPを動かすためのSmartCell
KinoTableInput
Livebook上でテーブルからの入力をできるようにするためのSmartCell
KinoSheetEx
Livebook上でGoogleスプレッドシートのデータを行単位で拾えるようにするためのSmartCell
KinoFlame
Livebook上でFLAME(Elixir間でFaaSを気軽にするための仕組み)を呼び出して実行できるようにするためのSmartCell
最新版のLivebookでは内蔵されている
終わりに
Livebook+プラグインの織りなす、凄まじいElixir開発体験/新たな分散体験が伝わったでしょうか?
古くからElixirに触れ続けてきた人間から見ても、この3年間の凄まじく、元となったJupyter Notebookを遥かに超える進化を見せたLivebookとKino、AI・LLM系含む諸々は、ノーコード/ローコードの新たな未来を切り開き、新しい世代のプログラミングイディオムを生み出しています
そんなLivebookのハンズオンを含むノーコード群(Kintone、SalesForce、Difyなど)とAI・LLMやIoTとの連携について、今週末の12/6(金)13:30~16:30にセミナーを行いますので、良かったら聴きに来てください … なお、本日が申し込みの〆切です 💁♂️
下記URLからお申し込みできます
https://apply.e-tumo.jp/pref-kochi-u/offer/offerList_detail?tempSeq=12542
次回は、「④クラウドライブラリ編」 をお送りします
p.s.このコラムが、面白かったり、役に立ったら…
明日は、 @RyoWakabayashi さんで 「Advent of code 2015 Day 18 Part 1 & Part 2 を Livebook で楽しむ」です