知っているようで知らない!scalaとは?

Fotolia_80675050_Subscription_Monthly_M
The following two tabs change content below.
ITプロパートナーズ 代表エージェント 木村 直人

ITプロパートナーズ 代表エージェント 木村 直人

「すべらない起業論」編集長であり、エンジニアの起業・独立・フリーランス支援のプロエージェント。大手損害保険会社を経て、I&G Partners(現アトラエ)入社。成功報酬型求人サイト「Green」の立ち上げから関わる。その後、「IT起業家・フリーランスの自立を支える」というビジョンの元、「週2日からの業務委託案件を紹介する、ITプロパートナーズ」を立ち上げる。 ■BestVenture100に創業初年度で選出 ■取材記事:自立する覚悟が、働き方を変える
ITプロパートナーズ 代表エージェント 木村 直人

最新記事 by ITプロパートナーズ 代表エージェント 木村 直人 (全て見る)

プログラミングをこれから学ぼうとしている方や、これから研修や実務に入る新人ITエンジニアの皆さんの中にはScalaを学習したい。という方も多くいらっしゃるかと思います。
Scalaはオブジェクト指向言語と関数型言語の特徴を統合したマルチパラダイムのプログラミング言語です。

ScalaはJavaの良さを継承し、かつスクリプト言語や関数型言語のメリットを吸収した言語で、Javaの後継を担うものとして注目されています。
Scalaの利点は、Javaの良さを継承しつつ、スクリプト言語や関数型言語の良いところも吸収し、先進的な機能や文法を取り入れている点にあります。
また、簡易に並列処理プログラミングを行うことができるライブラリも付属しています。

Scalaは、海外ではTwitterやLinkedInなどが利用していることで知られ、普及しています。

国内でのScalaのユーザー企業としては、ドワンゴやGMOメディアといったネット企業、フリュー等のソーシャルゲーム開発企業、NTTデータ先端技術等のエンタープライズ領域の企業があり、今後多くの企業でScalaを使用したケースが増えてくると思われますので、今の内にScalaの知識を習得しておくことで、エンジニアとしての評価も上がるでしょう。

