Today アクセスカウンター Yesterday アクセスカウンター

Erlang ブーム ?

lethevert さんの 「4/27を境に突然日記の数が増えたような。」という言及を見て,4/27 に何があったんだ ? と思っていたんだけど.

どうやら Erlang が @IT とやらに取り上げられたらしい (via Matz にっき).

あんがい,世の中ってのは,動くときはすぐ動くんだなーと.ボクが Erlang を始めて知ったのは 2 年ぐらい前,卒論の下調べのために KL1/GHC 周辺を色々調べていた頃.「並列論理型言語があるのに,理論的性質がほとんど同じ並列関数型言語ってのはないのかね ?」と疑問に思っていたら,shelarcy さん経由あたりで知ったような.

# まぁ,関数型とか論理型とかいうのは本質を外した古い見方で,重要なのは理論的に扱い易い形にプログラムを書いておいて,あとは破壊的更新なり,並列分散実行なりは機械的な最適化の結果に過ぎない (人間が最初から意識して書く必要は無い),というパラダイムだと思う.

そして k.inaba さんがひっそりと取り上げていたのを見ていたような頃には,今のこういう動きなんて想像もしてなかったよ.

一過性のブームでも何でも良いので,名前や考え方自体が広がるのは良いことだと思う.だいたい,3 年ぐらい前,Ruby が今ここまでメジャー (?) になる (なんせ,東大の般教や,刑務所の更正プログラムに採用されるほど) なんて誰も思ってなかっただろうし.Java から Ruby へ,なんて本,当時は冗談としか思えなかっただろうし.

# 今なら,Ruby から Haskell へ ! ぐらいの無茶度だと思う.

あんがい,あと 5 年ぐらいしたら,普通に Plan9/Inferno あたりがブームになったりしないかね ? ま,そりゃ無いか.OS の世界は,MS が圧倒的だからなぁ.

個人的には,プログラミング言語なんてのは単なるインタフェースだから,OS が古いパラダイムなのに,表層だけ変わってもしょうもないと思うんだけど.人類の通過儀礼というか,段階的なパラダイムシフトのための儀式だと思えば,非常に意義深く重要だと思う.あと 30 年ぐらいしたら,MS Windows じゃなくて Google の分散 OS が主流になってるかもしれないし (ボクは 54 歳か… まだまだ定年じゃないね).

極論を言えば,並列・分散技術ってのは,仕様とは全く関係無い一最適化技術なので,プログラマが意識してはいけない領域だと思う.逐次環境だろうが,並列分散環境だろうが,動作は同じになるはず.違いは使えるリソースの量だけ.つまり,逐次と並列分散環境で,プログラムの書き方が変わるような言語は,抽象化が不十分と言わざるを得ない.

ただ,並列言語や関数型プログラミングが流行るのは良いけれど,それらはあくまでも手段に過ぎないので,肝心の本来の目的の方が忘れられなければ良いな,とは思う.オブジェクト指向とやらの二の舞にならないように (オブジェクト指向の枠組みに綺麗にハメルことが重要なんじゃなくて,特定の問題を上手く解決できるということが重要).

J - ■ 新入社員が社内トップレベルとかいうはなし。

「Lispを勉強するとGoogleのMap Reduceを理解するのに役立つとかRadium Software Developmentで読んだんですけど、Lisp勉強するのて役に立つんですか?」とかそんな感じのことを聞かれてちゃんと答えられない僕。情けない。(TODO:Map Reduceを勉強する(しない))


lethevert is a programmer - ■MapReduce

MapReduce の場合はGFSを前提にして作っているので、XXXを使ってMapReduceライブラリを作ったYO、とか言っても、おいおいGFSまで実装したのかよみたいな、感じなので。そもそも、mapしてreduceするだけなら、シェルでもできそうなので、なんでもできるでしょ、みたいな気がする所を、まーネタだから、とわかっているうちはいいのでしょうけど、それを忘れてくると言葉だけが独り歩きしはじめて、一気にBuzzword化してしまって、もともとのものが持っていた問題意識とその解決策を忘れてしまって、またそのうち誰かが別の言葉で再発明して、みたいなループは生産的でないですからね。

