新春特別企画

プロ生ちゃんが聞く! 2014年のプログラミング言語動向

慧 あけましておめでとう! gihyo.jpでははじめまして。私、暮井 慧。よろしくね! みんなはもう、今年の⁠初⁠プログラミングはした? いろいろなプログラミング言語があるけど、今年はどんなことが起きるのか気になるよね? そんな人たちのために、いろいろな言語について、去年のふりかえりと、今年の動向なんかを詳しい人に聞いてきたよ! ⁠いろいろ」といっても、ちょっと偏っているかもだけど……お正月早々、細かいことは気にしないほうがいいよね!

C#

慧 最初は、C#のことならなんでも知っているC#たん! こんにちは!

C#たん こんにちは!

C#の2013年はどんな年でした?

さっそくだけど、去年のC#ってどんな感じだったの?

C#たん 2013年は、C#を使って開発できるプラットフォームが一気に広がった年でした。携帯端末ではiOSやAndroid、ゲーム機ではPlayStationなど、マイクロソフトの競合となる製品でもC#での開発ができます。この流れは数年前から起こっていたものですが、今年は特に大きな躍進の年でした。

大きな躍進?

C#たん Mono(.NET Framework互換のオープンソースプロジェクト)ベースの製品を提供しているXamarin社とマイクロソフトの提携が発表されました。また、MonoベースのゲームエンジンUnityを採用したiOS/Android向けゲームタイトルが一気に増えたりもしました。

おおー! C#でiOS/Androidのアプリが作れるのはいいよね! でもそれって、マイクロソフトとしてはどうなのかな?

C#たん .NET FrameworkやC#は、発表当初から規格をオープンにしています。互換環境の開発に関しても、規格に沿って実装している限り特許権を主張しないという声明を出しています。

90年代に、⁠独占」「囲い込み」という批判の言葉に誰よりも強くさらされてきた会社です。2000年代以降、少なくとも言語やフレームワークについてはマイクロソフト製品の枠にとらわれない姿勢を持っています。

なるほどー。

C#の2014年を教えてください!

それじゃC#たん、今年の抱負を聞かせて!

C#たん プログラミング言語の進化という意味では、2013年のC#は「力をためる」状態でした。新しいC#コンパイラー、コードネーム⁠Roslyn⁠の開発をしていましたが、まずはC#の既存機能の実装が最優先で、新しい機能の追加はありませんでした。2014年は、Roslynの完成が見えてきたことで、再びC#の進化が始まります。

C#の進化! Roslynで何が起きるの?

C#たん C#のよさの1つに、Visual Studioとの連携性のよさがあります。これまでは、Visual StudioのC#エディターやデバッガー、リファクタリング機能、静的コード解析機能などがC#コードを調べるための「言語サービス」を、C#コンパイラーとは別に開発していました。

C#コンパイラー自体も構造が古く、保守コストが高かったようです。ほんの些細なものであっても、C#への機能追加は大変な作業でした。 Roslynが再整備されたことによって、機能追加が大幅に楽になり、C#の進化を進めやすくなります。

Roslynの状況はどんな感じなのかな?

C#たん 既存のC# 5.0の機能実装は終わり、マイクロソフト社内でのドッグフーディングが始まっていて、Visual Studio自体のビルドもRoslynで行われているそうです。

また、C#の新機能の実装も試験的に行われ始めています。性能的にも、⁠ネイティブコードだったC#コンパイラーをC#で書きなおしたにも関わらず、モダンな構造で書きなおせたことによって)既存のコンパイラーを上回っています。

一方で、いまだ品質的に不安定(Visual Studioをよくクラッシュさせる)だそうで、正式なリリースがいつになるか確定させられる状態ではないようです。

期待大だけど、まだ少し先な感じなのかな? 今日はいろいろ聞かせてくれて、ありがとう!

C#たん

自分のことは棚に上げて、⁠萌えればいいってもんじゃないですよ?」が信条。相手に応じて丁寧な話し方をするものの、必要十分な言葉を選びたかる。実は無骨で面倒くさがり屋。口癖は「やれやれだぜ…⁠⁠。嘘です。

Twitter:@csharp_tan

Visual Basic

慧 次は、C#からの~…Delphi? Java? ……ではなくて、Visual BasicについてMicrosoft MVP for Visual Basicの初音 玲さんに聞きにきました。

Visual Basicの2013年はどんな年でした?

Visual Basicは、目立った動きはなかったような気もするんだけど……、2013年はどんな感じでしたか?

初音 VB.NETの2013年は、サンプルプログラム不足の1年でした。 C#しかサンプルがないのは慣れていたのですが、Windowsストアアプリのサンプルだと、C#とJavaScriptが提供されてVB.NETがないなどがありました。

