ロマンの木曜日 2015年2月5日
 

決めようぜ最高のプログラム言語を綱引きで

「PHPがdisられる時代は終わった〜っ! いくぜおまえら〜!」「PHP!」「PHP!」(PHPはこの後一回戦で敗退しました)
「PHPがdisられる時代は終わった〜っ! いくぜおまえら〜!」「PHP!」「PHP!」(PHPはこの後一回戦で敗退しました)
さる2015年1月29日。横浜大さん橋ホールで行われたエンジニア勉強会イベント「CROSS 2015」にて「第一回 プログラム言語対抗綱引き」が行われた。

コンピュータの世界を支えるプログラム言語がその至高性を競い腕力でぶつかる、言語間戦争に決着をつける大会である。

40人の勇者(プログラマー)により死闘を繰り広げたのはC、Perl、PHP、Python、Ruby、JavaScript、Go、Java。

結果、Goの圧倒的勝利で幕を閉じたのだった。あらためて本記事でその全貌をレポートしていこう。

知ってた? 綱引きの掛け声の「オーエス」ってあれ、「OS(オペレーションシステム)」のことなんだぜ?

英語版もご用意しております! English article↓↓↓
Hey! Let's decide the best programming language with a tug of war
古賀及子 古賀及子(こがちかこ)
1979年東京生まれ、神奈川、埼玉育ち、東京在住。Web制作をしたり小さなバーで主に生ビールを出したりしていたが、流れ流れてニフティ株式会社へ入社。好きな食べ物は「ミラノサンドC」とすることをこのほど決心。
> 個人サイト まばたきをする体 Twitter @eatmorecakes

このようなポスターで参加者を募った
このようなポスターで参加者を募った

「お前ら、最高だ!」という大会でした

物々しい文章ではじめたが、そんなザ・冗談の大会が本当に行われてしまった。

C、Perl、PHP、Python、Ruby、JavaScript、Go、Java、合計8言語はそれぞれ5名でチームを組織すべくプログラマーを「CROSS 2015」会場で募集。

自分の愛する言語への思いを腕にこめ、エントリーした40人のプログラマーが全員本気で綱を引いた。

予想を越える参加希望者に参加できなかった方々もたくさんいたのだが、そういった方もみな綱をかこみ熱い声援を送ってくれた。
ユニフォームを引き渡すかたちでエントリーを受付。17時半の試合開始を前に13時には定員がいっぱいになる注目度の高さであった
ユニフォームを引き渡すかたちでエントリーを受付。17時半の試合開始を前に13時には定員がいっぱいになる注目度の高さであった
受付には「なぜShellがないのか」、「COBOLに参加したいのだが」と今回出場言語に選出されなかった言語を想うプログラマーのみなさんも。

「C#で出たいのに」「C#の方はCにエントリーしてくださいよ」「え〜っ、無理いうなよ〜」「やっぱりそうですよね〜」など、本大会の解説者で技術顧問的な役割を担ってくれた法林浩之さん(日本UNIXユーザ会幹事)と激励のようなたわむれをしてはみなさん笑顔であった

そう、この大会は世界一冗談が通じる職種であろうエンジニアの方々の胸をかりて行った大会といっていい。

(なお、綱引きというのは比喩表現で、実際はトークセッションをすると思っていた方も多くいたようで、「え、ほんとに綱引きなの?」と驚いていた。なんとなく、しめしめ、と思った)
実況の古賀(左)と、技術顧問であり解説の法林浩之さん(右)
実況の古賀(左)と、技術顧問であり解説の法林浩之さん(右)

プロの技術顧問がちゃんと頭をひねっております

冗談とはいえ、きちっとやるべきところはやったと自負したい大会でもある。

出場8言語は「CROSS 2015」がWEB系のエンジニアが集まるイベントであることなどをふまえあまたある言語のなかから厳しく選出。

対戦カードも抽選などではなく言語間のライバル関係などを重視し決定している。

すべて法林さんが頭をひねってくれた点なので「きちっとやるべきところはやった」のは正確にいうと私ではないのだが胸は張りたい。
エディタでトーナメントを書く法林さんのエンジニア魂
エディタでトーナメントを書く法林さんのエンジニア魂