コメント

Secret

普通ならスパムは即消すんだけど,soutaro 先生のためにあえて残しておくか w

http://d.hatena.ne.jp/soutaro/20070501/1178026304

しっかし,わけのわからないアダルトサイトといつの間にか blog ranking でつながってしまうという.これが FC2 クオリティ.トータル 1000 人以上来てるし.

トラックバックスパムは登録できるようになったんだけど.コメントはもうすり抜けられるようになってしまったみたいね (URL を含むコメントは,再確認されるようになった) まさか人力でやってるわけじゃないよな…

消してください(苦笑)

リンク先をたどってみました。
----
・銀行振り込みによる一括払いとなっています。
・料金は、定額制で90000円です。
・ご利用可能期間は180日間です。
・入会日から 2 日以内に下記の口座にお振り込み下さい。
----
90000円っ!!!

たいていそんな感じですよね (アダルトサイト 1 クリ詐欺に詳しい管理人)

消しました.

(「加護亜依にむしゃぶりつくオ○ジがマジキモい!」というスパムコメントがきてた.soutaro さんならずとも,どのくらいむしゃむしゃしているのか気になってしょうがないところです)

># まぁ,関数型とか論理型とかいうのは本質を外した古い見方で,重要なのは理論的に扱い易い形にプログラムを書いておいて,あとは破壊的更新なり,並列分散実行なりは機械的な最適化の結果に過ぎない (人間が最初から意識して書く必要は無い),というパラダイムだと思う.

初めまして.
これ昨夜よんで,今朝電車のる時に思いついたんですが,これっていま LSI の論理設計の分野で起こっていることに極めて近い気がしました.LSI って,これまでは Verilog だとか VHDL だとか使ってクロック毎に遷移する FSM を書いてて,実装が進むにつれて遷移条件の論理による遅延が 1 clock に収まらなくなったりしたときに大幅に書き直してるのが実情でした.でも最近は SystemC みたいなものつかってある程度抽象的な記述をしておいて,これに対して周波数だとか回路面積だとかと制約を与えて,あとはツールによって自動的に FSM を生成したりする方向に進みつつあります.

> kimata さん

こんにちは,コメントありがとうございます (^o^)

まさしくおっしゃるとおりだと思います.

# 一つ前の記事で軽く触れた YT さんの記事でも,ハードウェア記述言語の話題が出てましたね.
http://d.hatena.ne.jp/ytqwerty/20070430#p1

また,そのような流れはハードウェアに限らず,大規模なシステム構築が必要とされる全ての分野における,共通の大きな流れだと思います.

そして究極的には,任意の作りたいシステムの仕様を形式的に記述して,様々なトレードオフや制約条件をあたえた後,それを実行するのにもっとも効率的な論理回路を自動合成する,という方向性に行き着くのかなと思います.そうなると,もはやハードウェアやソフトウェアという区別自体も,過去の技術不足による制約によって生まれた非本質的な概念に過ぎなかった,ということになるのではないかと思います.

http://alohakun.blog7.fc2.com/blog-entry-613.html

>もはやハードウェアやソフトウェアという区別自体も,過去の技術不足による制約によって生まれた非本質的な概念に過ぎなかった,ということになるのではないかと思います.

この手の話は DRP とかやってる人から良く聞きますね.

ところで,ちょっと気になったんですが,論理回路の設計とかだと制約条件とかも比較的与えやすいと思うんですが,ソフトウェア一般を対象にした場合どうなんでしょうか?返って制約の入力に(様々な意味での)コストがかかったりと心配になったりします.あるいは逆に簡単に入力できるような仕組みができたとしたら,それはまさに本物の人工知能なのでは?,とかいろいろと妄想が膨らんできてしまいました.なんか,学生に戻りたくなった...

> kimata さん

