vol.12報告(1/2)―小飼弾「PerlってLISPだったの!?」その衝撃も学生時代の出会いから

@dankogaiこんにちは、USP MAGAZINEまつうらです。今年も新年度を迎えましたが、皆様いかがお過ごしでしょうか。私はあまり実感がないんですよね。新人と呼ばれたのもだいぶ昔ですし、どこか別の部署に異動して新しい人や環境と出会う……などということもなく、思えば平凡な日々になってしまっております。

しかし、今回のTechLION vol.12は、そんなふうにしてある意味日々に対する感覚の鈍っていた私などにとっては、ちょっとハッとするトークが聴けた回でした。テーマは「出会い」なのですが、よくあるミーハーなものを想像していたとしたら大変に勿体ない!そこはやはりTechLION、深いです。深いうえに、語られる出会いエピソードもエンジニアならではのオチがついているという……。

さて、前置きはこれくらいにして、今回もレポートをご覧ください。まずは前半戦の様子から。尚、当日の録画(1部2部3部エンディング)も視聴可ですので、併せてご覧ください。(撮影協力:日本仮想化技術様)

■第一部 獅子王たちの夕べ(小飼弾氏)

小飼弾さん第一部はメインゲストを迎えて大いに語ってもらうセッションですが、本日のメインゲストはダンコーガイこと小飼弾さん。Perlの雄、また404 Blog Not Foundを運営するアルファブロガーとしても知られ、そして名前に負けない弾丸トークの主。

今回のトークに明確なタイトルは付けられませんでしたが、全体を通してのキーワードは「出会い」、そしてもう一つ、意外かもしれませんがコンピューター言語“LISP”だったように思います。

以下、弾さんの発言を要約してレポートします……

社会人は、出会いがお膳立てされない

「出会い」というテーマをいただいたんですけども、今日は新社会人の方ってどれくらいいらっしゃいますか?……あれ、意外と少ないですね。実は今日温めてきたのは、「社会人と学生の一番の違いはどこか」ということで、それは「社会人は、出会いをお膳立てしてもらえない」という話なんです。

学生の頃だと例えばクラス替えとかで新しい人と出会ったりします。そうやって出会いを演出されているんですが、そうであることに気付かない程、学生というのはたくさんの出会いをお膳立てされているんですね。でもそういった出会いというのは、何も「人と人との出会い」だけじゃないというのが今日の本題です。

あなたはどこで出会った?今使っているその言語に

Fizz Buzz with Perl6
Perl6で”Fizz Buzz”を解く(右はRuby2.0による結果がまだ残っている)

それじゃここで、有名なFizz Buzzをやってみましょう。入社試験とかではこの「Fizz Buzzが2分以内で書けないとプログラマーとして失格」みたいですけど、まぁそれは置いといて……。

まずはPostScriptで……。はい、PostScriptでプログラム書いてる人は?……あれ、いませんか。じゃあメジャーどころのRuby 2.0でやってみましょう。……えーとそれから、僕はPerlの人として紹介されるみたいなので、じゃあ今度はPerl6で。……あとはPython 3.2。で、それからCで……、Brainf*ckで……

……と、数ある言語のほんの一部を紹介しましたが、じゃああなたは、今使っている言語とどこで出会いましたか?会場の方に何人か聞いてみましょう。

観戦者Aさん「大学1,2年の頃、JavaCに、プログラミングとは何ぞやという状態で出会いました。それで今は、それらで仕事してます」

者Bさん「会社に入る前に自習しておこうと、本屋でJava入門という本を見つけたのが言語との出会いでした」

者Cさん(実はスタッフ)「今仕事で使うのはCPythonAWKシェルスクリプトですが、初めてはC++Pascalで、大学一年の時に触りました」

者Dさん「出会ったのはC言語。大学院生の頃に石田晴久先生の『UNIX入門』を読みながらVAX 11/730を、まだ助手だった村井純という人に弄らせてもらっていました。その前はFortranとか、メインフレームのVOS3系のコマンドプロシージャとか」

観覧者Eことmasuidriveさんうーん、なるほど。もう一例いってみましょうかね。ではこの中に「私の触った言語にはevalがある」という人はいませんか?

