Scala Days 2015 San Francisco に参加してきました (2)


(前回から続く)

CTO Roundtable の後はレジストレーション、そして Odersky先生のキーノートです。

1日目 (続き)


[16:00] レジストレーション

今回のメイン会場である Herbst Pavillion へ。

reg1

中に入ると、パーティ用のフロア1とスポンサー各社のブースが目に入ります。

reg2

ノベルティはこのような感じ。Tシャツのデザインは昨年のものと同じですが、背中の Scala ロゴがなくなっていました。また、参加者の名札と一緒に3日間のプログラムや会場地図がつづられており、これがとても便利でした。

novelty

artima本のブースも盛況でした。(Scala Puzzlers が一番人気)

reg4

さらに奥へ進んだ先が、キーノートの会場です。

reg5

[17:00] オープニング

ステージに Typesafe社の Josh Suereth氏、Dick Wall氏、EPFLの Heather Miller女史が登場し、Scala Days が開幕!

会場のボルテージも一気に上がります。

open1

“Don’t be a jerk.” (イヤな奴になるな) といったおなじみの行動規範や会場の説明、昨年好評を博した 47 degrees 社開発の専用スマートフォンアプリ、セッションに対する投票システムの紹介などが行われました。

open2

そして、いよいよ Odersky先生が登場します。

[17:10] Scala – where it came from, where it’s going

  • スピーカー: Scala 生みの親, Typesafe 共同創設者 Martin Odersky

od1

Scala はどこから来て、どこへ向かうのか。というテーマですが、Scala の将来の話はしません。

なぜなら、Scala は Hascalator へと生まれ変わるからです。

『Scala は Haskell への ゲートウェイ・ドラッグです』

od2

と笑いを取った後で本題へ。

Scala のこれまで

まずは、Scala のこれまでの軌跡とコンセプトが紹介されます。

  • Scala の前に学んだ/作った言語
  • Scala 開発の動機: XMLリテラルを実現するために、配列の参照を [] ではなく () に、型パラメータを <> ではなく [] にした。それでやっと、<> が使えるようになった。(笑)
  • Scala 言語自身がスケールするように
  • 型システムこそ Scala の中心: 安全性と柔軟性/使いやすさの両立を目指す

Scala の現在

続いて、Scala の現在と称して のエコシステム(生態系)の紹介。JVM と同列に JS が書かれていることからも、Scala.JS への期待の大きさがうかがえます。

od3

Scala.JS は 2015/2/15 にバージョン 0.6 がリリース。実用段階に入った、と明言されました。

その他のトピックとして

  • sbt の改善 (インクリメンタル・ビルドなど)
  • Eclipse, IntelliJ IDEA, Ensime (Emacs用プラグイン) といった IDE/エディタの充実 (implicit も追いかけられる)
  • Coursera のオンライン授業2個2

について言及がありました。

Scala のこれから

TASTY

最初に紹介されたのは、TASTY3を中心としたコンパイル構造の変化について。

以下のような 2段階のステップが踏まれるようになるそうです。

  • 1. [.scala => TASTY]

    Scala コードをコンパイル(scalac)して、まず TASTY という中間ファイルを生成

  • 2. [TASTY => .class | TASTY => .js]

    TASTY をもとにパッケージングツールやリンカーが処理を行うことで、

    プラットフォームに応じた成果物が生成される

    • クラスファイル (JDKの場合)
    • minimize された JavaScriptコード (Scala.JSの場合)

これにより、これまで課題としていたバイナリ互換や、プラットフォーム選択(JDK 7? 8? 9? 10? JS?)が可能となります。 また、最適化・コード分析・リファクタリングなどへの恩恵も受けられるようになるとのことです。

dotc の取り込み

続いて、開発中の dotc コンパイラ (dotty)の機能を取り込むことについて説明がありました。

主な変更点は以下です。

  • XMLリテラルを string interpolation に: xml"""<A>このスライド</A>"""
  • プロシージャ構文の廃止: def foo { println(1) } => コンパイル不可
  • トレイトがパラメータを受け取れるように: trait 2D(x: Double, y: Double)
  • existential type4を簡単に: List[_]
  • 高階型(higher-kinded types)を簡単に: type Two[T] = (T, T)
検討中のアイデア

検討中のアイデアとして以下が挙げられました。

  • 型の union (T&U) と intersection (T|U): まだ未解決の課題もあるとのこと
  • implicit function types: 関数型言語としての作用(effects)に対して、より Scala らしいアプローチができるのではないかと考えられている

最後に、Scala は登場から 10年が経っているのに競合する言語が少ない、との発言がありました。言われてみれば、確かに Java という膨大な資産の恩恵を受けつつ、オブジェクト指向と関数型指向をバランスよく取り入れた言語は、あまり見当たらないかもしれません。

質疑応答

質疑応答では、「言語のルールや、関数型のエッセンスが初学者に難しすぎるのではないか?」という質問がありました。