不勉強ですいません,DRP という用語の意味がよくわかりませんでした (^-^;

>> 返って制約の入力に(様々な意味での)コストがかかったり

そうですね,まさしくおっしゃる通りです.的確なリーディングコメントありがとうございます.

人間が全ての情報を最初から与えるのでは,低水準言語 (アセンブリ,C/C++) のようなことになってしまいますからね.

まだシステムの細部が固まってない段階では,とりあえず動くだけの抽象的な仕様を書ける.そして,細部が固まってくるにつれて,追加仕様として情報を与えれば与えるほど,インクリメンタルに最適化されたプログラム (究極的にはハードウェア) が合成される,という仕組みを前提として.

「 人間が情報を与えるか,機械が推論して情報を増やすかという違い」
http://alohakun.blog7.fc2.com/blog-entry-731.html

それに加えて,静的なプログラムの自動解析,あるいは動的に実行してみて情報を集める (抽象実行など) という,ある種の人工知能的な,インテリジェントにプログラムを合成していく仕組みが必要不可欠になってくると思います.機械が推論できるところは,なるべく機械に任せて,人間は問題の本質に集中できるようにするというパラダイムを徹底していくと.

# 現存の技術の中でも,例えば実行時にプロファイルを集めて終了後に自動最適化する LLVM なんかは,わりと夢があるところだと思います.
http://alohakun.blog7.fc2.com/blog-entry-706.html

その果てには,自分自身の情報を自分自身で集めて,自分自身を組み換えて最適化していくシステム (それも,ハードウェアレベルで) ということになり,これはまさしく人工知能なのではないかという妄想が自然と広がってきますね.

まぁ,そういう理想からすると,現在の計算機科学はあまりにも貧弱なのですが… AI の長く厳しい冬は,そこに本質的な原因があると思います (私はもともと AI をやりたかったのですが,あまりにも AI のプログラミングレベルが低いので,こりゃ無理だと思って,まずは基礎から作らないといけないとこっちの業界 (?) に移ってきた経緯があったりもします).

人工知能の実現には高度なシステム構築技術が必要だが,高度なシステム構築にはプログラムの自動合成を行えるレベルの人工知能 (汎用の人工知能に比べれば,はるかに現実的ではあるものの) が必要だという鶏と卵の関係ですね.

ただ,上記したようなプログラム合成システムによって,高度なシステムの開発が容易になる → より高度なプログラム合成システムが構築可能になる → より高度なシステムがより容易に開発可能になる,というブートストラップにより,案外進むときは一気に進歩が進むのかもしれない,という楽観もあったりします.苦しい時期がまだまだしばらくは続くと思いますが.

>> なんか,学生に戻りたくなった...

ブログにはカッコいいこと書いてますが,現実の私はどうしようもない駄目学生なので,最近あまり研究が進んでいません.立派に社会生活を営んでいる全ての社会人の方々が立派に見えて,羨ましくてしょうがないのですが… ホント,隣りの芝は青いですねぇ (笑)

研究という言葉の響きはカッコいいですが,現実的には面倒な作業だらけだし,不確定要素が多すぎて未来が見えない日々に日夜消耗しているのですが… 初心を忘れずに,研究をがんばらないと,と思いました.

丁寧な説明ありがとうございます.インクリメンタルというのがポイントですね.
非常にすっきりしました.

>DRP という用語の意味がよくわかりませんでした (^-^;
すみません.Dynamically Reconfigurable Processor、日本語では動的再構成可能プロセッサとかいわれているものです.名前のとおり,動作中に回路を書き換えることが可能なデバイスを指します.確か昨年国内学会が立ち上がって,今割りと盛り上がってます.
プロフィール
  • Author:あろは (alohakun)
  • 京都のデバッガベンダーに勤めるアラサー会社員。

    本ブログの内容は,あくまでも個人的な感想や意見であり,会社の意見を代表するものでは一切ありません.

    連絡先 : alohakun ___at___ gmail.com
    mixi : http://mixi.jp/show_friend.pl?id=182927
    twitter : http://twitter.com/alohakun













    あわせて読みたい


    この日記のはてなブックマーク数


    スカウター : ホワット・ア・ワンダフル・ワールド


    Map
FC2カウンター
ブロとも申請フォーム

この人とブロともになる

最近のコメント
リンク
最近のトラックバック
人生の残り日数
日本人男性の平均寿命は 28700日.
RSSフィード
カテゴリー
  1. RSSリーダー