者E(実はvol.10ゲストmasuidrive)さん「僕はMSXZ80 アセンブリです。あれはバイトコードをプログラム内に置いておけばevalができます。メモリが64KBと少ないから、そうやって自己書き換えしないと規模の大きいアプリが書けなかったんで……」

おいおい!そっちの方に来たかよぉぉぉー! まぁそれはそうだなぁ……。BASICもPEEKとPOKE命令だけ使って実質アセンブリでできるし……って、こんなに変態ばかりが観客だなんて聞いてないぞ(笑)

僕の言語との出会い

ブライアン・ハーヴェイ氏のWebページ
学生時代に授業を履修していたというブライアン・ハーヴェイ氏のWebページ

なんでこんな質問したかっていうと、「果たして僕は、学校に通ってなかったらこういうものと出会えただろうか?」って思うんです。学生の頃、ブライアン・ハーヴェイという先生の下でSchemeというLISPの方言を習ったんですけど、それに出会わなかったら僕は今「PHP最高」とか言ってたんじゃないかなぁ。

僕は元々コンピューターサイエンス専攻じゃなかったんですよ。最初の専攻は生化学だったんですけど、あまりにもつまらなくて文句言ったんです。そしたら「じゃあお前、こっち来い」って言われて習ったのがさっきのあれで……。そこではCアセンブリをやらされて、最後はMIPSのエミュレーターを書かされたんです。このクラスも今はPythonになってしまったのが残念なんですけど……

何が残念って、こういう言語に外で出会う機会ってあんまりないと思うんですよね。こういっちゃ何ですけど、PythonPerlあたりって、特にコンピューターサイエンスを習おうと思わなくても出会えると思うんですよね。つまり出会いを演出されなくてもわりと自然に使う言語なんですよ。

結局、僕に言語との出会いを演出したのは大学だった

僕の仕事は、言語の美しさがどうのこうのとか重要ではなくて、純粋に仕事をやっつけられればよかったんです。それで気が付いた頃にはPerlで仕事してたんですが、最初にPerl5を見た時はビックリしましたよ。「なんだこの矢印は。なんだよ”use strict”って。フザケんな!」と。

ところが、チャーチ数をPerlで書けるということを知って、Perlが単なるお仕事やっつけ言語じゃないかも、って気が付かされたんです。「待てよ、PerlってLISPだったの!?」くらいの衝撃でした。ちなみに、Jcode.pmは仕事やっつけ言語として使っている時に、作ったものだったんですけどね。それでその頃堀江さんに襟首掴まれてオン・ザ・エッヂで仕事したりで……。

だから今振り返っても、実は出会いを演出してくれたのって大学だったんです。その頃にあのカッコだらけのヘンな言語(=LISP)に出会わなければ、こういった話というのも無かったんじゃないかなって思うんです。ホント、大人になってから純粋に「出会う」っていうのは難しいんですよね。皆さんも薄々感じているとは思うんですが、それはむしろキツいんですね。社会人の今から、まるで別のパラダイムの言語に出会うというのは本当に難しいことで。もちろん大人になってからも出会いというのはあるんですけど、もう学校とか親戚とかがお膳立てしてくれはしないので自分で積極的に出会いにいかないといけないんです。

「機会」というものを逃さないで!

Haskell Tシャツ
この日、弾さんが着ていたTシャツはHaskellだった

僕が今着てるTシャツはHaskellなんですけど、僕はオードリー・タングという友人に紹介されて知り、感銘を受けました。LISPも一応関数型言語なんですけど、スペシャルフォームっていうある意味ズルい仕組みでifやforを実現してたんです。遅延評価の概念を実装すればそんなもの要らないことはわかってたのにLISPはそれを長年サボってて……。でもHaskellはそれを本気で実装し、きっちりした関数型言語になってたんです。これはLISPをマジメに勉強していた人ほど衝撃的だと思います。こういった言語も今なら気の利いた学校へ行けば教えてくれるでしょうけど、社会人になると例え見知っても、感銘を受け、つまり真の意味で出会える機会なんてホントにないんですよ。

というわけで、今日は新社会人の方々に、「機会というものを逃さないでくださいよ」って言って、オチをつけるつもりだったんですが……。今日の皆さんは既に相当ご存知ですね(笑)

◇ ◇ ◇

