私の最近のお勉強プログラミング
2006-06-01


ASAHIネット([URL]のjouwa/salonからホットコーナー([URL] )に転載したものから。
---
 ぼくが昨年暮れくらいかな、お勉強してた&しているのは、Common Lisp,
Prolog,  Haskell, Erlang, oz。
 Common LispやPrologはAI(人工知能)的手法の温故知新。
 最近は、oz。なぜかといえば、改めてお勧めする、
[URL]
Seif Haridi, Peter Van-Roy著「Concepts, Techniques, and Models of
Computer Programming」(MIT Press)
が、ozを使っているから。
 この本(以下CTMCP)は、ほんといい教科書。詳しく書きたいが、時間なし。
だが、これだけはいえる。買って損なし、学んで損なし。

 以前、Perl, Python, Rubyといったスクリプト言語で、プログラミング言語
を設計・実装する世界がアマチャアにも広がったと書いたが、これらが扱うの
は、スタンドアローンの世界。その先にあるのが、並行/並列、分散をいかに
簡単に扱うかの世界。これらの言語にもスレッドやネットの機能はあるが言語
機能としては低水準であって、ライブラリレベルのサポート。言語レベルでの
サポートではない。

 プロの研究者の世界では、プログラミング言語のアイデアや実装は、大体
1980年代末までで出尽くしたといえるだろう。だが、並行・並列、分散の言語
のジャンルで、アマチュアが作ったPerl, Python, Rubyのような言語が出てく
るのか、出てくるとしたらどんな言語になるのかなとひそかな期待はあった。
 しかし、インターネットのおかげで、Erlangやozのような言語がオープンソ
ースで簡単に手に入る以上、もう作る話じゃないのかも。
 CTMCPを読むと、いろんな概念や計算モデルの本質的な部分は何かがよくわ
かるが、単に、Erlang, ozとMozartプログラミングシステムのことを知りた
いなら、
[URL]
Erlang
[URL]
The Mozart Programming System
をどうぞ。

 なぜ、並列・並行や分散が簡単に扱える言語のことを思っていたかといえば、
今後5年もすれば、一人で10個のプロセッサを使うのが当たり前になる。マ
ルチコアだったり、SMPだったり、ネットワークに分散したりプロセッサだっ
たりさまざまだろうが、プロセッサは身の回りにごろごろするようになる。
 そこで動かすソフトをC, Java, Perl, Rubyなどのシーケンシャルな言語で
書く気にはならない。
 大体、「ウェブ進化論」を読んで、Web2.0, シリコンバレー万歳、Google万
歳などと言っている奴に限って、何にもわかってない。
 常識で考えて、Googleが数十万個のプロセッサや超大容量のストレージを扱
うのに、いまだにCで書いたり、ナイーブなLinuxを使っているということがあ
り得るだろうか。おれの感覚ではあり得ない。おれの定義によれば、Googleは
広告スポンサーというパトロンから金をもらってサイエンスをやっている会社
だから。早い話が株式公開して民営化された大学の研究室。
 となると、つまりは、おぬしが言いたいのは、これじゃろ。
 そうそう。せーの。
 コネクショニズムの再来じゃ。\(^O^)/
 コンカレント・パラレル・ディストリビューテッド・ファンクショナル・ロ
ジック・オブジェクトオリエンテッド・マルチパラダイムLispじゃ。\(^O^)/

コメント(全6件)
コメントをする


記事を書く
powered by ASAHIネット