2 つの原理と文化
最近のいまさら過ぎる Y コンビネータネタとかが 100 近いブクマを集めている様子とかには,正直辟易していたのですが.
(あんたらもしかして,ポール・グレアムの VC (http://ycombinator.com/) の名前の由来とかを,今まで知らなかったの ? とか.Web 2.0 プログラマ (?) 向けの VC のような気がするのに… これで,VC の面接の質問の一番最初が 「我々の名前の意味を知ってますか ?」 とかだったら皮肉過ぎる w まぁ,MIT とかスタンフォードとかの計算機科学部を出てれば 100 % 知ってるだろうし,そういう人たち対象なのでしょうが)
2005 年とかにも話題になって,sumii さんとかが同じようにネタにしてたんですよね.Y コンビネータとか,基礎的な計算機科学の概念を勉強する最大の価値は,何度も定期的に繰り返されるブームに踊らされないで済むということかも :-)
まぁ,そんな,がんばって GCC とかの記事書いても1ブクマもつかないオメガブロガーの僻みはどうでも良いとして (笑)
k.inaba 神のまとめが大変素晴らしいですね.このネタを引き出したというだけでも,1年以上前の話題をループさせた価値はあったのかもしれません.
# 追記 もう 2008 年だから 2 年以上前だよ ! 時間の流れが止まってるよ…
これを見て,そういえば Smalltalk とか Lisp Machine みたいな (OS を含む) プログラミングシステムは,全てをオブジェクトとして統合的に扱うという点で,ラムダ計算的なパラダイムに基づくシステムなのかなぁと.もちろん,抽象階層のレベルは全然違いますけど,根底に流れる思想として.
逆に,UNIX とか Plan9 みたいな,アプリケーション間 (Plan9 ではネットワーク間さえも) のデータの流れを全部文字 (バイト) 列としてパイプとかリダイレクションでつないで,正規表現とかで切り貼りして扱うするような文化は,チューリングマシン的なパラダイムなのかも.
結局,ラムダ計算的なシステムは主流にはならず,チューリングマシン的なパラダイムが生き残ったので,その後は CPU とかプログラミング言語とかも,どんどん TM 的 (命令型) になってきたと.UNIX 文化は C と Perl を生んだわけで,PHP あたりはそれの Web 向けの後継という気がします (どちらもその後どんどん改良されて当初とは別物になってますけど).
それが,現在のインターネット,ひいては Web アプリケーションの文化まで,脈々と影響を与えつづけている (テンプレートや正規表現の多用,(言語オブジェクトではなく) 文字列ベースの DB 操作やデータ通信) ってのは,なかなか面白いですね.
んで,ラムダ的な文化圏の人が 「文字列の切り貼りで Web アプリケーション作るのはダサいし危険だよ.それはセンス無いやり方だよ」 とか主張していると.Ruby なんかは,いろんな言語の合いの子なんでよくわかりませんが,構文が C/Perl (ALGOL) like な Smalltalk とか Lisp に近い文化圏なんでしょうね.
PHP とか Rails とか,単なる表層的な言語論争ではなく,Lisp Machine vs UNIX,S 式 vs XHTML もっと言えば ラムダ計算 vs チューリングマシン,そういう根本レベルまで遡れる構図なのかもしれませんね.言語レベルだけで語っていると,本質を見失うかも.
Matz 日記 2008-01-29 PHP使いの反論
なんか酔っ払って帰ってきたら,higepon さんのブログや amachang さんの twitter からリンクが…
あわわわわ,すいません.(このブログではよくある)ちょっとした自虐ネタのつもりだったのですが… >< 無能とも言ってないですし,悪いとも言ってないです… そもそも,amachang さんほどのアルファブロガーが才能無いんだったら,日本に才能あるプログラマなんてほとんどいなくなるような… (^-^;
はてブが付く,注目を集められるってのは,それだけで素晴らしい才能だと思います.僕みたいに何書いても反応が無いオメガブロガーは,その才能が眩しくて妬ましいんですよね.なのでついつい怨み節に満ちた攻撃的な書き方になってしまったのです (苦笑) ほんとすいません
別にラムダ計算にせよ Y コンビネータにせよ何にせよ,そんな知識いくら知っててもクソの役にも立たないですし,飯は食えないので,僕のような NEET 同然の貧乏大学院生からすれば,知名度があって有名企業に勤めてる amachang さんなどは圧倒的に立場が違うので,蚊に刺された程度にも感じないと思ってテキトーな噛みつき記事を書いたのですが… もし傷付けてしまったのならば,ホントすいませんでした m(_ _)m
あとまぁ,higepon さんなども,僕などとは比較にならない圧倒的な勝ち組ですので.数学とか物理学とは異なり,歴史も体系化も浅い計算機科学 (レベルのアカデミックの) 知識なんてのは,ちょっと学校通うか,何冊か本読めば誰にでもわかる程度の知識なので,全然大したこと無いです.それよりも,継続して開発しているプロジェクトを持っていて,知名度があって,立派に社会人やってて,家庭を維持しているということの方が,中途半端な知識やプログラミング技術などよりもはるかに立派なことですよ (あまりにもあたりまえすぎていまさら言うようなことでもないですが)
というわけで,単なる日陰の NEET キモオタのやっかみ記事ということで.多少気に障ったとしても,スルーしていただければ幸いです (甘え)
まぁ,こんだけ (客観的に読みかえしてみると) 痛い記事書いて,higepon さんや amachang さんにリンク張っていただいても,ブクマもコメントもそんなに付かないし,炎上もしないところが,このブログのオメガさを象徴してますね (自虐) ← こういうのがよくない w
(あんたらもしかして,ポール・グレアムの VC (http://ycombinator.com/) の名前の由来とかを,今まで知らなかったの ? とか.Web 2.0 プログラマ (?) 向けの VC のような気がするのに… これで,VC の面接の質問の一番最初が 「我々の名前の意味を知ってますか ?」 とかだったら皮肉過ぎる w まぁ,MIT とかスタンフォードとかの計算機科学部を出てれば 100 % 知ってるだろうし,そういう人たち対象なのでしょうが)
2005 年とかにも話題になって,sumii さんとかが同じようにネタにしてたんですよね.Y コンビネータとか,基礎的な計算機科学の概念を勉強する最大の価値は,何度も定期的に繰り返されるブームに踊らされないで済むということかも :-)
まぁ,そんな,がんばって GCC とかの記事書いても1ブクマもつかないオメガブロガーの僻みはどうでも良いとして (笑)
k.inaba 神のまとめが大変素晴らしいですね.このネタを引き出したというだけでも,1年以上前の話題をループさせた価値はあったのかもしれません.
# 追記 もう 2008 年だから 2 年以上前だよ ! 時間の流れが止まってるよ…
Derive Your Dreams 17:08 08/01/29 まとめ
lambda やクロージャを使って何ができるかやってみるのも楽しいけれど、時には、逆に、lambdaやクロージャは何と何を使ってできてるのか、とか、何と何があれば lambdaやクロージャがどのくらいのレベルまで実現できるのか、を考えてみるのも楽しいこともあるかも。役には立つかどうかは人によるような気がする。
そういう風に「○○は何と何があればできるのか?」を突き詰めてった一つの究極が …… 「ループって再帰で書けるよね」「名前付き関数っていらないよね。無名関数だけでいい。」「再帰もYコンビネータがあればいいしね。」「自然数ってChurch Encodingすればこれも無名関数で書けるよね。」「booleanとif文も全部関数だけで実現できちゃった。」 …… λ計算。
で、もう一つの究極が …… 「要はどんなオブジェクトも文字列化できる言語なら、create_functionみたいなのさえあればクロージャ要らんよね。」「全部文字列でいい。」「クラスオブジェクトとかもJSONとかみたいなのでなんか文字列になるよきっと。」「関数も全部"関数本体のソース"っていう文字列で表すことにしちゃえ。」「つまり文字列操作さえできれば他全部要らない」「文字列操作っつーか、一文字ずつ読んで隣の文字の処理に移って…みたいな一文字ずつの処理さえあれば実はおk」 …… チューリングマシン。
だったりもする。
これを見て,そういえば Smalltalk とか Lisp Machine みたいな (OS を含む) プログラミングシステムは,全てをオブジェクトとして統合的に扱うという点で,ラムダ計算的なパラダイムに基づくシステムなのかなぁと.もちろん,抽象階層のレベルは全然違いますけど,根底に流れる思想として.
逆に,UNIX とか Plan9 みたいな,アプリケーション間 (Plan9 ではネットワーク間さえも) のデータの流れを全部文字 (バイト) 列としてパイプとかリダイレクションでつないで,正規表現とかで切り貼りして扱うするような文化は,チューリングマシン的なパラダイムなのかも.
結局,ラムダ計算的なシステムは主流にはならず,チューリングマシン的なパラダイムが生き残ったので,その後は CPU とかプログラミング言語とかも,どんどん TM 的 (命令型) になってきたと.UNIX 文化は C と Perl を生んだわけで,PHP あたりはそれの Web 向けの後継という気がします (どちらもその後どんどん改良されて当初とは別物になってますけど).
それが,現在のインターネット,ひいては Web アプリケーションの文化まで,脈々と影響を与えつづけている (テンプレートや正規表現の多用,(言語オブジェクトではなく) 文字列ベースの DB 操作やデータ通信) ってのは,なかなか面白いですね.
んで,ラムダ的な文化圏の人が 「文字列の切り貼りで Web アプリケーション作るのはダサいし危険だよ.それはセンス無いやり方だよ」 とか主張していると.Ruby なんかは,いろんな言語の合いの子なんでよくわかりませんが,構文が C/Perl (ALGOL) like な Smalltalk とか Lisp に近い文化圏なんでしょうね.
PHP とか Rails とか,単なる表層的な言語論争ではなく,Lisp Machine vs UNIX,S 式 vs XHTML もっと言えば ラムダ計算 vs チューリングマシン,そういう根本レベルまで遡れる構図なのかもしれませんね.言語レベルだけで語っていると,本質を見失うかも.
Matz 日記 2008-01-29 PHP使いの反論
なんか酔っ払って帰ってきたら,higepon さんのブログや amachang さんの twitter からリンクが…
自分が無能なプログラマだってことぐらい分かってますよ。才能もないし。そう思ってるからこそ、必死に勉強してるんですよ。それが悪いことですか。はてブとかどうでもいいんじゃないですか。
http://www.twitter.com/amachang/statuses/659075442
あわわわわ,すいません.(このブログではよくある)ちょっとした自虐ネタのつもりだったのですが… >< 無能とも言ってないですし,悪いとも言ってないです… そもそも,amachang さんほどのアルファブロガーが才能無いんだったら,日本に才能あるプログラマなんてほとんどいなくなるような… (^-^;
はてブが付く,注目を集められるってのは,それだけで素晴らしい才能だと思います.僕みたいに何書いても反応が無いオメガブロガーは,その才能が眩しくて妬ましいんですよね.なのでついつい怨み節に満ちた攻撃的な書き方になってしまったのです (苦笑) ほんとすいません
別にラムダ計算にせよ Y コンビネータにせよ何にせよ,そんな知識いくら知っててもクソの役にも立たないですし,飯は食えないので,僕のような NEET 同然の貧乏大学院生からすれば,知名度があって有名企業に勤めてる amachang さんなどは圧倒的に立場が違うので,蚊に刺された程度にも感じないと思ってテキトーな噛みつき記事を書いたのですが… もし傷付けてしまったのならば,ホントすいませんでした m(_ _)m
あとまぁ,higepon さんなども,僕などとは比較にならない圧倒的な勝ち組ですので.数学とか物理学とは異なり,歴史も体系化も浅い計算機科学 (レベルのアカデミックの) 知識なんてのは,ちょっと学校通うか,何冊か本読めば誰にでもわかる程度の知識なので,全然大したこと無いです.それよりも,継続して開発しているプロジェクトを持っていて,知名度があって,立派に社会人やってて,家庭を維持しているということの方が,中途半端な知識やプログラミング技術などよりもはるかに立派なことですよ (あまりにもあたりまえすぎていまさら言うようなことでもないですが)
というわけで,単なる日陰の NEET キモオタのやっかみ記事ということで.多少気に障ったとしても,スルーしていただければ幸いです (甘え)
まぁ,こんだけ (客観的に読みかえしてみると) 痛い記事書いて,higepon さんや amachang さんにリンク張っていただいても,ブクマもコメントもそんなに付かないし,炎上もしないところが,このブログのオメガさを象徴してますね (自虐) ← こういうのがよくない w
