身の回りに溢れているほとんど全てのプログラムは、 静止状態の表現としてソースコードを持ち、 計算機上で実行され、そして終了します。 少なくとも、終了しようと思えばできるように作られています。

しかしながら、近年では、Webサーバやネットワークプログラムのように、 継続的に動作することが当たり前で、停止状態に移行する事自体が 例外とされるようなプログラムが珍しくなくなってきています。

RubyやPerl, Pythonなどの動的言語と呼ばれる言語が普及し、 プログラム言語の価値は、実行速度から開発速度で測られる 比率が高くなりました。 そんな中、去年ぐらいから、静的言語でも動的言語でもない、 新しいプログラミング言語のパラダイムの可能性について考えています。

はてしない物語。終了状態の無いプログラム。

停止することなく、動き続けることが想定されるService型プログラムを 記述することに特化した言語があってもいいのではないか。 そんな事を思うようになったのは、 Rubyistにはお馴染みの irbdruby を頻繁に使っていたからかもしれません。

NEPL ≒ irb + druby + Erlang + Sandbox

今のところ、open な druby サーバに対して irbで接続しに行くというのが、 一番それらしいものが得られる方法だと思います。 しかしながら、openなdrubyサーバを用意するのは非常にリスキーです。 ErlangのActorモデルや、エラー処理に関する哲学が参考になりそうです。

NEPL処理系が実現すると、 ソフトウェア開発のスタイルが大きく変わるのではないかと思います。

  • ソースコードを書いて、リポジトリにコミットするのではなく、 NEPL処理系に接続し、irb的なshellからActorを登録する。
  • 仕様をActorの評価関数(計算機リソースの割り当て比率を決める)として定義する。
  • バグを見つけてソースコードを修正するのではなく、 バグを定義してActorに対する罰金(ペナルティ)を課し、終息させる。

何かとりあえず動くものを形にしてみるべきですね。 $SAFE = 4なrubyとdrubyをベースにするか、 JavaScriptを使ってやるか、そのあたりを考えています。

See Also

posted by Png genki on Sun 2 Mar 2008 at 17:07 with 8 comments

以前のブログで大量のSpamコメントに困っていた経験から、 コメントを付ける機能をなくしていたのですが、 OpenID認証によってコメントを付けられるようにしました。

RestfulOpenIDAuthenticationプラグインに、まだ若干バグがあるようで、 一部のIdPでは正しく認証できない事があるようです。 その際は、Twitterで@takiuchiにご連絡いただければ、 プラグインの実装の改善に役立てさせていただきます。

よろしくお願いいたします。

posted by Png genki on Sun 2 Mar 2008 at 09:49 with 5 comments
Contents
The Never Ending Programming Language
コメントを付けられるようにしました
Comments
瀧内元気: MacOS版は以下にあります * [genki/ViMouse](https://githu... '23-1
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
瀧内元気: おお、チェックしてみます。thx! '11-12
overisland: Reeder for iPhone もこの UI を実装していますね。 '11-12
瀧内元気: その情報は見たのですが、以下のサイトによると、現在はまた必要になってるっぽいんですよね。 ... '11-12
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