「次に来る」プログラミング言語を占ってみる:OSS界のちょっと気になる話(2)(2/2 ページ)
今回は、インターネット上でどんなコンピュータ言語が話題になっているかを表すデータを見ながら、今後のプログラミング言語の流行を予測してみる(編集部)
iPhone/iPadの普及で話題沸騰 Objective-C
2009年半ばからどんどん順位を上げているのがObjective-Cだ。この勢いが続けば、JavaとCに続く第3位まで躍進する可能性もある。2009年以前は、ほかのプログラミング言語に比べるとほとんど話題にならなかったプログラミング言語であっただけに、大躍進といえる。
Objective-CはC++と同様、C言語にオブジェクト指向に対応する機能を追加したプログラミング言語だ。C++と比べると、拡張した部分がシンプルで、作成したプログラムが高速に動作すると言われていた。
多くの開発者の間で話題になる前は、Mac OS Xなど一部のシステムの標準開発言語でしかなかった。Cから発展したオブジェクト指向言語としてはC++の方が知名度の面でもユーザー数の面でも圧倒的だった。
Objective-Cがインターネットの世界で話題になる機会が増えたのは、何と言ってもiPhone/iPod touch/iPadが広く普及したからだろう。これらの機器は「iOS」というOSを搭載しており、iOSとその搭載機器を開発しているアップルは、iOS向けアプリケーションの開発にはObjective-Cを使用すべきとしている。つまり、Objective-Cはアップル公認のプログラミング言語であるということだ。
iOS向けアプリケーションは、作成して、アップルが運営するアプリケーション販売サイト「App Store」に出店すれば、アップルが販売してくれる。開発者が自前で販売網を構築したり、営業活動に取り組む必要はない。このため、多くの開発者がiOS向けアプリケーションの開発に参入した。あちこちで話題になるのは当然だろう。iPhoneやiPadの人気を考えると、当分はObjective-Cの話題は盛り上がり続けるだろう。
そして、携帯型機器の普及はTIOBE PCIランキングにおけるJavaの地位向上にも貢献していると見られる。Android向けアプリケーションの開発に使用するプログラミング言語がJavaであるからだ。
「実力で勝負」のC#
2012年1月のTIOBE PCIでは、C#がJavaとCに続く3位になったことで話題になった。C#は以前から長期にわたって、安定的にTIOBE PCIの順位を上げてきていたが、2012年1月にはついにC++を抜いて3位になった。C#はランキングに入っているほかのプログラミング言語と比較すると後発のプログラミング言語だ。長い歴史を持つライバルを追い抜いて開発者の話題によく上るようになったのは、プログラミング言語として設計が優れており、扱いやすいという開発者からの高い評価ゆえだろう。「実力」で着実に開発者の間に浸透していったということだ。
C#は.NET Frameworkを利用してプログラムを開発するときに使える言語の1つである。ほかにはVisual Basicという選択肢もあるが、JavaやCといった言語の経験がある開発者にとってはC#の方が習得しやすいという声が多い。
.NET Frameworkとともに登場したC#は、.NET Frameworkがその活躍の場をクライアント向けWindows、Windows Server、Windows Azure、Windows Phoneと広げるのに伴って、話題になる機会が多くなっていったとも言えるだろう。
一方、P言語の一角を占め、Webアプリケーション開発者の人気を集めていたPHPは値が低下傾向にある。Windows向けアプリケーションを手軽に作れるという評判を取っていたVisual Basicもここ数年低迷している。C#が、これらのプログラミング言語に取って代わりつつあるのかもしれない。
今後が楽しみなLua
2012年1月のTIOBE PCIでは、C#のトップ3入りのほかにも、今後の動向を予感させる動きが2つある。1つ目はスクリプト言語Luaだ。
Luaはこれまで、一部のディストリビューションが標準で収録していたが、大きな話題になるプログラミング言語とは言えなかった。しかし、2011年は何度かTIOBE PCIの上位20位以内にランクインし、2012年1月も20位に入っている。Objective-CやC#などに比べると値もランキングもまだまだ低いが、近い将来、スクリプト言語として一定の地位を確立する可能性がある。
2011年にLuaが何度かトップ20にランクインするようになった理由としては、Objective-Cと同じく、iOS搭載機器の普及が挙げられるとする意見が強い。iOSアプリケーションは規制が厳しく、アップルはiOSアプリケーションの中にインタプリタや仮想マシンといった言語処理系を持つことを禁じていた。しかし、Luaだけは使えるのだ。このため、iOSアプリケーション開発者がLuaに注目しているのだろう。
Luaはスクリプト言語としては作りがシンプルで、OSやプロセッサが異なる環境にプログラムを移植することも容易だ。実行環境のプログラムサイズも小さく扱いやすい。現在はiOSアプリで利用するスクリプト言語として話題を集めているが、Luaの存在を知った開発者が、小回りの効く便利なスクリプト言語として別の用途でも利用する可能性もある。今後の動向に注目しておきたいスクリプト言語だ。
「ビッグデータ」をきっかけに飛躍できるか
今後の動向を予感させるもう1つの動きは、プログラミング言語「R」が2012年1月のTIOBE PCIの19位に入ったことだ。Rは、統計解析や、その結果のグラフ化などの機能を備えるプログラミング言語。汎用的なプログラミング言語というよりも、統計処理という特定領域の問題解決を目的とした、DSL(Domain Specific Language)と説明した方がよいだろう。特定の領域で使う言語ということは、利用者は少ないはず。TIOBE PCIのトップ20に入るとは考えにくかった。
Rが話題になり始めた背景には、最近注目を浴びているある種のコンピュータ技術がある。大量のデータを効率良く処理する技術だ。「ビッグデータ」という言葉を耳にした方は多いと思う。MemcachedやApache Hadoopは、ビッグデータを高速に処理するソフトウェアだ。
ビッグデータという言葉が広がっていった2011年の終わりごろから、プログラミング言語Rがインターネットの世界で話題になる機会が増え始めた。ビッグデータを素早く処理するといっても、深く考えないでデータを処理するだけでは良いことは何も起こらない。処理した結果、役に立つ結論あるいは仮説を得られなければ、ビッグデータを持っていても何の役にも立たないのだ。そこで、統計解析に向けたプログラミング言語であるRを使って、大量のデータをさまざまな角度から統計解析し、ビジネスの行方を予測しようというわけだ。
プログラミング言語Rは、「S」という名の統計処理向けプログラミング言語を模倣したオープンソースソフトウェア実装といえる。専門家にはSの方がなじみ深いかもしれない。RはGoogleが社内のデータ解析に活用しているなど、ビッグデータを扱う企業において重要なプログラミング言語となっており、今後広い範囲で話題になる可能性がある。Luaとともに注目しておきたいプログラミング言語だ。
プログラムを動かす環境や目的で言語を選ぶ時代に
ここで、図1を見直してほしい。コンピュータ業界の変遷が見て取れるからだ。2002年ごろはコンパイル型言語に対するスクリプト言語という構図でプログラミング言語をとらえる風潮があったように思う。
コンパイル型言語は、プログラム作成には手間がかかるが、コンパイルという手順を踏むと、プロセッサが直接解釈できるバイナリコード、あるいは仮想マシンが解釈できる中間言語ファイルを得られる。一方、スクリプト言語は手軽にプログラムを作成できるが、プログラムを実行するときは、スクリプトをバイナリコードに変換しながら実行するので処理速度はあまり期待できない。
ところが、技術革新が進み、プロセッサがどんどん高速化していくにつれ、スクリプト言語が活躍する場が広がっていった、これからは多機能で手軽に扱えるスクリプト型のプログラミング言語が流行るだろうと予測する人も多かった。また、オブジェクト指向が普及し、当たり前の技術として活用が進んだ時代でもあった。
開発者の活躍の場はデスクトップアプリケーションからWebアプリケーションなどのサーバサイドプログラミングに移り、ここ数年はスマートフォンやタブレットといった携帯型機器で動作するプログラムに移ってきている。
そして今は、コンパイル型、スクリプト型、強い型付け、弱い型付け、オブジェクト指向、といったようなプログラミング言語としての特性を見て利用する言語を選択するというよりも、対象とするアーキテクチャやプラットフォームに適したプログラミング言語を選ぶ時代になりつつある。そして、Rの地位向上を見ると、目的に合った言語を選ぶという考え方も必要だということが分かる
TIOBE PCIの値はそれだけで物語のような面白さがあり、毎月発表される値を見るだけでも興味深い。毎月の値の変動に一喜一憂するのも楽しい。そして、このデータは見て楽しむだけでなく、コンピュータ業界の動向を把握する指標にもなるのだ。情報を収集するときに、1つ1つの情報を重み付けする判断材料としても利用できる。
開発者個人としては、TIOBE PCIの値は、次に取り組むべきプログラミング言語を検討するときの指針の1つとして活用できる。話題になっているものを使ってみよう、というのも1つの見識だ。話題になっているということは、インターネットで得られる情報も多く、仕事につながる可能性も高くなる。一方で、ランキングを見るとまだ低い位置にいるが、急速に順位を上げてきている言語を選ぶという考え方もあるだろう。どう判断するかはあなた次第だが、興味深いデータであることは間違いない。
著者紹介
▼ オングス代表取締役。
▼ 後藤大地
@ITへの寄稿、MYCOMジャーナルにおけるニュース執筆のほか、アプリケーション開発やシステム構築、『改訂第二版 FreeBSDビギナーズバイブル』『D言語パーフェクトガイド』『UNIX本格マスター 基礎編〜Linux&FreeBSDを使いこなすための第一歩〜』など著書多数。
Copyright © ITmedia, Inc. All Rights Reserved.