明確な答えはありませんでしたが、近年は書籍の他に Coursera や、BoldRadius5等のトレーニングを主軸とする会社の登場など、教育のための環境が徐々に整いつつあります。そのような学習ツールを活用すると良いのではないでしょうか。(他にも会話した人の中で、独自の教育プログラムを持っているという方もいました。)

[18:30] 歓迎パーティー

料理とビール、ワインなどが用意されて、パーティーとなりました。

量は(アメリカとしては)少し控えめでしたね。

party

今回はベルリンと比べ、日本からの参加者と多く出会うことができました。

各社のブログも、非常に参考になります。勉強させていただきます。

(つづく)

  1. Scala Days の期間中ずっと、雑談&休憩スペースとして使えました []
  2. 私も、2つとも受講しました。非常におすすめです。 []
  3. Serialized Typed Abstract Syntax Trees が由来。3日目のクロージングでは、Josh Suereth 氏から「TASTY は tasteless という噂もある」というジョークも飛び出しました。 []
  4. 日本語訳が分かりませんでした []
  5. Scala Days プラチナスポンサー []

Scala Days 2015 San Francisco に参加してきました (1)


こんにちは。@mogproject です。

世界最大の Scala イベントといえば、Scala Days !
今年は 3月:サンフランシスコ(アメリカ)、6月:アムステルダム(オランダ) と初の年2回開催です。

私も昨年のベルリンに続き、サンフランシスコに飛んでまいりました。1
その雰囲気を少しだけお伝えしたいと思います。

会場

今回の会場は、アメリカ・サンフランシスコの海岸沿いにあるフォートメイソン(Fort Mason)。
元々はアメリカ海軍の基地だった場所で、古い建物や倉庫などが当時の趣のままに利用されている、一風変わったイベント会場です。
(横浜の赤レンガ倉庫みたいな感じでしょうか)2

fortmason

ゴールデン・ゲート・ブリッジが目と鼻の先という素晴らしいロケーション。

goldengatebr

周りには広い公園があり、休日は多くの人でにぎわいます。

park

少し歩くと、映画『ザ・ロック』でおなじみのアルカトラズ島が眼前に現れます。3

alcatraz

 

1日目


CTO Roundtable

Scala Days のプログラムには載っていないのですが、Odersky先生の Keynote が始まる前に
CTO Roundtable という催しが開催されました。

[12:00] 開場

軽食が用意され、コーヒーを片手に雑談。随所でネットワーキングが行われていました。

ctoroundtable

そして、プレゼンテーションが始まります。

[12:50] GO REACTIVE

『時代は変わった。今こそ Reactive!』と熱弁を振るいます。

jonas

[13:15] Going Reactive With Typesafe Reactive Platform

クラウド・ドキュメンテーションのサービスを Play2+Scala+Akka で Reactive に作り変えるまでの過程と、エンジニアのチームビルディングに必要な 5×5 の鉄則を紹介してくれました。

tiho

[13:35] Hewlett Packard ストレージシステム分析への Scala適用について

  • スピーカー: Hewlett Packard リード・アーキテクト Jeff Dutton

少人数のプロジェクトで Scala/Play/Spark を採用した事例。
ちなみに、プロビジョニング・ツールは Chef よりも Ansible が気に入っているとのこと。

jeff0

[14:10] Akka Java Implementation

  • スピーカー: Hewlett Packard エンジニアリング・アーキテクト Hugh McKee

Java で Akka を利用している事例。Akka への愛があふれていました。

hugh

[14:30] Monolith to Microservices with Scala

LAMP で構成された一枚岩のシステムを、Scala でマイクロサービス化した話。

『リファクタリングはよく、トラックのタイヤを履き替えるのに例えられるが全く違う。宇宙ステーションを移設するくらい慎重にやらないと、大変なことになる』という言葉には実感が伴っていました。

ajai0

最後にその苦労の過程であるコミットログを可視化した映像が流れると、場内は拍手喝采となりました。

ajai

CTO Roundtable では、Martin Odersky 先生をはじめ、CTO の Jonas Boner 氏、副CTO の Viktor Klang 氏といった Typesafe社のコアメンバーと言葉を交わすことができました。
またその他名だたる企業のCTOクラスと交流できたのは、とても貴重な体験でした。

ちなみにアメリカでは少なくとも 2社のアドテク企業が Scala を採用しているそうです。
また、とある DSP4では D言語を使っているとか。

(つづく)

  1. 実はこのイベントの前にノースカロライナ州立大学のクラウドの取り組みを視察したりなどしたのですが、それはまた別の機会にレポートします []
  2. 昨年 akka meetup で来日した Konrad Malawski 氏の奥様 Ketty さんいわく、サンフランシスコは長崎と似ているとのこと。どちらも港町だし、異文化との融合が見られ、そしてシーフードがおいしい! []
  3. この写真は Scala Days前日に撮ったものですが、この直後サイクリング中の Odersky先生と偶然すれ違ってビックリ []
  4. Demand Side Platform []