kmizuの日記

プログラミングや形式言語に関係のあることを書いたり書かなかったり。

Scala DaysにおけるKeynoteの歴史(或は、Rod Johnsonの"Scala in 2018"について)

注:このエントリの結論は、これまでScala Daysに参加してきた経験と、一連の騒ぎにおける対応から推測したものであり、決定的な証拠があるわけではないことをお断りしておきます

さて、皆様いかがお過ごしでしょうか。近頃、海外のScala界隈では、Scala Days 2013におけるRod JohnsonのKeynoteである"Scala in 2018"が発端となって、海外のScalaコミュニティを中心に、Twitter上での炎上が起きています。

特に、

  • Typesafeのboard(顧問?)の一人であるRod Johnson(彼はEJB批判やSpring Frameworkの作者としてJavaコミュニティではよく知られた人物です)がKeynote中で、Scalaコミュニティの主要コントリビュータの一人が開発したHTTPクライアントライブラリdispatchを例としてScala界隈における記号の濫用について批判したこと
  • 批判点はdispatch-classicに対するものであって、現在のdispatchでは既に指摘の問題点は改善されていること
  • その他の問題点についても、Scalaコミュニティでは既知のものが多く、既に改善に向けた努力および実際の成果があるにも関わらず、その点について言及しなかったこと

などがあり、「個人攻撃だ」「特定ライブラリのAPIについて語るなら、最新のAPIを調査すべきであって、昔のAPIに語るのは的外れ」「Scalaはエンタープライズ言語になるべきではない?」など様々なツイートが飛び交っています。実のところ、私も彼のKeynoteは現地で聴いているのですが、それに関する感想は既にツイッターにつぶやいたので詳しくは述べません。

このエントリでは、Scala Days 2010から全て参加してきた一人として、ちょっと俯瞰してこれまでのScala DaysにおけるKeynoteについて語ってみることにします。

Scala Days 2010

  • Martin Odersky, Scala: Where we are, where we go to. *1
  • Kunle Olukotun, A Domain Specific Language Approach to Heterogeneous Parallel Programming Using Scala

Scala Days 2011

  • Martin Odersky, State of Scala
  • Doug Lea, Supporting the Many Flavors of Parallel Programming

Scala Days 2012

  • Martin Odersky, Where is Scala going?
  • Guy Steele, What Scala and Fortress can learn from each other
  • Simon Peyton-Jones, Towards Haskell in the Cloud
  • Anthony Rose, Re-inventing the Media and Television industry

Scala Days 2013

  • Martin Odersky, Scala with Style
  • Rod Johnson, Scala in 2018

以上が、これまでのScala DaysのKeynote一覧です。発表者はそうそうたる面子です 。ただ、Martin*2の発表は基本的にKeynoteと呼ぶのにふさわしいものでしたが、彼以外のKeynoteは驚く程一貫性がありません(これは、Scala Days 2010から毎年参加していた人間としての実感です)。

Kunleの発表はScalaに関連していたものの、軸は彼の研究にありました。Doug, Guy, Simonについても同様です。Dougの発表はScalaに関係ない並列プログラミング一般の話がほとんどでしたし、Guyの発表はFortressとScalaの構文的な類似と相違という観点で興味深い発表でしたが、軸は彼が開発した言語Fortressにありました。SimonにいたってはScalaについての言及はごく一部で、内容のほとんどがHaskellに関するものでした。AnthonyはZeeboxにおけるScala採用事例を語っていたという点でやや他と異なっていましたが、Scala Daysの「Keynote」の一貫性のなさという印象をより深めるだけでした。


さて、今年のRodによるKeynoteです。彼が単にこれまでと同様、Spring作者でありJavaコミュニティの著名人物という立場で「招待講演者」という事で発表したのなら大して問題にならなかったのではないかと思います。問題は、彼の現在の立場がTypesafeのboardであることです。このため、彼によるdispatch(-classic)批判をはじめとした、やや古いScalaコミュニティ批判に対して、Typesafe社が公式的にScalaコミュニティの主要なコントリビュータに対して不適当な批判をしたと捉えている人が少なからず居るようです。

ただ、これまでのScala DaysにおけるKeynoteの歴史(あるいは一貫性のなさ)を踏まえると、「Typesafeのboard」であるRod Johnsonが、不当なScalaコミュニティ批判をしたという問題のとらえかたは正しくなくて、実は単にRod個人としての見解なのではないかと思います。だとしても、Rodが現在のポジションでKeynoteで発言したことがどう捉えられるかをちゃんと把握してなかったことになるわけで、それはそれで別の問題がありそうですが。個人的にはTypesafe Blogで公式的な見解出した方が良いんじゃないかと思う次第。TypesafeでScalaやAkka、Playの開発を行っている開発者がTwitter上でのリプライに多少なりとも時間を割いているのをみていると、とても不毛だと思うので*3

*1:正確にはこの回のみ、"Opening Talk"となっていますが、位置づけは変わっていないので、Keynoteに含めることにします

*2:以下、基本的にファーストネームで呼称します

*3:近いうちに収束するとは思いますが