新春特別企画

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

慧 あけましておめでとう! 私、暮井 慧。今年もよろしくね。ところでみんな、いろいろなプログラミング言語の動向とか気になるよね? というわけで、プログラミング言語の去年のふりかえりと今年の予定なんかを、スペシャルな人たちに聞いてきたよ!

Ruby

慧 最初は、みんな大好きRuby! Rubyコアコミッターの小崎資広さんに聞きにきたよ。小崎さんは、Linuxカーネルコアの開発者でもあるんだって!

Rubyの2014年はどんな年でした?

こんにちは。2014年のトピックを聞かせてください!

小崎 まずは、Ruby 2.2のリリースでしょう。リリース直前にいろいろとトラブルが発生してやきもきさせましたが、無事12/25にリリース。クリスマスにリリースする慣例を守ることができました。

今回のリリースはガベージコレクションの改善がメインで、速度の向上に加えて、Symbolがガベージコレクトの対象になるようになりました。

RailsチームなんかはSymbol GCをうけて、2.2リリース前からRails 5はRuby 2.2しか対応しないと表明していて、期待のリリースでした。

あとは、MatzがRubyKaigiでぶち上げたRubyに型を導入する宣言かな。

なななーんと! Rubyに型ができるの!?

小崎 型といってもいろいろあるんだけど、Matzが目指しているのはソフトタイピングという、開発者は(今までどおり)型を書かないんだけど、Rubyインタプリタが型を推測してくれて間違ってそうな場所を警告してくれるというもの。それなら既存のコードの互換性も壊れないんでいけるのではという話だった。

ちょっと驚いたのはその後の宴会の時にコミッターのakrさんとなるせさんがなにかごそごそやってるなあと思ったら、その日のうちにプロトタイプを実装してしまったこと。あれはみんなが驚いていた。Matzはまだまだ先の話と言っていたけど、意外と早くみなさんのところにお届けできるかもしれない。

即日実装! すごい! これまで通りで便利になるのはいいね。

小崎 ただ一応断っておくと、Matzのキーノートは開発リーダーなのに予測がはずれることが多いことで有名だから、どんでん返しもあるかもしれないけどね。

Rubyの2015年を教えてください!

2015年のRubyは、どんなことが起こりそうですか?

小崎 なんだろうねえ。わかんない(笑い)

たぶん次はまだ3.0じゃなく2.3になると思う。今回も内部的な改善がメインになるのではないかと思っている。型の話もまだ議論が煮詰まってないし、2015年の議論の進展しだいで、次が3に上がるかどうかが、決まるんじゃないかな。

型の話も、Ruby 3.0になるかどうかも、まだまだこれから議論が進んでいく感じなんだね。お正月から気が早いけど、クリスマスリリース頃にはどうなっているのかな? ありがとうございました!

小崎資広

富士通勤務。Linuxカーネルコア開発者兼Rubyコアコミッターという奇特なひと。RubyではGVLやスレッドまわりをいじったり、Linuxプラットフォームメンテナをしたりしている。Linuxコア開発者が日々目配りすることにより、LinuxがRubyにとって最適なプラットフォームであることを不動のものにしているのである。

Python

慧 続いてPythonだよ。⁠Pythonプロフェッショナルプログラミング」の著者のひとりでもあるaodagさん。……あっ! 技術評論社 出版のパーフェクトPythonも書いてるよ。

Pythonの2014年はどんな年でした?

Pythonの2014年の状況を教えてください!

aodag 2014年は、3月に最新メジャーバージョンの3.4がリリースされました。標準ライブラリに非同期IOのサポートが追加され、イベントドリブンなアプリケーションをよりスケーラブルに作成できるようなりました。

また、パッケージ管理ツールのpipが標準ツールとしてPythonインストーラーに含まれるようになりました。pipは、これまで別途インストールしなければならなかったため、Pythonを使い始める際の手間が少なくなりました。12月にリリースされたPython 2.7.9でもpipが含まれるようになっています。

pip、出世したんだね。イベント関連についても一言お願いします!

aodag 日本のコミュニティでは、国内での5回目のPyConとなるPyCon JP 2014が開催されました。去年はPyDataなどのデータ分析関連の発表が多くなり、Pythonの適用範囲の広がりを感じられるものでした。PyCon JP 2014開催後には、PyData TokyoやPyLadies Tokyoなど各分野のコミュニティも活発な活動を行っています。