小飼弾さん、ありがとうございました。新社会人じゃありませんが、私にもそのメッセージ、響きました。毎年この時期、街中で卒業生や新入生を見かける度、「あの頃はいろんなイベントがあったけど、社会人になってしまえば以後そういうのが途端に減ってしまって寂しいものだ」なんて思ってました。が、「寂しい」などと言ってないで、私も積極的に機会を見つけに行かなきゃ、と、トークを聴いて思いました。

さて、この後は2組のITカップルを迎えての後半戦へと移るのですが、そのレポートはまた次回に……。どうぞご期待ください。

vol.11報告―容赦無きドラに大喜利に、どうなる三年目のTechLION!

TechLIONvol.11「1月生まれのエンジニアたち」こんばんは、USP MAGAZINEまつうらです。年も明けてだいぶ経ちましたが、今年も宜しくお願い致します。

TechLIONとしての新春初試合は去る1月16日、東京・六本木にてvol.11「1月生まれのエンジニアたち」と題して開催してまいりました。今日はその模様をレポート致します。

■三年目の新たな試み

立ち上げた2011年、そして2012年を経て三年目に突入。これまでも少しずつ新たな試みをしてきましたが、今年一発目の新たな試みは「メインゲストを置かないで、立場関係無く、終始みんなで語り合ってみよう」というものでした。

皆でLTやって容赦なくドラを打ち、皆で大喜利やってツッコミ合戦したり、そして皆で腹を割った話をしたり……。ゲスト集めにも趣向を凝らしました。1月開催だし、馮Pも1月生まれだし、1月生まれの人を集めてみようかと。ただ、すごく旬な人がいても「この人一月生まれじゃないからダメ」みたいなことがあって、それなりに苦労もしたようですが(笑)

参加した皆様、今回の試みはいかがだったでしょうか。では、vol.11のレポートをお送りします。録画もあります(第一部第二部第三部)ので、お仕事の合間に是非こちらもご覧ください。(撮影協力のびぎねっと様にはこの場を借りて感謝)

■第一部 私と○○と2012年(自己紹介)

今回のTechLIONは三部構成で開催しました。第一部はライトニングトークExのコーナーで、実はこれ初期のTechLIONでは毎回やっていたコーナーなのです。ゲストそれぞれに5分間一本勝負のLTをしてもらい、その後司会とトークをするというもの。ただし、今回は「私と○○と2012年」というテーマでという課題があり、本日対戦するゲストの自己紹介も兼ねる仕掛けとなっております。

「ドラ娘」太田智美さん(写真左)
「ドラ娘」太田智美さん(左)
本日の「ドラ」(デビュー戦)
本日の「ドラ」

LTといえば、必要不可欠な小道具と役としてドラとドラ娘というのがありますが、今回ドラはこれまたびぎねっとさんご提供(ちなみにこのドラはデビュー戦だそうです)。そしてドラ娘は、ITmedia記者の太田智美さんにしていただきました。しかもその大役に見合う衣装で臨んでいただきましてありがとうございます。

#1 宮原徹さん―「全俺に聞いた2012年10大ニュース」

宮原徹さんお一人目は宮原徹びぎねっとさん。今回は撮影やドラ等でも大変お世話になりましたが、実は記念すべきTechLION vol.1にも出演していただきお世話になっていました。実はTechLION史上二度目のご出演なのです。

今日のLTのテーマは「全俺に聞いた2012年10大ニュース」ということで、去年の出来事の振り返り。強引に割愛してご紹介すると……、(1)1/9誕生日…年間ニュースで大抵最初に来る、(2)主食抜きダイエット実施、8kg以上痩せた、(3)赤ワインにハマり、ワインセラー設置、(4)オフィス移転、(5)初めての配当出し…やってみたかった、といった感じでした。

あと、毎朝30分「環境整備タイム」と称して、自分達で事務所の掃除や整理整頓、環境改善の雑談、等を行う時間を設けたということで、これで大掃除が不要になり業務効率改善に役立ったそうです。

#2 廣川類さん―「私とPHPと2012年~PHP三大ニュース~」

廣川類さん二人目は廣川類日本PHPユーザ会さん。日本PHPユーザ会でもう15年くらい活動なさっているということで、法林GM曰く「LLイベントでもお世話になっている」そうです。(弊誌でも取材させていただきました)

