2010年11月23日

【IT用語】Scala(プログラミング言語)

Scalaとは、キックボクシングのルールに「投げ技」「グラウンドでの打撃」を組み込んだMMA(総合格闘技)系プログラミング言語である。

HaskellやOCamlなどのレスリング系(もしくは柔道系)の選手が多く所属する言語と、Javaを代表とする打撃系の言語、双方の選手が参入できるようにバランスを取ったルールを採用している。

打撃系の選手がグラウンドテクニックを習得するために、入門用言語としてScalaに参画するケースもあるようだ。

まだマイナーな言語ではあるが、試合展開が間延びすることが少なく選手や観客からの受けも良いので、今後は参入する選手も増えることが予想される。

選手の性質によって試合内容が大きく変わるのが、Scalaの1つの特徴と言える。Javaの試合を見ているような立ち技のみに徹する展開になることもあれば、Haskellの試合のようにグラウンドでの展開が長く続く場合もある。

Scalaの主催者はグラウンドでの展開が多くなることを期待しているフシがあるが、ご存知の通り競技人口は立ち技系の方が圧倒的に多いのが現状だ。主催者はスタンドとグラウンドの間で現実的なルールを採択するのに頭を悩ませることも多いのではないだろうか。


ScalaはJavaと同じくJVMという格闘技団体の傘下に入っている。スタンド時の打撃ルールはJavaと互換性があるため、Javaの選手にとっては参入しやすい言語であると言えるだろう。

逆にJava以外の言語を主戦場にしている選手にとっては、Javaの打撃テクニックOCaml的なグラウンドテクニックの双方を体得しなければならない、学習コストの高い言語として映るかもしれない。

言語初心者が参入するには少し敷居が高い言語であることを考えると、今後のScalaの発展は、既存のJava系の選手はもちろん、スタンドでの関節技が認められることから立ち技界のバリートゥード・プログラミング言語とも呼ばれるRubyや、空手に近い様式美を持ち「これは格闘技ではない、スポーツだ」とも称されるPythonなどの、世間で認知されている人気言語の選手たちに対してどれだけ訴求力を持てるかが鍵になってくるのではないだろうか。