今年から一般販売されるパーソナルロボットのPepperの開発環境で使える言語にC++とともにPythonが採用されました。PyCon JP 2014でもブースやクロージングセッションで活躍していました。

Pythonでロボット操作だなんて胸アツ!

Python の2015年を教えてください!

Pythonの2015年の予定はどうですか?

aodag 2015年は、Python 3.5のリリースが9月に予定されています。これまでよりも文法的な変更が少な目な印象です。

Python 2からPython 3への移行は依然として大きな課題となっていますが、移行のコストを減らすための非互換性の緩和も行われています。

今Python 2を使っている人も、これからPythonを使う人にも、ぜひPython 3を使ってみてほしいと思います。

そうなんだよね。コード書いて、動かないと思ったらPython 2と3の違いだったり……。でも、私はどんどんPython 3使っていきたいな!

aodag また、国内最大のPythonイベントPyConJPも2015年に開催が予定されています。PythonはWebアプリケーション以外にもデータ解析の分野が活発になってきています。ほかの分野についても、こういったイベントでの出会いによって同様に盛り上がることを期待しています。

Pythonイベントの盛り上がり、すごいよね! ありがとうございました!

aodag

株式会社ビープラウド所属。業務系システムの会社から、Webサービス、映像系開発の後、BeProudに入社。Pythonは1.5のころから愛用しているので、もはや手足。最近の活動は、Pyramid関連のコントリビュートやパッケージング関連の啓蒙。

Twitter:@aodag

Scala

慧 次はScala! みんなはScala使ってる? ライブラリScalazなどのコミッター、xuwei_kさんにお話を聞いてみよう。

Scalaの2014年はどんな年でした?

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

xuwei_k 4月に2.11というメジャーバージョンがリリースされました。次に計画されている2.12もそうですが、今までに比べて、言語機能の追加よりも安定性に重点が置かれるようになっています。

ユーザーが増えて、安定性が重視されているのかな。

xuwei_k また、国内ではScala祭というカンファレンスが開催されました。スタッフや発表者含めると400人超の大規模なイベントでしたが、チケットも完売し、大盛況のうちに終了しました。

Scala祭の発表者やスポンサーを見てもらうとわかりますが、2013年よりも国内でもScalaを使っているという企業が確実に増えてきていて、本格的に実用的な言語としての地位を確立してきている印象があります。

Scalaで開発したっていうニュースも結構見かけるようになったよね。

Scalaの2015年を教えてください!

今年のScalaのトピックは何かありますか?

xuwei_k Scalaの言語自体に関しては、2014年半ばに今後のロードマップが発表されています。

2015年のうちは、次期バージョンの2.12の開発に注力して、最終的に2.12の安定版が出るのは2016年以降になる予定です。

2.12では色々な機能追加、改善が予定されていますが、個人的に一番気になるのは、Java 8に関連する部分ですね。

Java 8に関する部分?

xuwei_k 2.12からJava 8以上を要求して、invokedynamic命令などの機能を使うようになり、パフォーマンスの向上や、バイナリサイズの削減など様々なメリットがあります。

ふむふむ。これからどんどん盛り上がりそうだね。

xuwei_k ええ。Scalaのユーザー数、今後Scalaを使う企業数については、この勢いのまま今後もしばらく増え続けると思うので、興味を持った人は2015年こそ、ぜひScalaをはじめてみるといいと思います。

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

@xuwei_k

某社でScala、Playframework、Akkaなどを使って仕事をしている。

ScalazやScalikejdbcなどのいくつかの有名ライブラリのコミッターでもある。暇さえあればひたすら色々なScalaのライブラリの動向を観察したり、pull requestをするのが日課。

Twitter:@xuwei_k

Haskell

慧 次は、関数言語つながりでHaskellだよ。Haskellとネットワークプログラミングが得意な山本和彦さんに聞いてみよう! プログラミングHaskellHaskellによる並列・並行プログラミングの翻訳もされているんだよ。

Haskellの2014年はどんな年でした?

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

山本 一言でいうと「並列並行」の年でした。

並列平行?

山本 Haskellの主要コンパイラーは、GHC(Glasgow Haskell Compiler)といいます。GHCには、マルチコア環境に適した軽量スレッドのスケジューラやメモリ割当の仕組みが作られていたのですが、入出力周りがボトルネックとなり、性能が出ませんでした。

2014年4月にリリースされたGHC 7.8ではこれが解消され、30コアぐらいまで並行プログラムがスケールするようになりました。

また、国内では、Haskellの並列並行本が訳され出版されました。最新の並列並行技術が分かりやすく解説されています。