LTは「私とPHPと2012年 ~2012年PHP三大ニュース~」ですが、まずは軽く自己紹介。PHPは職業でやっているのではなくホビーユーザーということなのですが、PHP国際化(mbstring)や、マニュアル類の翻訳、マンモス本(PHPのバイブル)の執筆など、実にパワフルに活動されています。

と、自己紹介していたらまさかの時間切れ。PHPカンファレンス2012WordCampと共同開催したというところで無情にもドラが響きました……。

#3 稲葉香理さん―「私とPostgreSQLと2012年」

稲葉香理さん三人目は本日ゲストの紅一点、稲葉香理SRA OSSさん。主にPostgreSQL関連のコミュニティ活動をされています。

題目は「私とPostgreSQLと2012年」。仕事を始めてから13年程だそうですが、最初は純粋なエンジニアからスタートし、今はマーケティングのお仕事をされているそうです。

昨年は突然山登りに目覚めたそうで、夏くらいから計数十回も登山をしたといいます。仕事関係では監視ソフトZabbixのカンファレンス等で海外に計一か月以上も赴いたり、二年間通っていたビジネススクールを無事卒業したり、ととてもアクティブに活動なさっています。

#4 川崎有亮さん―「私とべいでえたひんと2012」

川崎有亮さん4人目は川崎有亮クルキューズさん。「KagoDBって知ってるかい(後述)」などなかなかいい味出してました。

さて、LTのお題は当初与えられた課題の○○に「べいでえたひん」をハメ込んで「私とべいでえたひんと2012」(渡米で得たヒント)、というわけでここからしてユニークですね。

昨年までリクルートの事業開発部門で仕事されていた流れで、米国でオフィス立ち上げをしてきたそうです。当初は色々とわからない事だらけだったものの、頑張ればどうにかなるのかな?という印象を掴んできたといいます。

そして、シリコンバレーではDemo Dayという対投資家発表会やハッカソンが毎週のようにしかも大規模にも行われており、日本には無いスケールの大きさとエコシステムを肌で感じてきたそうです。「エンジニアなら一度は行ってみるべきだ」と。

#5 米林正明さん―「僕とくもと2012年」

米林正明さん最後は米林正明Abby(エビイ)さん。馮Pによれば、前回の片山さんに相当するイジられ役のようですが、確かにそんな一面が……。

LTは「僕とくもと2012年」ということで、クラウドを匂わせる題目でした。去年は、その片山さんに雲隠れされたとか、初夢は筋斗雲に乗る夢だったとか、いう事でしたが、マジメな話をすると去年は殆どの案件をGoogle AppsAWSといったクラウドでこなしたそうです。去年ともなるとお客さんもクラウドについてはよく知っていて、「じゃあそれでお願いします」とすんなり提案が通るようになっていたのだとか。

最後に、今回出演の機会を与えてくれてTechLION Love!、馮さんLove!、法林さんLove! そして「Yes!法林Love!」とキメたかったところですが、スライドが(リトライしても)ちゃんと出ずに、きっちりスベってくださいました。ご馳走様です!!

■第二部 ジャングルバス.com 新春大喜利

新春大喜利風景
こんな感じで大喜利しました

さて二部は、これも初の試みで大喜利です。ゲストを一同に集めてホワイトボードとサインペンを渡し、司会が出すお題に答えてもらうというセッションです。名回答、珍回答が出てくるかなーと実は個人的に今回一番楽しみにしておりました。

それで、期待通りに面白かったので、受け答えを全部紹介したいところですが、スペースの都合もありますので涙を飲んで抜粋しました。こんな感じのやり取りがありました……

第一問「2013年、この技術/サービスが来る!(理由とともに)」

KagoDB知ってる人は?
KagoDB。あれ知りませんか?

第一問のこのお題は今年はきっと「これが来るに違いない!」という予想を発表してくださいというものだったんですが、のっけからやられました。

宮原さんは「キャッシュ技術」、廣川さんは「オープンソースハードウェア(Raspberry Piなど)」などと各自マジメに答える中、川崎さんの答え→『KagoDB』。「はい、これ知ってる人?」……、誰も居ません。しょうがないので川崎さん自ら説明したところによると、「これは今僕書いててリリースしてないんですけども」って、そんなのわかるかー!! 真面目な話をすると、JavaScriptで作っている軽量NoSQL実装のようです。MongoDBのMongoはバカデカいという意味から来てますが、カゴくらいのデータを扱えるようにという……。

