mike-neckのブログ

Java or Groovy or Swift or Golang

Javaでできることが云々

あまり火に油を注ぐようなことはしたくないし、議論されていることの内容が僕の頭で理解できるレベルを超えているので、あまり書きたくはないけど、まあ雑感という感じで。

ScalaでできることJavaでできること以上のことはできない」的なツイートの後、まあScalaistの方々(Scalaやる人の名前は水島さんから教えてもらいました)からいろいろと反応があって、まあそのツイートのやりとりを見ていました。最初はクロージャーから始まって、クロージャーがコンパイルされたコードがJavaの無名クラスと同じなので「これだからScala厨は…」云々となって、unsigned intがないとか、JNIを使うとJIT最適化が妨げられる的な話になって、rubyはグルーコードであってとなって、突然ScalaJSからV8の実行速度の話にと論点が移動していっているので、単純に話が噛み合ってないなという印象を持ちました。

僕の足りないおつむで考えているScalaを採用する理由は次のようなものだと思っています。

  1. PHPRoRなどでやっていたサービスがヒットして、PHPRoRでは辛い部分である(と書くには僕はPHPRoRのことはよく知らないですけど…)スケーラビリティの解決に、Scalaのスケーラビリティを採用したい
  2. PHPRubyなどの型がなくて安全でないシステムを、Scalaの強力な型推論を用いて安全にしたい(テストをしなくていいというわけではない)
  3. チームでデータの扱い方・考え方を共有することによってチームでの開発を効率化したい

特に1.や2.で書いたようなメリットを3.で書いたようにチームで共有したいというのは特にScalaを開発言語として選択するポイントなのかと思っています(もちろん違うところもあると思います)。件の方のこれまでのツイートを見てみました。内容的から、件の方は競技プログラミングでとにかく問題を速く解くということに情熱をお持ちの方かと思われます。したがって、関心はマシーンの能力を最大限活用することであり、チームで品質の高いアプリケーションを作成することにはないのかもしれません(もちろん、何らかのお仕事をされていると思いますので、チームでの開発にも関心はあるかと思いますが、件のツイートあたりではその方面への関心はないように思われました)。一方、Scalaの普及に邁進されている方々はチームが送り出すアプリケーションの品質の高さに焦点があるわけですし、Scalaを使うことで楽なアプリケーション開発を目指しているわけで、マシーンの能力を引き出すことの優先順位は低いのである(もちろん、無視しているわけではない)と思っています。

バックグラウンドが違う人が、それぞれの主張を「いやいや、違うでしょ」と言うわけだから、まあ不毛な議論になるのは必然な気がします。この件に関しては完全に第三者の立場で見ていたわけですが、相手がよいと思っているものを否定するのは、双方にとって無益なことのように思いました。


以上が雑感ですが、不特定多数の人が目にするWebのコンテンツは、刺激的なタイトル、過激な言葉を並べることで、カンフル剤のようにアクセスを伸ばすことも可能でしょう。しかし、その一方でそれにより無益な議論、負の感情を生み出すこともあります。まだ見ぬ読者のためにも有益なコンテンツを過剰な演出を用いず適切な表現でもって提供していきたいと、月並みな意見と自戒の念をこめて、一連の騒動の雑感を書きました。


というか、力もないおじさんなので、マサカリがくるともう死ぬしかないんじゃよ