綱引き進行のプロも来た

さらに、選手であるプログラマーが普段しなれない運動で怪我をしないためのバックアップも万全であった。

運動会の企画運営サービス「運動会屋」で日々企業の運動会を仕切っている綱引き進行のプロにきていただいたのだ。運動会屋代表の米司さんと中島さんである。主審・副審を担当してくれたばかりでなく、5対5の対戦にぴったりくる長さの綱までかついできてくれた。
合図が出るまで綱に触れない、試合は20秒1本勝負! 厳正に審判してくださった(左から、副審の中島さん、主審の米司さん)
合図が出るまで綱に触れない、試合は20秒1本勝負! 厳正に審判してくださった(左から、副審の中島さん、主審の米司さん)
万全の体勢に加え、エントリー選手たちがユニフォームである言語名入りTシャツを早々に着て会場を練り歩いてくれたこともあり、試合開始前から会場は試合開始に向けてじわじわとテンションを上げていたのだった。
そして17時すぎ。いよいよ本当に!綱がよこたえられた。会場もヒートアップ!
そして17時すぎ。いよいよ本当に!綱がよこたえられた。会場もヒートアップ!
「うなれチューリング完全!第一回プログラム言語対抗綱引き、いよいよ試合開始です!」「うおおー!」「やったろうぜー!!」
「うなれチューリング完全!第一回プログラム言語対抗綱引き、いよいよ試合開始です!」「うおおー!」「やったろうぜー!!」
では、ここから一気に死闘を振り返っていきたい。

各言語をかっこよく呼び込んでいくのでぜひモニタの向こうで読みながら歓声をお願いしますぞ。

一回戦、第一試合

WEBに特化、データベースやcookieのアクセスが容易に可能、HHVMの登場によりいよいよ新時代の幕が開ける…disられる時代は終わった! ハイパーテキスト プリプロセッサー、

PHP!
なめてっとおまえんとこのAPI実装すんぞ
なめてっとおまえんとこのAPI実装すんぞ
対するは

磐石の需要、堅牢な実行環境。多重繰り返しからの脱出で勝負に挑む…帝王

Java!
カプセル化したろうかこら
カプセル化したろうかこら
期せずしてどちらも男性4名、女性1名のプログラマーで構成されたPHPとJava。バランスの良い一戦が期待できる。

「どちらかというと『お仕事言語』というか、好きじゃないんだけどこれで書いてるって人が多い言語同士の対決。

選手層が厚い(ユーザが多い)言語同士とも言えますが、言語への愛情は薄めなので、どれぐらいやる気を出せるかが勝敗の分かれ目か」(以下、緑の文字は法林さん解説より)
いざ、勝負!
いざ、勝負!
PHP! PHP!
PHP! PHP!
Java! Java!
Java! Java!
結果、勝者はJava!

破れたPHPの主将、三土さん(当サイトのライターでもある)いわく「掛け声が“PHP”なのがよくなかった。“CGI”ならもっといけたかもしれない」。

一方Javaの主将タマルさんは「PHPには絶対負けられない、勝ってよかった」。

言語への愛情度が不安視された両言語であったが、勝たねば今日もどこかでコードを書いているであろう同胞プログラマーに面目が立たない、といった強い責任感が伝わった一戦であった。

一回戦、第二試合

出場言語の中ではもっとも長い歴史を誇る。高い自由度実行速度を追求、OSを支える言語。膨大なプログラマーが応援してるぞ、ゴッド・ファーザー、

C!
そっちの言語はCPUに同梱されてんのか、ああん?
そっちの言語はCPUに同梱されてんのか、ああん?
対するは

強力な文字列処理連想配列をサポート、多次元データ構造が利用可能。やりかたは一つじゃない、やりたいようにやらせてもらうぜ!

Perl!
モジュール拡張して奥歯がたがたいわしたろうか
モジュール拡張して奥歯がたがたいわしたろうか
「出場言語の中でもっとも歴史の長い2言語の、いわばベテラン対決です。ユーザの年齢層が高めなので、スタミナが持つのか?も見どころ」

