2012-05-27

ML名古屋の感想

昨日、ML名古屋 - [PARTAKE]で発表してきた。

勉強会というの初めてだったので、感想を述べておくと、この手の勉強会というのは良し悪しだ。良しというのは、広範な分野の人間と出会えるという事だ。プログラミングというのは非常に分野専門的な仕事であるので、どんなにその分野の天才でも、一歩離れると素人になってしまう。自分の職場などでは、幅広い専門家に出会うのは難しい。悪しというのは、勉強会といっておきながら、とくになにか実用になるわけでもないという事だ。たしかに、短い時間で発表するためにまとめるのは、ある程度の勉強になるかもしれないが、自分の専門分野と聴衆の専門分野が一致しない。そのため、発表内容も、簡単なものにならざるを得ない。

私の発表は、MとLをタイトルに入れるという条件と、10分間という発表時間を考慮して、Missing Language Features in C++というタイトルで、C++11の規格に入っているものの、おそらく使われることのない機能について話すことにした。後に発表時間が20分に伸ばされたので、だいぶ発表が楽になった。とはいえ、20分もやはり短いし、ましてや聴衆のC++の知識には差があるはずで、C++を知らない者もいるだろうから、何かC++自体で面白いことは書けない。私は、スライド資料をW3CのSlidy2で書いたので、単にブログにコピペして公開することにした。本の虫: ML名古屋での発表の際に使ったスライド。ちなみに、当日に資料のコピーを受け取った人は、資料のVariadic TemplatesでInheriting Constructorsをエミュレートするコードは間違っていたので、注意して欲しい。また、当日の資料は、Aキーを押せばスライドではなく、通常のスクロールするドキュメントとして閲覧できる。

他人の発表で、特に興味深かったものを挙げる。

@sunflatさんのMSX Laungage。これは、スライドのプロジェクターへの出力に1チップMSXを使い、MSX Basicでスライドを記述するという斬新な方法で発表された。残念ながら、あの感動を再現することは難しいが、出力を画像にしたものが、MSX Languageで公開されている。ただし、MSX Basicで記述するのは非常に苦痛なので、実際のスライド作成はScalaで行い、DSLを実装してMSX Basicに落としこむという手法が取られた。詳しくは、MSXでプレゼン - サンフラットの開発日記を参照。

ちなみに、この1チップMSXは極少数しか生産されなかった、非常に貴重なハードウェアである。あるとき、freenodeの外人に、1チップMSXがどうしても欲しいのだが、どこで買えばいいのか教えてくれと訊ねられたことがあった。「君、諦めたまえ。残念ながら、それは同人によって限定生産された高価なおもちゃなのだよ」と答えておいた。外人はひどく失望していた。

@aster_ismさんのcMos Layout。これは、CPUの設計から製造までを非常に簡潔にまとめていて興味深かった。ただし、私は先天的に電子回路を理解する部分の脳の一部を持たずに生まれているためか、電子回路というのは、うまく頭に入ってこない。ともかく、CPU設計と製造の大まかな流れが開設されていた。今でも、CPUのC言語風の上級言語を、VHDLやVerilogのような言語に、まともに変換するツールは存在しないらしい。だから、変換は未だに手動で行われるそうだ。それでも最初に高級な言語で書くのは、検証を用意にするためなのだとか。残念ながら、当日に使ったスライド資料は公開されていないようだ。「45ナノでCPUを設計して製造してもらうにはおいくら万円かかりますか」という質問に対しては、「45ナノ高いんですよね。まあ、一億ほどあれば十分かと」という答えであった。

@deco_lequeさんのeMacs と vi で Lisp コード編集。これは、Lisperが普段どのようにコードを書いているのかというのを実演する内容であった。小指が腱鞘炎を起こすのではないかと心配するほど頻繁に、Emacsのショートカットキーを使っていた。曰く、「Lispにとって括弧は空気」と。

プレゼン自体は専門外で全く理解出来なかったのだが、LINQ(マイクロソフトの開発したクエリー用言語機能)の発表をするのに、MacBook(アップルの販売しているOSおよびノートPC)でスライドを出力するという不思議な人間がいたことを記しておこうと思う。どちらも不自由で囲い込みをするプラットフォームを提供している会社だが、どちらがより強く囲い込んでいるかということを如実に示す例だろう。

他の発表では、いかにWindowsやMacが不自由かつ不便なプログラミング環境であるかを嘆き、その状況を少しでも緩和しようと、自由なソフトウェアを移植するような発表があった。そこまで自由の価値を認識していながら、なぜ不自由なOSを使い続けるのか、私には理解できない。まるで、奴隷が自身を縛り付ける鎖を綺麗に塗装して喜んでいるようなものだ。いかに綺麗に塗ろうと、鎖は鎖だ。私は、不自由なソフトウェア環境の話には全く興味がない。

総合的な感想としては、MSX Languageの発表のために、この勉強会に参加する価値があった。

No comments: