Urbit
OSというか、独自のファイルシステム・プロセス管理・ネットワーク処理がついた、(独自の中間言語的なやつの上で走る)仮想環境ってとこ?
(ハードウェアのドライバはついていない)
ArvoというのがそのOSみたいなもので、イベントを受けとりエフェクトを返す。
外にhttpポートを公開できる。
シェルまたはブラウザ上のクライアントで外部とやりとりできる。
Arvoはイベントからエフェクトへの純粋関数。
純粋関数なので複数のコンピュータに処理を任せたりするのが容易?
他人のUrbitへのアクセスも、ファイルシステムの一部のようにパスを指定してできる。
URLなどではない。
UNIXの /home/ayu-mushi みたいなユーザ名と、インターネットのドメイン名が同じになっているみたいな感じ?
サーバーとクライアントの区別はない。(P2P?)
ターミナルでは、UNIXコマンドで命令するかわりに、Hoonという独自の関数型言語を使う。
Hoonは予約語がなく、もともとある命令はすべて1文字か2文字の記号なので異常な形をしている。
プログラミング言語用語も全て独自で、異様。ロジバン由来の名称もあるらしい。(反動主義者がロジバン好きなのは変な感じだ) 0が真で1が偽。やはり頭がおかしいのかもしれない。フランス革命暦とかそういうやつを感じる。
ArvoはHoonで書かれている。
Nock: 木構造書き換え系。コンビネータ論理。Urbit上で使われる低水準言語なので、JVMでいうJavaバイトコードのようなものかな。HoonからNockにコンパイルする。
木構造ではなくDAGと言っているが、根は1つのようだし、純粋な言語なので枝の交わりが発生するというのも枝の先同士が完全なコピーになっているというのと変わらない。つまり木構造と考えて良さそう。
ヤーヴィンはHaskellだと関数がファイルに入出力したり、ネットワークを介して送ったりできないのを不満に思っているらしかったが、Nockではコンビネータで関数を表すことで(コンビネータは数字で表されている)、関数をファイルに入出力できるようになっている?
uniformly consisitent / orthogonally consistent
Lispを吐く言語の例として出てくる
現在の公式ページより昔ののがわかりやすいかも。
今の公式ページは技術的にならないように無理やり説明してるけど、そもそもこれを技術に触れずに説明するって無理じゃないかな?
によれば、現在のアーキテクチャは、漏れのある抽象化が重なってきたので、コンピュータ間で処理を任せたりが難しい。
そこでフルスクラッチで作り直すみたいなことをしたくなったんじゃないかと推測されている。
https://vimeo.com/75312418
インターネット2 (みんなその政治的イデオロギーによって自分をタグ付けする(していた)マジで変なpersonal server)