エンジニア・プログラマ・デザイナーの新しい働き方を模索してみませんか?今より年収がグッと上がる働き方をご提示できるかもしれません!弊社(ITプロパートナーズでは,週2日からこなせる仕事を紹介しております。まずはこちらより、弊社のサービスにご登録後、お仕事の詳細をごらんください!

scalaとは?

Scala(スカラ)は2003年に誕生した、オブジェクト指向言語と関数型言語から成る新たなプログラミング言語です。
これはオープンソースのプログラミング言語で、コンパイル後はJavaVM上で動作するようになっており、Javaの資産を引き継ぎ、かつJavaには無い新たな仕組みであるため、今後の発展が予想されています。Scalaはコーディングのステップ数が少ないので、エンジニアにとっても使い勝手が良いという点も多くの支持を得ている理由です。

Scalaの特徴は、JavaやC++のようなオブジェクト指向言語であり、かつHaskellやF#のような関数型言語であることです。
実績としては、Twitter社やLinkedIn社等、アメリカの大手IT企業でも採用されています。

Scalaに関する書籍なども出版されているので、独学で学ぶのであれば、これらを有効活用して勉強するのが良いでしょう。
Scalaはまだ一般的に普及しているレベルではないので、Scalaについての特別な資格や検定のようなものはありません。
しかし、今後は多くの利用者が見込まれるので、民間の資格ができるものと思われます。

Scalaはアメリカでは広く普及しているのに対し、日本国内では徐々に利用されるようになってきたものの、まだまだメジャーではありません。
そのため、Scalaエンジニアなどの転職情報やScalaによる開発案件の募集はほとんどありません。
しかし、今後はScalaによる開発が増えることは間違いないでしょうし、今のうちにScalaを使えるようになっておくと、エンジニアとしての需要も高まるでしょう。

エンジニア・プログラマ・デザイナーの新しい働き方を模索してみませんか?今より年収がグッと上がる働き方をご提示できるかもしれません!弊社(ITプロパートナーズでは,週2日からこなせる仕事を紹介しております。まずはこちらより、弊社のサービスにご登録後、お仕事の詳細をごらんください!

scalaでできることとは?

Scalaは他の言語と同様の一般的な機能は全て保有しています。特にScalaの特徴的な機能として挙げられるものは以下の通りです。

1.Javaの環境が利用できる

Javaの利点であったどのマシンでも動作が出来るという点は、Scalaでも同様です。ですので、Windows、Mac、Linuxに関わらず全て動作します。
そのため、別のマシンで開発したものを、別のマシンでアップし、管理することも可能となります。

2.Javaとの互換性が良い

今までの開発言語として良く使われてきたのはやはりJavaですので、Javaとまったく互換性のない言語を使うのは苦労すると思いますが、Scalaであれば、JavaからScalaを呼び出したりできますので、Java開発を行っているエンジニアにはそれほど抵抗なく受け入れられる言語となっています。

3.コードがシンプル

Scalaは関数型言語になるので、数式のシンプルな言語となります。さらにスクリプト言語のようにライトに書くことが出来るのでJavaよりもJabaコードの記述量が少なくて済みます。

4.最新の技術に合わせた言語設計

Javaでは既存システムとの互換性の保持の為に先進的な機能の取り込みができなかったことから、Scalaでは最新の技術に合わせた言語設計がなされています。Javaでは不足な部分をScalaで補完することができることから、Javaベースで今まで開発してきた企業からも求人等が多く寄せられます。

3 scalaの特徴は?

Scalaは、他の言語の良いところを取り入れた、ハイブリッドな言語仕様が特徴といえます。特筆すべき特徴を挙げておきます。

・Scalaは、JVM上で動作します。Scalaのソースコードをコンパイルすると、JVM上で実行可能なclassファイルになります。JVM上で動作する言語ですので、Javaのライブラリを利用したり、JavaからScalaのライブラリを呼び出したりと、相互利用が可能です。

・Scalaには対話型の実行環境(REPL)があります。Scalaは、動的言語ではなくコンパイルして実行するタイプの言語ですが、対話型の実行環境(REPL)によりコードを打ち込んで動作を確認しながらのプログラミングが可能です。

・オブジェクト指向と関数型言語の特徴を組み合わせています。Scalaでは、関数をオブジェクトとして扱うことができますし、高階関数も利用できるなど、関数型言語からさまざまな特徴を取り入れています。

・豊富なコレクションクラス(Array,List,Set,Map)が用意されており、高階関数を組み合わせてコレクションの操作が簡単に行えます。

・Scalaは静的型付け言語ですが、型推論によって型の記述を省略することができます。変数や関数の宣言時に、コンパイラが型を推論してくれるため、型の指定をいちいち行わなくてもよいのです。

・パターンマッチングという機能を利用することで、複雑な条件分岐を簡潔に記述することができます。

・Trait(トレイト)という、実装を持つことができるインターフェイスを利用して、Mix-Inができます。

・暗黙の型変換(implict conversion)などを利用して、DSL(ドメイン固有言語,Domain-Specific Language)を作成しやすくなっています。

・マルチコア時代を意識した、分散処理ライブラリ(Actorライブラリ)が用意されています。上記は一例ですが、Scalaは少ないプログラミングで柔軟な対応ができるような言語となっています。

エンジニア・プログラマ・デザイナーの新しい働き方を模索してみませんか?今より年収がグッと上がる働き方をご提示できるかもしれません!弊社(ITプロパートナーズでは,週2日からこなせる仕事を紹介しております。まずはこちらより、弊社のサービスにご登録後、お仕事の詳細をごらんください!

scalaの将来性って?

Twitter社がScalaを利用しているのは有名ですが、他にも位置情報を利用したfoursquareはScalaで構築されたLiftというWebフレームワークを利用していますし、GTDツールとして有名なRemember The MilkもScalaの利用を検討しています。

アメリカのIT企業がScalaを導入している理由としては、Java Virtual Machine(以下JVM)上で動くオブジェクト指向+関数型言語というのが大きいです。
簡潔で柔軟な記述が可能であり、マルチコアを意識したライブラリがあり、JVMでのスケールメリットを享受できることが、最大のメリットとして挙げられるでしょう。

Javaは数多くのシステム開発構築に使われてきた言語であり、長い間多くのエンジニアに愛用されていました。
Javaは、サーバー側、クライアント側の両面から多くのシステムに用いることができ、汎用性のある言語です。
そのため、Javaをメインスキルとして活躍しているプログラマは多く、人気となっています。
ScalaのシステムはJavaに書き換えることが可能なので、実際に一部の大手企業では本格的にその動きが進められています。
今後Scalaを使えることが、Javaプログラマーにも求められるスキルとして挙げられるでしょう。

ScalaがJavaの代替言語と注目を集める理由は、Javaで開発したプログラムをScalaによって半分のソースコードに改良ができることです。
そして安全性が高いコードが可能となり、バグや改修時のコストも減らせることも大きな要因です。
またオブジェクト指向と関数型の二つを足したような言語で、双方の美味しいところが生まれた言語であり、さらにスクリプト言語のようなシンプルさも兼ね備えています。Javaとの相互運用性が高く、Javaのライブラリを利用したり、既存のJavaプログラムと両立させて使うこともできます。

Javaをより良いものとして存在するScalaはJavaプログラマのみならず、多くのプログラマが習得すべき言語です。
Javaの代替言語として生み出されたものがScalaであるため、Perl、Ruby、PHPといったBtoCのWebサービス分野によく使われる言語を代替できることは大きなメリットです。

このようにScalaには今後大きな可能性があるのですが、当然デメリットもあります。
ScalaはIDEの機能がJavaに比べて貧弱であり、コンパイル速度が遅いことが最大のデメリットです。

また根本から異なる発想で開発されため、今までの言語より習得が難しいということもあります。
しかしJavaに関しては、今までの知識を生かすことができるというメリットがあります。
そのためJavaプログラマにとっては、Scalaは他のプログラマより比較的に習得しやすいものといえます。

またScalaは関数型プログラミング言語の一面もあるため、今まで関数型を使用した事がないプログラマでも、Scalaを学ぶことにより関数型プログラミングの考え方を身につけておくことは、他の言語でプログラミングを行う際にもとても役に立ちます。

エンジニア・プログラマ・デザイナーの新しい働き方を模索してみませんか?今より年収がグッと上がる働き方をご提示できるかもしれません!弊社(ITプロパートナーズでは,週2日からこなせる仕事を紹介しております。まずはこちらより、弊社のサービスにご登録後、お仕事の詳細をごらんください!

まとめ

Scalaは現在、開発現場でもっともホットな言語のひとつとなっています。アメリカのTwitter社、LinkedIn社といったそうそうたるIT企業のほか、イギリスのガーディアンのような老舗メディアでも自社サービス開発に採用しており、日本でも今後実績が増えていくことは間違いない言語でしょう。
エンジニアにとってもScalaを習得することは大きなメリットになるはずです。

実際に言語のエンジニアとして求人が今一番多いのがScalaで、需要が増えている市場ですが、日本で使いこなせる人材が少なく、その分Scalaが使えるとなると、待遇面でも好条件での就職が可能となりえます。
Scalaは冗長な記述を省いて簡潔に書ける言語で、標準ライブラリも非常に充実しています。

次世代言語Scalaはこの先のスタンダードとなる言語に最も有力であるといえます。
自分以外のSE、プログラマからいち早く優れたプログラム言語を習得しアドバンテージを稼ぐためにも、Scalaを学習することは意味があると言えます。現在はWebアプリケーションや分散処理システムの開発現場でも使用されるようになってきており、今後より多くの場面で利用されることになるでしょう。

エンジニア・プログラマ・デザイナーの新しい働き方を模索してみませんか?今より年収がグッと上がる働き方をご提示できるかもしれません!弊社(ITプロパートナーズでは,週2日からこなせる仕事を紹介しております。まずはこちらより、弊社のサービスにご登録後、お仕事の詳細をごらんください!

ITプロパートナーズに登録すると3つのメリットがあります!

①他には無い!弊社だけの週2日〜のフリーランス案件!

ITプロパートナーズでは、フリーランスエンジニアが週2日から働ける案件を数多く取り揃えております。 そのため、他案件やご自身が開発するサービスと並行可能です。 独立資金を貯めたい方や趣味に時間を費やしたい方には非常に重宝して頂いております。 契約期間も3ヶ月~で安定収入を実現しており、稼働文の請求となるのでリスクもないです。

②成長企業の直案件で高単価を実現!! 週3日で月額50万円も!!

弊社の95%以上が高単価の直案件になります。 常時、50件以上の週2~の案件を保有しています 社長の木村を始め、ITプロパートナーズの社員は圧倒的にITベンチャー出身者が多いです。 故に多くのベンチャー企業に精通しています。 スタートアップのベンチャー企業で最大限のバリューを発揮したい方にはオススメです。

③専属エージェントがしっかりサポート!!

希望に合致した案件をご紹介可能です。 また、契約交渉や債権管理を代行します。 契約が切れても、未稼働期間なしで次の継続的な案件を随時ご紹介します!