両チームともにプログラマー歴10年を超えるベテランが多数エントリーした一戦、どうなる!
「掛け声は『Perl』だと引きにくいので『ピーエル』でいきましょう!」「おー!」
「掛け声は『Perl』だと引きにくいので『ピーエル』でいきましょう!」「おー!」
「……(小細工は…しない!)」
「……(小細工は…しない!)」
スタート! 「ぴー、える!」「ぴー! う、うわー」
スタート! 「ぴー、える!」「ぴー! う、うわー」
勝者、C!

PHPが3拍子の掛け声(「PHP!、PHP!」)でうまくいかなかったのを見、「ピーエル!」と2拍子の掛け声を用意したPerlだったが、なんと無言で勢いよく攻めるCに完敗…!

静(的言語)が動(的言語)に打ち勝った瞬間であった。

一回戦、第三試合


Google社によって開発され、2009年に登場した新言語。チャンネルによるスレッド間通信機能を持つ新世代の並列処理言語…分身殺法

Go!
型アサーションでのしたるわ
型アサーションでのしたるわ
対するは

ブラウザの唯一神、標準で十二分なモジュールが添付されたバッテリ付属言語。実はJavaとはあんま関係ない八面六臂

JavaScript!
愛され言語に啖呵は必要無ぇ
愛され言語に啖呵は必要無ぇ
「若年層プログラマーに人気の言語対決。Web系ではもっともユーザが多いJavaScriptに対し、最新鋭でユーザ拡大中のGoがどう挑むか」

解説どおり、会場でも人気度では抜群だった2言語(JavaScriptは全言語中最短の受付開始40分で定員達成)。

Goは最新鋭だけにプログラマーが集まらないのではと心配されたが「ちょうどこれから勉強するつもりだった」的な要員が次々とエントリーした。

人気の高さは綱引きの強さにも反映されるのか。

勝負!
「Go Go Go Go Go!!!!!!!!!!!」
「Go Go Go Go Go Go!!!!!!!!!!!!!」
「JS! JS!」
「JS! JS!」
勝者は、Go。圧倒的な強さであった。

JavaScriptは「JS」が奇跡的に「オーエス(OSじゃなくて、綱引きするときの掛け声)」に似ていたこともあり綱の引きやすさは8言語でも一番かと思われたのだが、まさかの瞬殺。
「OK、まず一勝」 圧倒的強さにざわざわする会場!
「OK、まず一勝」 圧倒的強さにざわざわする会場!
「一瞬でしたわ〜、もう笑うしかない」
「一瞬でしたわ〜、もう笑うしかない」
これまで「コンパイル系が強いか!」「静的言語と動的言語の対戦です!」などとあおってきたが、このGoの強さには、綱引きって腕力なんだよな…と我に返らざるを得なかった。

プログラム言語対抗っつっても…やってることは…綱引きなんだよな……。

はっ! いかんいかん、覚めた目をもう一度つむって、一回戦、最後の試合です。

一回戦、第四試合


統計解析のデータ入出力可視化、モンティ・パイソンの「パイソン」です。言語会の委員長とも言われるが、ハッカー御用達って本当ですか。良い子だけでは生きていけない

Python!
がたがた言ってっとコード行数減らすぞ
がたがた言ってっとコード行数減らすぞ
対するは

日本発、ストレスなくプログラミングを楽しむための言語仕様策定、変化を受け入れやってきた。強力な正規表現処理マルチスレッド、クラス定義に例外処理。クールジャパン

Ruby!
エンジョーイ、プログラミーング! イェー!
エンジョーイ、プログラミーング! イェー!
「オブジェクト指向スクリプト言語として、海外で作られ日本に入ってきたPythonと、日本で作られ世界に出て行ったRuby。立ち位置の近い両者のライバル対決です」

一回戦の中でもザ、ライバル対決といった一戦。共通点の多い両言語であるが、「主将の人柄がおだやか」という点も両者共通であった。勝敗は。
Python! Python!
Python! Python!
エンジョーイ! Ruby!
エンジョーイ! Ruby!
モンティ、Python、モンティ、Python!
モンティ、Python、モンティ、Python!
うわーっ!
うわーっ!


 ▽デイリーポータルZトップへ つぎへ>

 

 
Ad by DailyPortalZ
 

▲デイリーポータルZトップへ バックナンバーいちらんへ