小飼 弾 先生 がいらっしゃるということで行ってきた。
もう全然 Perl の話じゃなくてコンピューターサイエンス。いや、それも通り越してしまって、哲学的なものを感じました。
だって、print "Hello, World"
がプログラムかデータか?っていうところから、チューリングマシンが出てきて、ライフゲームが出てきて。ライフゲームに生命があるか?
こんなの話の展開誰が想像できますか?w
で、生命ってのは結局 生命 → 物理法則 + 初期状態
と言い表すことができるかもしれないって一つの結論が導きだされた。ライフゲームが1970年に生まれて、チューリングマシンが表現できるとわかったのが2010年で40年かかっている。
これは物理法則が単純すぎるから、初期状態を探すのに時間がかかった。
これもプログラミングに当てはめることが可能でプログラム → 言語 + ソースコード
であり、言語が複雑になるほどソースコードは簡略化可能で、言語が簡単なほどソースコードは複雑化するっていうので、BrainFuck 等の言語で FizzBuzz を表す例を見た。
ライブコーディングもあり、フィボナッチ数は普通に書くと35あたりから辛くなるというところで、高速化するにはどうするか?という問題。Perl だと memorize の2行を追加すれば良いということで、自前でキャッシュする場合との比較を行った。
ここら辺のプログラミングはHigher-Order Perlというとても良い本がPDFで全文公開されているので是非見て欲しいとのことだった。英語だけど。日本語だとメタプログラミングRubyとかいいかもしれないね。
今後求められるプログラマーとしては複雑なものから単純なものを生み出す。つまり、メタプログラミングのできるプログラマーが求められるとの話。
最後は杜の都ということを意識していただいたかもしれないお言葉で結論が導き出された。
逆に考えるんだ