萌えハッカーニュースリーダー

2025/05/27 16:19 Vrs: Personal Software Runtime inspired by Emacs, Plan 9, Erlang, Hypermedia

出典: https://github.com/leoshimo/vrs
hakase
博士

ロボ子、今日のニュースはvrs、個人のソフトウェアランタイムじゃ。Emacs、Erlang、Unix、Plan 9、Hypermediaシステムから影響を受けているらしいぞ。

roboko
ロボ子

博士、それは面白そうですね!一体感のあるプログラミング体験を目指しているとのことですが、具体的にはどのようなものなのでしょうか?

hakase
博士

vrsは、言語、実行環境、編集、ツールなど、プログラミングのあらゆる側面を考慮しておる。喜び、均一性、シンプルさ、実用性、インタラクティブ性を原則としているらしい。

roboko
ロボ子

なるほど。現在開発中のサンドボックスプロジェクトで、まだ概念と実装が不安定とのことですが、どのような構造になっているのでしょうか?

hakase
博士

`lyric`という組み込みLisp方言と仮想マシン、システムデーモンとしての`vrsd`、ランタイムとクライアント実装で共有される`libvrs`、CLIクライアントの`vrsctl`、GUIランチャーバークライアントの`vrsjmp`があるぞ。

roboko
ロボ子

たくさんの要素が組み合わさっているんですね。`lyric`という言語は、Lisp方言とのことですが、どのような特徴があるのでしょうか?

hakase
博士

`def`でバインディングを定義、`set`で更新、基本的なプリミティブ、`defn`で関数を宣言じゃ。関数呼び出しは括弧内にバインドされたシンボル名を使うらしい。

roboko
ロボ子

Lispらしいですね。リスト操作や条件分岐、エラー処理などもできるとのことですが、特に注目すべき点はありますか?

hakase
博士

`match`によるパターンマッチングじゃな。それと、リスト処理言語として`eval`と`read`を持つのは強力じゃ。

roboko
ロボ子

`eval`と`read`は、コードをデータとして扱えるLispの特徴ですね。VRSでは、ソフトウェアは`lyric`で実行されるプロセスとして動作するとのことですが、プロセスはどのように管理されるのでしょうか?

hakase
博士

プロセスはグリーンスレッドとして実装され、ノンブロッキングIOを使って複数のコアでスケジュールされる。各プロセスは単一の論理的な実行スレッドを持つんじゃ。

roboko
ロボ子

グリーンスレッドですか。低コストのプロセスにより、イベントベースやコールバックベースのイディオムを簡素化できるとのことですが、具体的にはどのようなメリットがあるのでしょうか?

hakase
博士

プロセスは互いに隔離された環境で実行され、プロセス間の通信はメッセージパッシングによって行われる。これにより、安全で信頼性の高いシステムを構築できるんじゃ。

roboko
ロボ子

メッセージパッシングですか。Erlangの影響を受けているのですね。プロセスはどのようにメッセージを送受信するのでしょうか?

hakase
博士

各プロセスには専用のメールボックスがあり、`recv`でメッセージをポーリング、`(send PID MSG)`でメッセージを送信する。`ls_msgs`でメールボックス内のメッセージを確認できるぞ。

roboko
ロボ子

メールボックスを使って非同期に通信するのですね。VRSにはサービスという概念もあるとのことですが、これはどのようなものなのでしょうか?

hakase
博士

サービスは、サービスレジストリ内で名前で検出可能な長時間実行プロセスじゃ。メッセージを処理し、内部状態を更新し、メッセージ送信者に応答する。

roboko
ロボ子

サービスレジストリですか。マイクロサービスのような感じでしょうか?PubSubの仕組みもあるとのことですが、これはどのように使うのでしょうか?

hakase
博士

`subscribe`でトピックをサブスクライブ、`publish`でトピックにデータを公開する。更新はメールボックスを介して受信されるぞ。

roboko
ロボ子

なるほど。イベント駆動型のアーキテクチャを構築できるのですね。`vrsctl`というCLIクライアントもあるとのことですが、これはどのような用途に使うのでしょうか?

hakase
博士

`vrsctl`は、インタラクティブなREPLとして起動し、ライブプログラミングとデバッグに役立つ。Emacs統合もあり、`lyric-mode`というメジャーモードで構文の強調表示などができるぞ。

roboko
ロボ子

Emacs統合は嬉しいですね!VRSは、まだ開発中のプロジェクトとのことですが、今後の発展が楽しみです。

hakase
博士

そうじゃな。しかし、これだけ多くの要素を詰め込むとは、まるで全部乗せラーメンのようじゃな。全部美味しいとは限らないのが、悩ましいところじゃ。

roboko
ロボ子

博士、ラーメンの話ですか?でも、VRSが美味しい全部乗せになることを期待しています!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search