2014年09月16日
【 募集要項PDF 】新規事業開発にチャレンジしたい人募集! >>
弊社はPHPなどの言語の他に、今熱いScalaで開発をしているIT企業です。
ここでは、なぜその最先端のプログラミング言語Scalaを使うのか紹介したいと思います。
(Scalaのプロジェクトの他に、PHPをメイン言語として使っているプロジェクトもありますので、関数型言語をご存じない場合でも内定は充分可能です。プロジェクトの配属は面談をもって適正な場所に決定しますので、まずは面談を通じて弊社との相性をご確認ください。)
Scalaはオブジェクト指向言語と関数型言語の特徴を統合した、マルチパラダイムのプログラミング言語である。名前の「Scala」は、英語の「scalable language」に由来するものである。
引用元:[Scala] - Wikipediaより
Scalaは2003年にスイス連邦工科大学ローザンヌ校(EPFL)のMartin Odersky教授により考案された比較的新しい言語です。弊社の主要なプロダクトにおいてはScalaを用いて開発を行っています。
日本国内でもコアプロジェクトにScalaを用いる事例は後を絶ちません。また、その勢いは国内だけにとどまらずTwitter社が2008年にバックエンドサーバーにScalaを導入したのを皮切りに、世界中の大企業がScalaに注目し導入に踏み切っています。
しかし、新しく考案された言語の中で、革新的なアイデアを採用したと言われる言語は少なくありません。
ではその中で、なぜScalaだけが脚光を浴び続けているのでしょうか。
Ruby on Railsは、世界中で支持し続けられているWebフレームワークのうちの一つであり、MVC思想をRubyのコードを書くのが楽しくなるような世界に持ち込み、絶大なブームを巻き起こしました。
Ruby言語は今なお影響力を持ち続けています。
Scalaもその影響を受けた言語のうちの1つであり、似た特徴を持ちます。
Rubyを初めとする、動的型付け式の言語では、Javaなどでは冗長であると思われた型宣言をする必要はありません。
これにより本当に必要なことを書くことに集中でき、生産性も高まります。
Scalaは静的片付け言語であり、関数型言語の代表的な特徴である型推論を採用し、型が明らかな部分では型宣言をする必要がありません。
そのコード量はRubyのようなスクリプト言語かと見まごうほど少ないもので、多くのロジックを記述できます。
また、Javaを始めとする多くの静的片付け言語と同様に、コンパイル時に記述ミスを検出することができるので
簡単にコードを記述しながらに、簡単にエラーを検出できてしまうのです。
JVM上で動くことは、欠点にもなり得ますがJavaのWWWにおける歴史的な稼働実績には枚挙に暇がありません。
Javaの資産を利用できるScalaではJavaのライブラリを用いるだけでも、大変幅広いプログラミングを可能にします。
1度書いたことを2度書く必要はないのです。
でもちょっと待って、
これらの問題をScalaは全て解決します。
Javaのライブラリを使いやすくしたScalaのライブラリが大変充実しているのはそのお陰です。
しかもその実行速度は、Javaと同レベルの非常に高いパフォーマンスです。
その証拠に、非常にシビアなパフォーマンスを要求されるアプリケーションであるApache Sparkの記述言語はScalaです。
他にも参照透過性の高さによる、高いレベルでの並列実行性をいとも簡単に実現したり、オブジェクト指向言語的な多相に加えて、アドホックな多相を利用可能であること、そしてモナディックな演算…他にも数えきれない程の先進的な言語のパワーを提供します。
またこれらのほぼすべてを軽量なシンタックスで実現しているのです。
日本でのScalaユーザー達の数は、JavaやC/C++言語のユーザーに比べるとそう多くはないでしょう。
ですが、比較的少数ながらもそれを補ってあまりある強力なパワーを持つ人々が、日本・世界のScala界を牽引しています。
コミュニティを通じて技術を高め合う文化がScalaにおいて大きくなりつつあります。
日本最大のScalaカンファレンスであるScalaMatsuri2014では300枚のチケットが瞬く間に完売し、2日間のイベントは大成功を収めました。
これらの特徴を踏まえ弊社の次世代を創造するに最適な言語はScalaであると考え、日々技術的研鑽を積み、プロダクトへ活かし続けています。
まだ見ぬ高みを目指して。
【募集要項PDF】新規事業開発にチャレンジしたい人募集!>>