ちょっと湿っぽくなってしまいましたが、だからこそ、VB.NETのサンプルがないときにはサンプルを投稿するなどコードレシピcode.msdn.microsoft.comへ色々投稿しました。図らずもLeap Motion専用Windowsストアアプリとか、LEGO Mindstorm EV3専用Windowsストアアプリなどは、VB.NETで作成されたものになりました。

個人的には2013年はNUIの年でしたね。先ほどのLeap MotionもそうですがIntel PerCやMicrosoftの新型Kinectの先行提供プレビュー版などもVB.NETでアプリをがんがん作って情報発信した1年でした。

NUIの話題、いろいろあったよねー。初音さん、去年の「プロ生勉強会」で新Kinectのデモを見せてくれたし!

Visual Basicの2014年を教えてください!

2014年のVisual Basicの明るい話題、お願いします!

初音 2014年はますますVB.NETの情報が不足気味になるとは思うのですが1つだけ希望があります。それはRoslynの存在です。Roslynについてはもう知っていると思うけど、コンパイラコンパイラみたいなものでVB.NETとC#の混在を促進する側面もあります。とはいえ、Roslynのサンプルも

  • Compilers:VB.NET & C#
  • Scripting:C#のみ
  • Workspace:VB.NET & C#
  • Services:VB.NET & C#

という感じで若干VB.NETが欠落しているのが気になるといえばなりますね。しかし現状ではRoslynの情報には必ずVB.NETとC#と両方が記載されているので方向としては同時進行していると信じています。 ついでに言えば、RoslynによってXamarinとかもVB.NETとC#が同列になってくれないかなーと目論んでいます。なんといっても両言語共に同じMSILにコンパイルされる訳ですし、MSILになればその先は一緒ですからね。

Visual BasicもRoslynに大注目だね! ありがとうございました!

初音 玲

Microsoft MVP Developer Tools for Visual Basic。
過去には複数メーカーの汎用機を接続する⁠異機種間接続⁠のプロジェクトを多数経験し、ハードウェアメーカーに依存しない技術の確立を痛感。以降、UNIXや汎用機で構築するはずだったシステムをVisual Basicで提案・受注し、社内の雰囲気をWindows主体にシフトさせることに成功。最近では、Windows PhoneアプリやWindowsストアアプリの開発を行うとともに、クラウド環境のインフラエンジニアとしても活躍中。

Twitter:@hatsune_

C++

慧 続いてC++! C++については、⁠プロ生」でもおなじみ、そしてC++標準化委員会メンバー、Microsoft MVP for Visual C++のεπιστημηさんに聞いてみよう!

C++の2013年はどんな年でした?

2013年のC++のトピックを聞かせてください!

επιστημη 僕はWindows以外にはちょっと疎いのでWindows中心の話になっちゃうけど、2013年トピックはやっぱりWindows 8.1とVisual Studio 2013でしょうね。その中でC++つまりVisual C++に絡んだところでは、C++11対応がより進んだのがC++屋の僕には嬉しかったトコ。

LinuxやMacで使われているコンパイラ:gcc/clangに比べてVisual C++はC++11対応が遅れてて歯がゆい思いだったんだけど、ようやく追いついてきたかな。まだもう一歩ではあるんだけどね。

⁠C++11」って何?

επιστημη 2011年にリリースされたC++国際標準のこと。C++11はほぼ10年ぶりの大きな改定で、便利な機能が盛りだくさんなのね。で、Windows 8/8.1ストアアプリを書くための言語C++/CX でC++11の機能がほとんどそのまま使えちゃう。

おおー、C++/CXっていうのもあるんだね!

C++の2014年を教えてください!

お話を聞いている感じだと、C++11はある程度使えるようになって来てるみたい。じゃあ、2014年のC++はどうなりそうですか?

επιστημη C++11のさらにその次、C++14が予定されてる。もちろん2014年版C++のコトね。国際標準対応が遅れ気味だったVisual C++だけど、アップデートが以前よりずっと頻繁に行われるようになってきてて、11月にもCTP(Community Technology Preview: お試し版)がリリースされてる。

ちょろっとインストールして遊んでたんだけど、C++11, 14対応が着々と進んでるし、C++/CXがC#/VB.NETに比べて見劣りのしてた非同期処理のサポートにも着手してくれてるみたい。これを契機にC++やC++/CXでアプリを書くプログラマがもっと増えてくれないかと期待してるんだけどね……慧ちゃんもどう?