それだけじゃあんまりなので、他の回答も紹介すると、あと稲葉さんが「クラウド」と答えていました。周囲を見渡してみても使い始めたというお客さんが増えているし、自由にサービスを設計できるのが特長のオープンソースソフトウェアには一サーバー年間保守でいくらというこれまでのビジネスモデルが合わなくなってきていると。実際、PostgreSQL等も台数を増やして分散化させる技術が登場してきているといいます。

第二問「自分をプログラミング言語に例えて言うなら何?」

これもいろいろ面白かったんですが、廣川さんの回答を紹介します。

PHPユーザ会の方なので当然PHPと答えるかと思いきや、いや確かにそうなのですが、答えは「PHP1.0」。

私はシンプルで可愛くて小さいのが好き。最新のPHP5.4だと何MBもあって巨大になっちゃったんですけど1.0って数十KB程度なので半日あればソースコード読めます。こういうところでちょっと楽しみながら勉強できるが昔のPHPのいいところなんです。

なるほど、そのお気持ちわかります。それにしてもPHPも1.0は随分と小っちゃかったんですね。ちなみに、その1.0はPHP museumに行くと今でも入手できるそうです。

第三問「関わったプロジェクトがまさかの大炎上!さあ、どうする?」

これまたクスっとくる回答続出だったのですが、個人的には宮原さんのが特に面白かったです。答えは「(とりあえず)走る」

結局何とかしなきゃならないという時に、最後に頼れるのは肉体である。だから自席からとりあえずマシンルームに走って自分で何とかするのだそうです。そして実はこれが、オープンソースに「走る」きっかけだったと。

一時期は「これぁもうWi○NTダメだ、と。Linux版のOracle出してくれ」と、悲鳴を上げていたそうですが、そんな話を人にすると「実は俺も走った」なんて答えが返ってきたのだとか。「(あの頃は元気で)まぁ若かったですね(笑)」と、宮原さん。

■第三部 大放談!あのひとに聞いてみたい~質問

