
ああ、YAPC::Asia::2008のトリ、Perl Is unDeadを見せてあげたかったなあ。
プログラミングのジャンルと難易度(および Web プログラミング批判) - 黎明日記だってそうだろ? 「 Web アプリケーション」なんてカッコイイ名前の割に、受け取ったデータを簡単に加工してデータベースに突っ込んで取り出して……それで終わりじゃないか。
ビデオやスライドが上がるまでしばらくかかると思うので、とりあえずは以下をご覧あれ。
- はてなブックマーク - タグ yapcasia2008
- Simon Cozens - YAPC Asia and talking in Japan
- YAPC::Asia 2008 2日め - てきとうなメモ
で、Schwernが何を言っていたのかというと、フォーク・プログラミングの重要性。フォークっていってもfork()
じゃないよ。フォーク・ソングのフォーク、Folk Programming ね。
「Webプログラマー」のほとんどは、実はフォークプログラマー。学校で正規の教育を受けたわけではなく、Webで目にするものを見よう見まねでいじっているうちに、なんとなく動くものができるようになったという人々。Web 1.0の世界で、それは perl を使うということを意味していたけど、Web 2.0の世界では、rubyやPHPやJavaScriptがこれに加わった。Perlがプロ^2グラマーを惹き付けるようになった一方で、perlのフォークプログラマーは数はとにかく(こちらは今も増えている)、比率では減っているから、みんな、もっとフォークソングならぬアプリを出そうぜ、というのがだいたいのあらすじ。
私のスピーチ、Perl as a Second Languageもかなりこのことを意識している。私の方はどちらかというと「複殺(manuplexity)なことをしたかったらperlいいよ」という話なのに対し、Schwernのそれは「殺速(whipuptitude)も忘れずにね」というもので、実にいい感じに締められたのではないか。
PerlやRubyとLispの一番の違いは、言語やそれが用いられるジャンルよりも、それぞれのコミュニティ「プログラミング」が好きな人々が「アプリ開発」が好きな人々のことをきちんと考えていることにあるのではないか。
プログラミングとアプリ開発。この両者は似ているようで実は違う。たとえばエニグモはプログラミングの会社ではないが、アプリ開発の会社ではある。
例の件(追記じゃないよ) - 黎明日記今日の会話 :この三行が全てを物語っているように感じる。
- J 「脳内メーカーとか成分解析とか作ってみたい。面白そう」
- 私「(『近似アルゴリズム』を読みながら)ただのハッシュじゃねぇか」
- J 「ほら、またすぐそういうこと云う……」
プログラミングしたいのが「私」(id:theoria)、アプリ開発したいのがJだ。
プログラミングしたい人々は、物が出来るまでの過程を楽しみたい人である。だから、「DBにクエリーをかけてHTMLにぶちまけるだけの簡単なお仕事」が退屈で仕方がない。しかし、アプリ開発したい人々にとって、物ができるのは出発点にすぎない。彼らが楽しむ過程というのは、それを公開し、それを人々が使ってみるところにある。それがただのハッシュなのか人工知能なのかというのは、はっきり言っておもちゃの材質程度の意味しかない。
私自身は、ありがたいことにそのどちらも楽しめる質だ。作って楽しく、使って楽しい。私にとってプログラミングというのは一粒で二度おいしいのだ。だから「文字コードを別の文字コードに変換するだけの簡単なプログラミング」にもつきあえたのだと思う(実はきちんとやろうとすると簡単とはとても言えないのだが)。もっともあれは「動けば楽しい」というより「動かなかったらムカツク」という意味では一粒で二度苦いものでもあるのだけど。
プログラミングをしたいのか、自分が作ったプログラムを使わせたいのか。それが問題だ。
Dan the Folk Programmer
いえ、セキュリティとかプロトコル解析とかしだしたら、全ての情報処理技術がいる。そして次々に湧き出す問題を追っていけば、極めるのならば結局機械語レベルにまで到達する。
何のジャンルを選んでも結局一緒だと思うけどな。