C++14もC++/CXも、おもしろそう! ……なんだけど、ちょっと難しそうかも。また、勉強会で教えてくださいね!

επιστημη

C++標準化委員会メンバー、Microsoft MVP for Visual C++ 2004 -。
大手電機系のなんでも屋さん。今年の目標は……C++/CXでストアアプリをお披露目したいなー。

Twitter:@epitwit

JavaScript & TypeScript

慧 次はみんな大注目(?)のJavaScriptについて。日本マイクロソフトエバンジェリストの井上 章さんに聞いてみるよー♪

JavaScriptの2013年はどんな年でした?

JavaScriptの最近の状況を教えてください!

井上 ここ最近は、JavaScriptではなくjQueryを書くと言ってもいいくらいにjQueryがデファクトスタンダード化している状況です。こういった単なるJavaScriptライブラリに対しての話題はひと段落した一方で、昨年あたりからは、フロントエンド側でどのようなJavaScriptフレームワークを使うか、といったところに本格的に話題の中心が移りました。特に、Angular.js, Backbone.js, Knockout.jsといったあたりが代表するJavaScriptフレームワークになっているようです。

いろんなフレームワーク増えたよね。私が注目しているのは、Angular.jsかな。

井上 JavaScript必須のWeb開発において、特に大規模なWebアプリケーションでJavaScriptのコーディング量が増える中では、各種JavaScriptフレームワークが使われるのも当然の流れでしょう。読みやすくメンテナンスしやすいコードで如何に生産性を上げるかといった課題は、いつの時代もプログラミングの世界では出てくるものです。JavaScriptにおいても本格的にそういったフェーズに入っているといえるのではないでしょうか。

TypeScriptの2013年はどんな年でした?

慧 JavaScriptのコードに変換できる言語もいろいろ出ているよね。そのあたりの話はどうな……わっ!? 誰っ?

ウェブマトリクスマン 続きは私から紹介しよう!

jQueryに加えて、Angular.js, Backbone.js, Knockout.jsなどを使ったとしても、言語としてJavaScriptを使うことに変わりはないのだ。そこで、JavaScript言語そのものに不足している言語仕様やウィークポイントを補う形で、TypeScriptやHaxe, CoffeeScript, Dartなどの俗にいうaltJSと呼ばれる部類の言語に注目が集まってきているのもここ最近のトレンドだぞ!

これらの言語は静的型付けシステムを利用できることが特徴の一つで、その中でもTypeScriptではC#やJavaなどに慣れた開発者がなじみやすい言語仕様のもとでコーディングすることができるのだ。グッドな仕様だな。そして、そのTypeScriptコードがコンパイラによってJavaScriptに変換されるため、最終的にWebブラウザで実行されるのはJavaScriptなのだよ。

というわけで、Webアプリケーションのクライアント側でJavaScriptさえ動けば、実行環境にほとんど依存せずにTypeScriptを利用することができるのだ。既にTypeScriptを実案件で使用している事例も多く出てきていいるぞー。刮目すべし!

緑のタイツ……。

JavaScriptの2014年を教えてください!

最後に、今年はどんな年になりそうですか?

井上 2013年12月にTypeScript 0.9.5がリリースされ、いよいよ1.0が間近になってきたこともあり、今年はTypeScript採用の流れが一層加速しそうですね。

先にお話ししたJavaScriptフレームワークに加えて、TypeScriptを代表としたaltJS系の言語が一段と注目されるのではないでしょうか?