締めくくりの第三部は、第二部より若干マジメ路線に戻してのトークセッション。事前にゲストから相手に質問したい内容を募って互いに尋ねあうという内容です。ここも涙を飲んで巻きで紹介します。(是非とも録画を見よう!→第三部

2012年、OSS界で活躍した人に「いいね!」を送るとしたら誰?

これは廣川さんから出された質問なのですが、他の人が考えている間にナゼか廣川さん自身にも振られました。

廣川さん:(まさか自分に振られるとは!)続けることが素晴らしいと思うので、私はOSCを続けていらっしゃる宮原さんを尊敬します。短期間ならまだしも、5年10年続けられるのは冷静に考えるとスゴイな、と。

すると宮原さんがそれに対して、

宮原さん: 今は結構皆に任せきりなんです。そうでないと回らないくらいの規模に成長してきていて、僕個人の手を離れて事務局という組織戦へ移ってきてます。そして君達はそれぞれこういう立場なんだから、君はこう、君はこう立回らなきゃならないんだよ、みたいなこと言ってます。

なるほど。OSCは個人戦から組織戦へと上手に移行していったところが大きいんですね。そして他には、川崎さんからこんな答えが……(ちなみに米林さんも同様でした)

川崎さん:Qiita(キータ)。2011年に始まったソフトウェアの開発や運用に関するTipsの共有サービスですね。今までは解説とかしたければブログを開かなきゃいけなかったけど、最近はこういったサービスのおかげで開発者にとっての敷居が下がっているのかなと感じます。だからQiitaを公開した人達だけじゃなく、参加している人達みんなにですね。

私も登録してますし、困りごとを検索するとよくここがヒットしてお世話になってます。英語圏でのStack Overflowも同様に、今では多くのエンジニア達に重宝される存在になってますよね。

皆さんのお奨めの勉強方法は、どのようなものがありますか?

これは米林さんからの質問。勉強法で米林さん自身が間違った勉強法で後悔していての質問なのですが最後に発表するそうです。さて、それに対して宮原さんはこう回答しました。

宮原さん:セミナーの講師とかを企画して自分を追い込みますね。教えるという立場になると習得率が大体8割くらいになるそうです。……って、こんなこと言ってるから「2週間後にセミナーやってください」とか無茶頼まれるんですけどね。(笑) でも、そうなったらもう必死で勉強するわけですよ、評判ガタ落ちにならないように。自分ひとりで完結させるとどうしても甘えがでちゃうから、アウトプットを出して他人に評価されるように仕組むんです。

自分で完結させると甘えが出ちゃうというのは、耳が痛いですね。ちゃんと結果を出さないと覚えたつもりで終わりがちですよね。同様の事は稲葉さんも回答されていて、例えばリサーチした後は、社内で15分くらいのショートプレゼンを行うようにしているといいます。

2013年、エンジニアに向けたメッセージ

米林さんの間違った勉強法発表が気になるところですが、それはここでのメッセージにもなっていたので、まとめて皆さんからのメッセージを一気に発表します。

稲葉さん:「石の上にも……」ですね。「これやってて意味あるのか?」って思っちゃうことありますけど、ある程度続けていると見えてくるものってあるなって思います。最初の頃って周りが見えてないんですよね。「3年くらいやってみてようやく見えてくる」と、自分がエンジニアやっていた頃も、マーケティングを始めてみても感じます。

川崎さん:(図で説明)ローカル、クラウド、グローバル。どうやって新たなテーマを見つけていくかと言う時に、これらどれかの分野に注目してみたり、重なり合う分野に注目してみたり、あるいは全く違う分野から見つけてみたり。いろいろあると思います。去年私はグローバルの分野を突き詰めていた、と。

写経禁止
「写経禁止!」

米林さん:「写経禁止」。以前僕はノートに書くことが正しい勉強法だと信じていたのでC言語の本に書いてあるプログラムをひたすらノートに写してました。先輩からは「おーすごいじゃん!超やってるね」と言われて調子に乗っちゃったものの、いざパソコンに向かったら結局int mainしか書けなかったんです。だからそういう間違った勉強法をせず、エンジニアの皆さんにはよく考えて無駄なことをしてほしくないですね。

宮原さん:自戒の念も込めて「あえて自分でやれ」と。ネットには結果としての知識の集合「集合知」があってすごいなーとは思うんですけど、それが当たり前になってくるとやがてうまくいかなくなると思うんです。サッカーだってちゃんと個々が戦術の意味を理解してこそチームとしても強いわけで。「ちょっとネットで調べてわかる程度だったら、それ誰でもできるよ」と。それが再評価される、揺り戻しが来てると思います。

Have fun!
「Have fun!」やっぱり楽しまなくっちゃ!

廣川さん:「Have fun!」。20年弱くらいエンジニアやって、一番重要なスキルがこれだと思うんですよね。失敗するとそこでウジウジしちゃいがちですけど、そんな時は「何てこんなに奥深いんだ。神は俺にまだハードルを残してくれてたんだな」みたいにしてその奥深さを楽しめることがエンジニアの才能に繋がるんだと思います。

皆さんそれぞれに、深くて素晴らしいですね。この発表は最後の人が一番責任重大ですからねと脅かされていた廣川さんのメッセージでは感動の拍手が巻き起こっていました。面白オカシいシーン満載だけど、実は深い話が聞けるTechLIONも、こんな感じで今年も順調なスタートがきれました。皆様ありがとうございました。スタッフ一同、今年も引き続きよろしくお願い致します。(下の写真は、毎回恒例の出場者記念撮影。写真にマウスを重ねると……)

■気になる次回(vol.12)は?

小飼弾登場!さて、次のTechLION(vol.12)ですが、今回のエンディング時にアノ人の登場が滑り込みで決まりました。

法林GM自ら、今回たまたま用意していたホワイトボードにて発表!その人とは…小飼弾です。Perlの雄でブロガーで、SoftwareDesign誌でもブイブイ言わせているあの人ですね。

他にも、ショウジヨシオリ&ショウジユウコカップル(「ドラ娘は俺の嫁」カップル)だったり、松崎吉伸&奥谷泉カップル(世界のインターネットで活躍するITカップル)だったり、とアルファブロガーに新婚さんいらっしゃい的なカップルズと、これまたどーなることやら想像もつきません。

お申し込みはこちらから、是非!!!!!