今から20年前の1995年,1つのオブジェクト指向言語のベータ版が登場しました――それがJavaです。この20年の間,インターネットやITの分野は大きく変化し,さまざまな変化を遂げています。その間,つねに中心技術の1つとしてたくさんの開発者に利用され,また,さまざまな利用シーンで活用されるJava。エバンジェリストを務める寺田佳央氏にご協力いただき,これまでの20年間を振り返りながら2015年のJavaを展望してみます。1.0ベータ版がリリースされたのは1995年です。95が登場し,これから家庭でもコンピュータが使えるようになる!という,IT革命の黎明期でもありました。当時はまだ,現在のようにインターネットありきのコンピューティングではなく,あくまで目の前にあるクライアント端末としてのコンピュータとしての特徴が強く,これからインターネットの世界に踏み出していこうという時代でした。anywhere」のコンセプトで開発され,インターネット,とくにWeb環境で動かすことを最重要視して開発された言語でした。things)と呼ばれる,すべてのデバイスがつながりはじめた時代でも注目され,利用されていることの裏付けと言えるでしょう。computer.⁠”の考え方がそのままJavaにも引き継がれていたことは大きなポイントだと考えています。Joyの考えが強く反映され開発が進んでいたからでもあります」と振り返りました。言語仕様の進化,基盤を支える言語また,Javaの魅力は言語としての特徴だけではなく,さまざまな技術の基盤となる実行環境としての性能の高さが挙げられます。「⁠Javaの最初の10年は,当時のほかの技術の進化スピードに合わせるべく,さまざまな機能追加や改善が行われました。一方でここ10年,とくに直近の数年で見ると,過去に比べての新機能の数や(目に見える形での)改善というのは少ないかもしれません。これは裏を返せば成熟期を迎えているとも考えられます」と寺田氏は説明しました。「また,バージョンアップを続けるだけではなくて古いバージョンへのサポート,いわゆるバックワードコンパチビリティがしっかりしている点もJavaが20年間,つねに使われてきている理由だと感じています」と続けました。たしかに,技術の進化というのは向上していくことも大事ではありますが,一方で,それまでの資産を無駄にしないことも大切です。Javaは過去の資産も活かせるような進化を遂げてきている言語と言えます。寺田氏自身が個人的にJavaを気に入っている点として「実行環境としての役割」を挙げました。JavaVMの存在です。「⁠プログラミング言語というのは(当然ですが)言語仕様があり,開発者にとってコードが書きやすい,生産性が高い,メンテナンスしやすいといった点に注目が集まり,評価されます。私自身もそれはとても大事だと思っています。Javaの場合,言語仕様の側面だけではなく,実行環境としての側面,つまりJavaVMがあることが大きな特徴であり,また,20年間,開発者に愛され使われ続けているのではないかと思っています」(⁠寺田氏⁠)⁠。2015年のJavaの押さえどころJavaのコンセプトと魅力を振り返ったところで,今年のJavaの注目ポイントについて移りましょう。7それぞれの普及にあると,寺田氏は説明しました。7は2013年に正式リリースされ,さまざまな情報や各種勉強会などで取り上げられてきています。2015年は,開発者自身がこれらの技術に触れ,実際にコードを書いた次のステップとして,実運用として利用が高まっていく,こういう動きが注目すべきところだということになります。それぞれについて特徴とポイントを簡単に説明しましょう。APIの導入が挙げられます。Lamda式とは,関数型インターフェースのメソッドを実装できるもので,処理の実装を簡潔に綺麗に書いていくことができます。APIはデータの動きを抽象化するもので,多様で複雑なデータ処理を完結に表現できます。API」を挙げました。名前のとおり日付を扱うAPIで,これまで人間にとってわかりづらい記述をしなければならなかった実装を,このAPIを使えば,人間が直感的にわかりやすい表記が行えるようになります。8601という国際標準規格に則っている点も押さえておきたいポイントです。7は2013年7月にリリースされ,すでに次のバージョン8の開発は進んでいます。エンタープライズの世界では,まだまだ7の普及率が低く,2015年は7がもっと浸透していくことが予想されます。Injection)です。Injectionをアプリケーションから利用できる技術で,6から仕様に追加されました。現在の7になり,CDIがEJBと同等の機能を持ち始めてきていることもあり,既存の開発スタイルを踏襲しながら,軽量開発を行っていけるという観点から7以降のカギになると見られています。この他,最近のエンタープライズJavaは,フロントエンド開発をきちんと支えられるかどうかに注目が集まっており,とくにHTML5との連携が重要なポイントなっています。2.0が含まれていることからも,RESTアーキテクチャによる開発効率が格段に高まりました。7に注目が集まっているのです。7を選択し,利用していくと予想します」と述べました。続いて,Javaの開発体制と取り巻く環境について見てみましょう。Microsystemsの買収・統合,その先にあった企業とJavaの関わりです。Sun消滅の際は,ネットその他の場所で,開発者たちによるさまざま意見が交わされました。寺田氏自身,両社を経験している当事者として,周囲からいろいろな質問を受けたそうです。この点について「たしかにSunはハードウェア企業・Oracleはソフトウェア企業という性質から,Javaの扱いがどうなるのかについて心配されている方たちも多くいらっしゃいました。Oracle自体は,自社の製品はすべてJavaに支えられて開発されており,Java抜きでは語れません。買収後は(企業として)一層Javaへのサポートという部分は意識されたのではないかと思います」とコメントしました。次のように続けました。「⁠ただ,多くの方がご存知のようにJavaは1社独占の技術ではなく,さまざまな企業,開発者,それらを含めたコミュニティが育て,大きくしている言語です。その言語としての性質は活かしながら,たとえば,Oracle統合以降は,仕様策定などを進めるJCPの体制を変化させ,それまで以上にオープンにしています。このように,Sunが,Oracleがというよりは,JCPをはじめとしたJavaを取り巻く環境が,より健全に進んでいるように感じています。ちなみに,現在のJCPのAuthorに日本人が2名いて,1名は学生です。このように,日本人が世界のオープン・コミュニティに積極的に参加し,そして,世代継承が行われているという点は個人的にも大変嬉しく思っています⁠」⁠。開発者のお祭り~JavaOne今の話からもわかるように,20年間のJavaを支えてきたのは開発者でありコミュニティです。その開発者たちが1年に1回,一堂に会し,交流を深めるのが,アメリカ・サンフランシスコで開催されるJavaOneです。1995年の第1回から数えて,2014年まで19回開催されてきました。gihyo.jpでも過去何度もレポートし,未来のJavaがどうなるか,会場からお伝えしてきました。OpenWorldとの併催という形で行われてきましたが,その熱気は変わらず,世界各地から多数の開発者が集まり,Javaの新技術,動向に耳を傾け,また,自身の考えを発表し,朝から晩まで技術論を交わす場となっている,言わば,開発者のためのお祭りです。今は,世界各国,さまざまな技術カンファレンスが行われていますが,これだけ長い間,この規模感で開催されているのはJavaOneだけです。メインとなるアメリカ開催だけではなく,ここ日本やその他の国でも開催されたこともあり,地域色が出るイベントとしても楽しめるのが特徴です。Gosling氏をはじめ,たくさんの関係者が集まりJava10週年を祝った今年は記念すべき20回目となるJavaOneです。開催日は発表されており,2015年10月25日~10月29日,同じくアメリカ・サンフランシスコで開催されます。節目の年のJavaOneがどうなるのか,今から注目しましょう。things)に注目が集まっています。この考え方は目新しいものではなく,過去,たとえば「ユビキタスコンピューティング」など,呼び方は違えども,いつの時代も取り上げられ,取り組まれてきました。それがなぜいま注目されるかというと,一番の要因はスマートフォンを中心とした端末の進化です。いまや手のひらサイズのデバイスで,20年前のワークステーション以上の処理能力を持っているのです。インターネットインフラが整備され,デバイス同士,人間同士が,つねに繋がれる状況になっています。このような背景において,Javaが持つ機能,生産性の高さ,フロントエンド・バックエンド・組込みなど多様なシーンでの適用性は,IoT時代になくてはならないものと言えるでしょう。最後に寺田氏に,IoT時代におけるJavaという点について質問をしたところ,次のような答えで締めくくってくださいました。anywhere⁠”というコンセプトで開発が進み,20年たった今,それがほぼ100%実現できたと思います。今からさらに10年先を考えるのは難しいですが,個人的には,本当にすべてのデバイスでJavaが動いて,つながっていることに期待したいですね。それから,やはり開発者の方たちの存在はJavaに欠かせません。これからもたくさんの開発者が使いたくなる,そして,さらに改良していきたくなる言語として注目したいですし,自分自身,その魅力を伝えていければと考えています。開発者へのアプローチという点では,教育分野でのJavaの利用に注目しています。今はJavaを利用したプログラミング教育や,たとえば,マインドストームのように楽しみながらJavaプログラミングを楽しめる環境が整備されてきました。これまで若手として活躍してきたJavaエンジニアの方たちの中にも親の立場になった方がたくさんいらっしゃると思います。自身のJavaスキルをお子さんたちに伝えていってもらって,未来のJava開発者が増えていくことを楽しみにしています⁠」⁠。20年目の節目となるJava,要注目です。クロスメディア事業室室長。