30コア! 並列並行以外は、何かありますか?

山本 依存ライブラリ地獄がほぼ解決されたことが大きいでしょう。

地獄…!?

山本 Haskellコミュニティには、小さなライブラリを作って再利用するという文化があり、プログラムが依存するライブラリの数が多くなるのが一般的です。

そのため、あるプログラムと別のプログラムが要求するライブラリの依存関係に矛盾が起きやすくなり、プログラムをインストールできなくなることが頻繁に起こっていました。これが依存ライブラリ地獄です。

2014年は、サンドボックスの機能が付いたライブラリ管理コマンドが普及したおかげで、この問題がほとんどなくりました。

たいへんだったんだね。でも解決してよかった~。

Haskellの2015年を教えてください!

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

山本 新しいライブラリ管理コマンドでは、依存ライブラリのバージョンを固定するfreeze機能が提供されます。これはHaskellでプロダクトを作っている人たちに大きな安心感を与えることでしょう。2015年は、Haskellがもっと現場で使われるようになることを願っています。

さらに救われるね! ありがとうございました。

山本和彦

IIJイノベーションインスティテュートに勤務。Haskellを使ったネットワークプログラミングを得意とする。ここ一年は、HTTP/2の研究に従事。三人の子供の世話に追われる毎日を送っている。

Twitter:@kazu_yamamoto

F#

慧 関数型言語の最後は、F#! F#に情熱を燃やすF#のMicrosoft MVP(でもあった…!)bleis-tiftさんに聞いてみよう。

F#の2014年はどんな年でした?

2014年のF#のトピックを聞かせてください!

bleis-tift 言語面では、3.1.1、3.1.2とマイナーアップデートがあり、次のメジャーバージョンである4.0に向けての活動が活発にされた年でした。

また、F#は元々ソースコードが公開されていたものの、コア部分へのコントリビュートはこれまで受け付けていませんでしたが、2014年からはコア部分(言語、標準ライブラリ、ツール等)へのコントリビュートが可能になりました。

よりオープンな言語になったんだね。

bleis-tift 開発環境面では、言語サービスであるFSharp.Compiler.Serviceを使ったツールが発展した年でした。これを使ったVisual F# Power Toolsという拡張機能によって、F#での開発効率は格段に向上しました。

F#のイベント関連の話題もありますか?

bleis-tift 日本では夏に「F# Meetup in Tokyo」というイベントも開かれ、多くの方が参加しました。また、ここ数年日本で行われているF# Advent Calendarですが、2014年はこれが海外にも波及して英語版が開催されたのも印象深かったです。

F#の2015年を教えてください!

2014年は、日本でのF#愛が、海外にも伝わったんだね。2015年のF#はどうなりそうですか?

bleis-tift 2015年は、Visual Studio 2015の登場に合わせてF# 4.0がリリースされると思われます。予定では、新年早々に新機能の追加は完了し、1月の終わりにはリリース候補版が公開されることになっています。

F# 4.0では、言語や標準ライブラリの使い勝手を向上させる機能等が追加されるため、リリースが待ち遠しいですね。

開発環境面でも、Visual F# Power Tools等の開発は活発に行われていますので、2015年もF#での開発はより便利になっていくと期待できます。

F# 4.0のリリースまでの予定は、Visual Studio F# Team Blogで確認できるね。F# 4.0楽しみだね!

bleis-tift はい。F#を仕事で使っているという人も以前より見かけるようになってきたので、2015年はより多くの事例が出てくることを願っています。もちろん、趣味でF#する環境も整っているので、ちょっとでも興味が出た方は、ぜひF#しましょう!

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

bleis-tift

なごやではたらくゆるふわF#er

Twitter:@bleis
ブログ:http://bleis-tift.hatenablog.com/

C#

慧 最後は、C#のことならなんでも知っているC#たん! 今年もよろしくね!

C#たん よろしくお願いします!

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

去年のC#、いろいろ話題があったよね? 聞かせてよ!

C#たん 大きな話題は2つ、オープンソース化・無償化が発表されたことと、Roslynの完成が見えてきたことですね。

元々、クラウド製品を中心に、マイクロソフトもオープンソース化が進んでいましたが、それが去年はC#や.NET全体に広がりました。4月にはC#の新しいコンパイラー(コードネームRoslyn、正式名称.NET Compiler Platform)をオープン化し、10月にはこれから.NET全体をオープン化していく方針が発表され、GitHubリポジトリが公開されました。単にソースコードが公開されているというものではなく、ちゃんと、オープンな議論の場があり、オープンにpull requestを受け付けています。

