体験を伝える―『ガジェット通信』の考え方

面白いものを探しにいこう 本物を体験し体感しよう 会いたい人に会いに行こう 見たことのないものを見に行こう そしてそれをやわらかくみんなに伝えよう [→ガジェ通についてもっと詳しく] [→ガジェット通信フロアについて]

Scalaにまつわる疑問や誤解に一問一答!Scalaは難しくない!?─by Scala福岡2017

Scalaに関しては次のような噂がある

ドワンゴ水島宏太さんは、Japan Scala Associationの代表理事。水島さんは自らを言語オタクと語り、Scala以外にもNemerle、Rust、Standard MLなど数々の言語を愛しているという。また、Klassicというプログラミング言語の作者でもある。

まず水島さんは、世間でよく聞くScalaにまつわる疑問や誤解の例を挙げた。
Scalaって使われてるの?
Scalaは難しすぎて実用にならない?
Scalaを使うには圏論の知識が必要?
Scalaを使うには関数型プログラミングの知識が必要?
Scalaは記号メソッドが濫用されている?
Scalaは遅い?
Scalaはコンパイルが遅い?

上記の中には正しいモノもあれば、正しくないモノもある。今回はそれを整理をして、水島さんの解説から情報を得た上で、Scalaを使うかどうか判断し、導入するための障壁を下げていただきたい。

株式会社ドワンゴ 水島宏太さん

Q1. Scalaって使われてるの?

A.世界中で使われている。
海外では、Twitter, Starbucks, Verizon, Goldman Sachs, Foursquare, MorganStanleyなど、国内ではドワンゴ, はてな, サイバーエージェント, ヌーラボ, エフ・コード, セプテーニオリジナル, Maverick, DMM.com, ビズリーチほか、Scalaを採用している企業はたくさんある。

IEEE Spectrumの調査によると、ScalaはWeb系の言語のランキングにおいて8位。このランキングを見ても、そこそこ信頼されて使われている言語であり、マイナーな言語では決してない。
【参考】IEEE Spectrum The Top Programming Languages 2017

Q2.Scalaは難しい?

A.はい、難しいです。
Scalaは世界でも難しいと思われているが、トレーニングのための適切な資料と講師さえいれば育成することは十分可能。実際ドワンゴでは自分たちが作ったScalaを使い、水島さんたちが講師となり、新人研修を行っている(※以下、参考資料1)。

はてなでも研修をやっている(※以下、参考資料2)。また、Scalaエンジニアを育成するサービスを提供している人(企業)もあると思われる。
参考(1): ドワンゴオリジナルの、新卒エンジニア向けの研修資料
参考(2): はてな研修用教科書

Q3.Scalaを使うには圏論の知識が必要?

A.これは断じて、いいえ。
そうしたイメージはあるが、それはScalazCatsなど、一部のライブラリが名前を圏論の用語から拝借したことからくるイメージでしかない。もちろん、先のようなライブラリを使うときでも圏論の知識は不要であり、ほとんどのライブラリは圏論とは関係がない。

Q4.Scalaを使うには関数型プログラミングの知識は必要か?

A.必要。
ただし、高度な知識は必要はない。必要な知識・技能としては、Scalaの標準(不変)コレクションライブラリの使い方、不変オブジェクトの作り方や活用方法。あると便利な知識・技能としては、モナドの使い方といったところ。

不変オブジェクトの扱い方やテクノックがわかっていれば、あとは派生的なこと。特に高度な知識は必要ない。

Q5.Scalaは記号メソッドが乱用されている?

1 2 3次のページ
CodeIQ MAGAZINEの記事一覧をみる
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。