PR

 2001年の発行以来「10年後も通用する基本を身につけよう」のキャッチフレーズのもと読み継がれてきた書籍「なぜ」シリーズ。この先の10年に向けて、何をいま知っておくことが重要なのかを著者の皆さんに語ってもらいます。(編集部)

 Web2.0の普及により、プログラミング言語はややこしい時代に入りました。RIA(リッチ・インターネット・アプリケーション)、Ajax、スマートフォンの普及と、OSS(オープンソース・ソフトウエア)の一般化により、クライアント&サーバー型のアプリケーションモデルが主流となっただけでなく、サーバーで流行している言語と、クライアントで採用されている言語が別々の進化を遂げています。しかも、その間を取り持つための技術も乱立し、全体を理解しようとすると、混乱しかねない状態にあります。

 Javaは、これから先の10年、仕様や、仕様の管理体制(JCP:Java Community Processなど)がしっかりしていてベンダーも多くて安心して利用でき、開発者も大勢おり、ミッションクリティカルな場面でのサーバー側開発言語の主流となり続けるでしょう。その半面、Javaは少し古めの言語とも言え、ミッションクリティカルでない場面では他の言語が勢力を伸ばすのは必至です。Javaが衰退するのではなく、Java以外の言語が活用される分野が増加するのです。

 サーバー側言語としては、これまでのJavaやC#などに加え、PHP、Ruby、Python、Groovyといったスクリプト言語が流行しています。クライアント側言語もバリエーションが多く、ブラウザーではHTML/CSSやHTML5とJavaScript、Adobe FlashのActionScript、スマートフォンではObejctive-Cや、Javaといった、乱立状態にあります。接続のための技術は、HTTP、XML、RSS、ATOM、JSONといったものを開発者それぞれが適宜選択して利用するような状態にあり、統一されるよりはむしろ広がっています。サーバーとクライアントを統合しようという「ソフトウエアベンダー的動き」が、現代のWebのような「市場主導」ではうまく働かないのです。

 こういったテクノロジーの組み合わせが、世界中で広く使われるWebの世界で、これまで想像もできなかったユーザー体験を実現しているのは確かです。このようなトレンドは当面続くと考えられ、プログラマーとしては「どの言語、どのフォーマットを、どこで、どう使うか」を選ぶための「目利き」の能力が問われる時代となってきています。現状ではインターネットサービス系の技術者を除き、企業系のIT技術者の多くがそれらをあまり使いこなせていません。ここでは、企業系IT技術者にとって、10年後も通用する基本について考えてみましょう。