@IT編集部の西村賢がRuby/Rails関連を中心に書いています。

Ninja(忍者)とHakcerの違い

»

 特にJavaScriptやRubyの世界で使われる英語のITジャーゴンとして、最近「Ninja」というのをよく耳にするようになりました。hackerに似て、技術レベルが高いソフトウェアエンジニアのことです。どちらかというと自称する人が多いように思います。


オライリーメディアの新刊の1つ。Novice(初心者)からNinjaへとある

 hackerといえば、CPUのキャッシュラインのインバリデーションをイメージしながら、pthreadでゴリゴリと低レベルのソフトウェアを書き、自分で使う処理系は自分で書く人というイメージがあります(スミマセン、プロセッサ系のジャーゴンを使ってみたかっただけで、何を言ってるか自分でもよく分かっていません)。ninjaのほうは、これに対するカウンター的な言葉のように感じています。JavaScriptが最初に学んだ開発言語という若い層の人たちで、JavaScriptの細かな実装の違いやテクニックを数多く知っていて、ビックリするようなハックを披露したりします。例えば、Livedoor Readerの中の人であるmalaさんは、ninjaっぽいように思います。Webエンジニアの間では非常に有名なのに、あまり外の世界で知られていないという点でも忍者っぽいです。

 最近はjQueryなどの良いライブラリが登場して事情も変わりつつあるのでしょうけど、Webアプリの開発は、JavaScript ninjaがいるのといないのとで、全然最終クオリティが変わってくる、というようなところがあると思います。最近、英語圏の求人広告では、Ruby ninjaだのJavaScript ninjaだのを求めるというものをよく見かけます。

 これまで、JavaScriptはHTMLやCSSと同じでデザイナの領域に近く、サーバ系のエンジニアにとって「やらなきゃいけないけど、まあできれば書きたくないよね」という存在だったのではないでしょうか。私はRuby on Railsの生みの親であるDHH(David Heinemeier Hansson)が、Railsアプリのディレクトリ構成を説明するときに、public以下はHTMLだのJavaScriptだの、デザイナが作るゴミがたくさん突っ込まれる場所だということを言ってるのを聞いて、ちょっと驚いたことがあります。一方、app以下にはモデルやコントローラが入っていて、美しい世界だと(笑)。

 Rails3では、Unobtrusive JavaScript(このブログが参考になります)といって、これまでビューのヘルパーメソッドでJavaScriptをゴニョゴニョッと生成させていたのをやめて、HTMLの各タグの属性と値を使って、JavaScriptによる振る舞いを指定し、これを動的にJavaScriptというかDOMで見ながら実行するという方法に変わっています。HTMLからデザインをCSSという別レイヤに分離したのと同じように、HTMLに混じる振る舞い(JavaScript)を分離するという動きです。ASP.NET MVCの開発者ならmsdnのこのブログが参考になると思います。

 タグの属性活用はHTML5的でもありますよね。ブラウザが未実装のHTML5の機能も、こうしたアプローチならすぐに使い始めることができます。当面はJavaScriptで処理しておき、ブラウザがネイティブでハンドリングできるようになったら、そちらに任せる。このときコードをいじる必要がありません。このアプローチは、「Progressive Enhancement」と呼ばれていて、各ブラウザの実装レベルがチグハグするHTML5時代にふさわしい考え方だと思います。

 ともあれ、JavaScriptは軽んじられてきた歴史があります。サーバサイドJavaScriptの盛り上がりで事情が変わるかもしれませんが、少なくともWebブラウザ側は互換性の問題など頭が痛いこともあって、今も抽象化レイヤの向こう側に追いやられようとしているようにも見えます。ただ、JavaScriptは本当はすでに重要な技術となっていて、高度な技術と幅広い知識を持つ人材が求められているのに、なかなかそういう人が見当たらない。だから、表舞台で活躍しない裏方なのだけどクリティカルな役割を果たすという意味で、JavaScriptハッカー(ほら、違和感ありません?)のことをninjaという言葉で呼ぶのだろうなと想像しています。

 そういえば、英語における日本語語彙の借用には、ときどき驚くものがありますよね。始めて見たとき、かなり驚いたのですが、honcho(班長)というのが、アメリカ英語では結構使われているってご存知ですか? 発音はホンチョです。日本の組織でいうリーダーに相当する言葉のようで、私は「What if your honcho was an idiot?」(もし自分の上司がマヌケだったらどうする?)という文脈で見つけ、辞書を引いてそれが班長のことだと知って仰天した記憶があります。オーストラリア英語で、「rippa(立派)」というのをgreat job!の意味で使ってると知ったときにも、ひっくり返りそうになりました。そういうのに比べると、ninjaはふつうにメジャーですが、新しいニュアンスを帯びて、Web開発者の間で使われているというのは面白いなと思います。

Comment(4)

コメント

インドリ

初めまして西村さん。
非常に楽しい話題です。
忍者って結構使われているんですね。
私が初めて知ったのはF#の時で、レベル9忍者マスターと書いてあるのを見てびっくりしました。
ハッカーから忍者へと言葉が変わるなんて凄く楽しい。
日本人として嬉しく思います。
忍者を目指して頑張ります。
それでは、ドロンします。

西村賢

インドリさん、
コメントありがとうございます。そうですか、F#でも!

ごんべえ

honcho???中国語じゃあるまいかとぐぐったら、太平洋戦争の頃に日本から伝わったということになっているんですね。
http://en.wiktionary.org/wiki/honcho

びっくり。

コメントを投稿する