ITフリーエンジニア・フリーランスの方を手厚くサポート!40代、50代、ミドル転職もお任せください
株式会社ヴァリエイト
【TEL】03-6455-1109
9:30~18:30(月~金)

2つ目にマスターしておくとよい言語とは?【 Scala】

今回は少し毛色が違って、言語種別による選び方です。
少し考え方としてはテクニカルになるかもしれませんが、いま主なプログラミング言語には手続き型言語、オブジェクト指向型言語があり、エンジニアの皆さんの得意な言語は大体どちらかに入ってきたわけです。

だから手続き型言語はCとかCOBOL、VB、PHPなど手続き呼び出しという形で構造化されているプログラミングです。
一方オブジェクト指向はデータとコードを単位としたオブジェクトにより構成されるプログラミングでこれはJavaとかC++、C#,
JavaScript,Python,Kotlin,Swiftなどです。

やはり時代の流行のようなものがあって、手続き型–>オブジェクト指向という形になってきたのはあります。その過渡期いは手続き型しか知らない人にはオブジェクト指向の言語を何とかマスターしたいというのが当時あったと思います。C++とかSmalltalkとか難しいのばかりでした。

そのころJavaという言語ができて一挙にオブジェクト指向はメジャー化しましたね。いまはPythonやKotlin のようにもっと学びやすい言語がでてきました。

そしていま第三の波という形で関数型言語です。といっても今メジャーなのはScalaだけですかね。JVM上で動く関数型言語です。

オブジェクト指向がモノに着目して、その属性、操作によって記述するのに対して、関数型は全てを関数とみなし、関数をひたすら積み重ねていく形になります。

昔々LISPという言語があり、AIの父マッカーシーによって開発された当時のAI開発に使われていた言語でした。LISPこそが関数型言語の開祖といわれており、数理論理学、コンピューターサイエンスをやった方なら覚えているかもしれませんが、ラムダ計算という考えがもとになっています。

その関数型言語がホットな訳です。現金な話でスミマセン。
Scalaは毎度お世話になっています2018年言語別収入ランキングではGoについて2位となっています。


Haskellのような「純粋」な関数型言語に比べると・・・という声もあるのですが。

なぜScalaがこのように高くなっているかというと、エンジニアが凄く少ないということがあります。

実際に知名度はそこそこあるのですが、対応できるエンジニアは本当に少ないのです。やはり関数型言語という考え方の部分にハードルがあるようで、なかなかトライする人が少なく、需要に供給が追い付かないのです。

これは世界的に見て同様なようですよ。Pythonとちがってこれから旬、しかも学びやすいというわけではないのですね。

需要という意味ではWEB開発に大きな威力を発揮しているようです。あと企業でも例えばTwitterやLinkedInはScalaで多くの部分開発されています。

このハードルはいってみれば手続き型言語しか知らない人が、初めてオブジェクト言語を学んだ時の様、といった感じでしょう。

先ほど非純粋関数型と書きましたが、ScalaはJavaの上位互換とかオブジェクト指向のハイブリッドという人もおり、Haskellと違う扱いする人も多いようです。しかし、Javaなどのオブジェクト指向型言語を学んだ人にとても良い入口になっているようで、関数型言語の中ではもっとも学びやすいものといえるでしょう。

関数型言語なんか知らなくてよいよなんて言う人もいるでしょうが、先ほど書いたようにWEB系エンジニアで関数型プログラミングは必須になるという人もいます。

Ruby->Go->Scalaという習得順序がエンジニアの爆速の成長に最適である理由

単に需給関係で難しい考え方をマスターする意味はないでしょうが、或る分野でその考え方が主流になる可能性がある場合、早めに取り組むのは先行者利益がありそうです。しかも考え方という部分で少しハードルが高ければなおさらです。

検討されてはどうでしょう。勿論それぞれのキャリアプランに合わせてですよ。

今回の特集色々紹介しました、正直エンジニアさんは色々可能性があって楽しいそうだなんて思ってしまいます。エンジニアの曲がり角は40代です。それまでに自分がこれから何をしたいか考えましょうね。

営業担当があなたに合う案件をご提案します!

ヴァリエイトの他のコンテンツも是非ご覧ください。
PAGE TOP