私も頑張ればC#の一部分が作れちゃうかも……! 無償化の話題の方はどんなの?

C#たん Visual Studioに、Communityエディションという、無償版が提供開始されました。教育用や、オープンソース開発への貢献などの用途で、機能的な制限なく(Professional相当の機能がフルに)使えます。

これまでにも、Expressエディションという無償版が提供されていましたが、こちらは、用途制限ではなく機能制限でした。

Visual Studio Communityエディション、いろいろな機能が使えてすごいよね。公開直後にExpressエディションからCommunityエディションに乗り換えたよ。

C#たん オープンソース化や無償版の機能制限撤廃の狙いは以下のようなものです。

  • クロスプラットフォーム化
  • マイクロソフトが.NETの投資をできなくなったとしても有志でずっと保守できる安心感の提供
  • マイクロソフトからの一方通行の機能提供ではなく、開発者コミュニティの活性化

ふむふむ、なるほどー。Roslynの状況はどうなのかな?

C#たん Roslynは、去年の「プロ生ちゃんが聞く」で話した通り、IDEとの連携を考えてC#でC#コンパイラーを、VBでVBコンパイラーを書き直したものです。2013年までは、まず既存の言語機能の再実装、性能の改善やバグ修正が中心でした。しかし、2014年に入り、ついに、C# 6.0/VB 14の実装が始まりました。

C# 6.0/VB 14は、オープンな場を経て仕様が決まった初のバージョンになります。C# 5.0/VB 13以前では、.NETチームが仕様を固めてから仕様公開していました。それが今回から、緩い段階で仕様を公開し、オープンな場でのフィードバックを受けつつ仕様を固めていきました。

このような開発プロセスになったことで、初期の案から仕様が変わったり、C# 6.0/VB 14には入らない(C# 7.0/VB 15に回す)ことになったりした機能もあります。最近になって、C# 6.0/VB 14の最終的な仕様が固まりました。正式リリースに向けた最終段階に入ったといっていいでしょう。

⁠オープン」なC# 6.0とVisual Basic 14が出てくるんだね!

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

今年も.NET関連は、大きな話題がありそうだよね?

C#たん 長らく水面下で動いていて、去年始めてプレビュー公開されたものが、今年次々とリリースされるはずです。.NET全体では、かいつまんで話すと、以下のようなものがリリースされます。

  • クラウド最適化版:同一サーバー内で、アプリごとに異なるバージョンの.NETを使えるようになります。また、C#ソースコードをサーバーに置くだけで、ビルド処理なしでASP.NETを実行できるようになります。
  • .NET Native:アプリストアのサーバー上でコンパイルを行い、モバイル端末には完全にネイティブ化した状態でアプリを配信できるようになります。
  • 新しいJITエンジン:SIMD命令に対応し、これまで.NETが苦手としていた大規模データ処理を高速化します。

C#は、どうかな?

C#たん C#も、先ほど説明した通り、ついに新しいバージョンである6.0がリリースされます。Roslynの正式リリースまでは既存機能の再実装だけで手一杯かと思われていましたが、C# 6.0として、細々とした便利な機能が追加されることになりました。

ただ、大きめの機能はいったん6.0からは外れています。これ以上リリースを遅らせたくないんでしょう。その「大きな機能」は、C# 7.0で実装されることになるはずです。C# 6.0のリリース作業と並行して、C# 7.0の仕様策定やプレビュー実装もオープンに行われるはずなので、今年はそこも注目です。

リリースされる6.0、そして次の「大きな」7.0に注目だね。今日は、楽しい話をありがとう!

C#たん

自分のことは棚に上げて、⁠萌えればいいってもんじゃないですよ?」が信条。その正体は某ゲーム内においてC#er達の精神的ケアを司るカウンセリング用人工知能。現在はGM権限こそはく奪されているものの、チート性能を持つ「ナビゲーション・ピクシー」として活躍中。嘘です。

Twitter:@csharp_tan

おわりに

慧 以上、新春スペシャルインタビューでした! どうだったかな? どの言語も使ってみたくなったでしょ? いろいろ選択肢があって嬉しいよね。あと……うん、わかってるよ。あの言語とかあの言語とかの話がないってことでしょ? それはね、ぜんぶ妖怪のせいなんだよ! 次の機会は、あなたともお話できると嬉しいな。

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

おすすめ記事

記事・ニュース一覧