ウェブマトリクスマン ちなみに、無償開発環境のWebMatrixは、JavaScriptやJavaScriptフレームワーク、そしてTypeScript、CoffeeScriptなどaltJSやCSS(LESS⁠⁠、Jadeにも対応している優れモノだ。

井上 章(チャック)

日本マイクロソフト株式会社 エバンジェリスト。
ハードウェア設計に始まり、Z80プログラミング、C++/MFC/ATLプログラミング、そしてASP.NETをベースとしたWeb開発や、各種書籍執筆などのエンジニア人生を経た後にマイクロソフトに入社。現在は、ASP.NETやWindows Azure, Visual Studioを中心とした開発テクノロジーのエバンジェリストとして、高校時代に付けられたあだ名⁠チャック⁠を使って活動中。

Twitter:@chack411

ウェブマトリクスマン

Webの世界に颯爽と現れた電子のおっさん妖精。マイクロソフトの無償開発ツールWebMatrixの啓発活動にいそしむ。マイクロソフトのWebサイトで謎の活動を行っていたが、マイクロソフトから正式に非公認となりWebサイトから追い出された過去を持つ。

Twitter:@WebMatrixMan

Java

慧 次はJava! 30億のデバイスで走るJavaのトレンドも外せないよね。日本オラクルJavaエバンジェリストの寺田佳央さんに聞いてみよう!

Javaの2013年はどんな年でした?

去年のJavaの動向について教えてください!

寺田 2013年、JavaはエンタープライズJavaの最新版Java EE 7が正式にリリースされ、世界だけでなく日本でも数多くのJava開発者が注目した年でした。そして、新しいエンタープライズJavaに対する期待が現実に変わった年でもありました。

Java EE 7はHTML5対応等、最新のトレンドに対応する技術が含まれ、一つ前の Java EE 6のリリース時に比べて注目度は非常に高く、多くの開発者がリリース前から機能評価を行っていました。またコミュニティ主導の勉強会においても、勉強会での登壇者、情報発信者も増え、参加者も回数を重ねるごとに多くなり、まさにJava EEの広がりを感じた年でした。

ふむふむ。Javaの人気を感じるね。

寺田 また、2010年にSunとOracleが統合した直後Javaの将来を危ぶむ声も聞こえましたが、この3年間でJava業界を取り巻く環境は、そうした声がまるで無かったかのように活発さを取り戻し、今また、Javaがとても元気になってきたと改めて実感した1年でした。

実際、Javaコミュニティ主催の勉強会は、夜や休日に開催しているにもかかわらず、毎回多くの方々に参加していただいております。お忙しい中、時間調整の上ご参加いただいた皆様、そしてご登壇者には心より感謝しております。

コミュニティが活発なのは嬉しいな♪

Javaの2014年を教えてください!

今年のJavaはどんな感じになりそうですか?

寺田 2014年は、Java SEの年になるといっても過言ではないでしょう。春にJava SEの最新版、Java SE 8がリリースされる予定です。

Java SE 8ではProject Lambdaの成果によって、JavaでもLambda式が扱えるようになります。これは今までのJavaのリリースの歴史においても最も大きな言語仕様の変更の一つになりますが、導入するメリットは必ずあります。

Lambda式を待っていた人は多そう!

寺田 元々、マルチコアCPUの環境において並列処理を行うための実装をより簡単に記述できるようにと導入された背景があるため、並列処理をより簡単に実装するための改良が施されています。これらの改良には言語仕様、つまりプログラムの書き方の部分だけではなく、コレクションAPI等の既存のライブラリにも及んでいます。

多くの開発者は、こうしたライブラリと共にJavaのLambda式と触れることになるかと思います。去年のJavaの祭典であるJavaOne 2013 San FranciscoでJavaのチーフ・アーキテクトが「Java is Back」と言いましたが、まさにJavaが戻ってき、そして新しいJavaの時代が到来しようとしています。

今年のJavaは、要チェックだね!

寺田 はい、既にJavaのコミュニティやJavaの有識者の皆様が、開発者プレビュー版を利用して、Java SE 8に関する技術情報を発信してくださっています。Java SE 8について詳しく学びたい方は、そうした情報をご参照頂くか、もしくは日本Javaユーザ・グループへご参加いただき、ナイト・セミナー等を有効活用してください。

ありがとうございました!

寺田佳央

日本オラクルでJavaエバンジェリストとして活動中。Sun Microsystems時代からWeb関連製品のエバンジェリストとして活動し、各種イベントで多数の講演を実施。

Twitter:@yoshioterada

Go

慧 Microsoft、Oracleときて……、Google! ということで? 次はGo言語だよ。Google Developer Group中国オーガナイザーの横山さんに教えてもらおう!

Goの2013年はどんな年でした?

最初に、Goってどんな言語か教えてください!

横山 Go言語は、シンプルな言語で、コンパイルするとバイナリが生成されます。したがって、⁠実行速度が速い」です。Goには、ガーベジコレクションが搭載されているので、メモリ管理はGo言語のランタイムで都合のよいようにしてくれます。まさに、C言語の弱点を補ったような言語です。また、インタプリタ言語のような記述もでき、効率的なプログラミングができるようになっています。

Go言語の売りは実行速度や、記述の効率性だけではなく、豊富な標準ライブラリや再利用性を追求した設計であったり、一番おもしろいのが、ゴルーチンを使った並列処理が簡単に記述できるなど、マルチコアCPUをしっかり使う仕組みがあったり、ユニットテストが言語標準で搭載されているので、最初からユニットテストを記述することができ、プロダクション環境に導入するには最適な言語だと思います。

ゴルーチンっておもしろい名前だね! 並列処理が簡単だったりテスト機能があったり今時って感じがするよ。Goの2013年はどんな年でした?

横山 Goが正式リリース(1.0のリリース)後、バージョンアップが続けられた1年でした。Googleでは、Go言語をバックエンドで利用している(C++からの置き換え)ということがいくつか発表されたり、Go Conference(通称Gocon)など、Go言語の大きなイベントが開催されたり、Go言語が開発者に注目されるようにもなりました。そして、日本各地でもイベントや勉強会が開催されています。また、Go言語の開発者の採用が開始されるなど、Go言語が、日本の企業のプロダクト環境で使われるようになり始めた。という1年でした。

Goで就職できる時代!

Goの2014年を教えてください!

2014年のGoはどんなことがありそうですか?

横山 2014年はGo 1.3が3月、Go 1.4が6月にリリースする予定ということが発表されています。2014年も頻繁なバージョンアップがあるということがわかっているのと、3か月間隔のリリースで、ペースが落ちなければ1.5、1.6のリリースまで考えられます。

そして、Goのコンパイラが、CからGoに置き換えられるという話も発表されていますので、今後は、⁠Go言語はGoで作る」という時代がやってきます。

また、⁠プロダクション環境でGoを導入した」という発表も、日本の開発者のアウトプットがあるだろうと思っていますし、期待しています。また、⁠今、Go言語を勉強している開発者」が注目されるような1年になってくれることを期待しています。

GoもGoで作られるの!? C#もそうだし、これからの言語のポイントなのかな? これからが楽しみ♪ ありがとうございました!

横山隆司

Google Developer Group中国 オーガナイザー。

Twitter:@ttyokoyama
Google+:+TakashiYokoyama

Dart

慧 Go言語の次は、Dartも気になるよね? というわけで、Dartのことならこの人! Google Developer Groups京都で活躍している粟納さんに聞いてみよう!

Dartの2013年はどんな年でした?

最初にDart自体について、少し教えてもらっていいですか?

粟納 DartはJavaScriptに存在する厄介な特徴を解決するために開発されました。例えば、JavaScriptではJavaなどに慣れた人から見るとthisはコンテキストに応じて様々な意味を持ちますが、Dartではthisは常に現在のインスタンスです。また、DartはJavaなどと同じくクラスベースの言語でもあります。

Dartを利用することでJavaScriptに存在する厄介な問題に悩まされることなく、Web開発者が様々なサービスを開発できるようになることを期待しています。

ふむふむ。Dartの登場は2011年だから、去年は3年目だったんだよね。3年目のDartは、どんなことがありました?

粟納 2013年11月13日、Dartは1.0がリリースされ正式バージョンになり、Dartにとって2013年は大きい意味を持つ年でした。

2013年のDartへの変更は正式リリースのみなず、パフォーマンスについてはDartのベンチマークで2013年3月11日から2013年12月14日の間まででTracerで661.13から1101.50へ166%のパフォーマンスの向上が行われました。

また、ライブラリに関してもWeb Components上に構築されたライブラリのPolymerのDartバージョン(Polymer.dart)が登場したり、充実しました。Google Code上でのDartへの変更を見ると、2013年1月1日にはr16570だったのが、2013年12月14日にはr31153になっています。14583回の変更が約1年の間に行われており、非常に活発に変更が行われました。

14583回!? 1年で!?

Dartの2014年を教えてください!

登場4年目になるDartは、今年どんな年になりそうですか?

粟納 正式版になったことにより以前より広い領域で使えるようになったDartが様々なところで利用されていくことを期待しています。Dartを利用する人が増え、Dartで構築されたWebサービスが増えたり、Dartのライブラリが今より一層充実していくことを期待しています。

現在、IEやFirefox, Chromeをはじめとする主要ブラウザではDartは直接実行できません。しかし、2013年12月の第2週にECMAでDartの標準化のための委員会(TC52)が発足しました。2014年は標準化が進み、Dartがネイティブで実行できるようになることを期待しています。

ネイティブで動くDart! できるようになると、おもしろそう~。粟納さん、ありがとうございました!

粟納裕貴(Yuki Awano)

Google Developer Group京都メンバー。
Google I/O 2012へ参加した際、Dart Code LabでDartがおもしろい!と思い、その後、著者の許可を得てGoogle Developer Group京都でDart Code Labのテキストを翻訳

Google+:+YukiAwano

おわりに

慧 はい、新春スペシャルインタビューは以上だよ! どうだったかな? あの言語とかあの言語とかないよねって? そうなんだよね……ちょっと間に合わなかったというか、聞けなかったというか……。あんな言語やこんな言語について、私と話してもいいよ! ってひとがいたら連絡してね!

それじゃ、今年もよろしく♪

おすすめ記事

記事・ニュース一覧