お役立ちコンテンツ | フリーランスエンジニアの案件・求人なら【テクフリ】

人気のプログラミング言語ベスト20 第15位:Kotlin

2019.07.20

フラン健史郎

Kotlin

目次

    Kotlinとは

    今回はある種のプログラミング言語の人気投票といえる GitHubPullRequest にて2019年1月~3月統計にて第15位という成績を収めたKotlinをご紹介いたします。

    Kotlin は2017年にGoogle社が開催する開発者向け年次カンファレンス「Google I/O」にて、androidの公式開発言語となることが発表されて以来、注目度が高まっているプログラミング言語です。

    その特徴は、Java仮想マシン(JVM)上で動く、Javaの後継プログラミング言語となることを目指したプログラミング言語であり、Javaとの親和性が非常に高い点です。

    さらにJVM上で動作する“ポストJava言語”はいくつか他にもありますが、現在のところ、もっとも実装例が多いと思われ、着実に有力な言語へと成長しています。

    Kotlin というプログラミング言語を理解していただくために、改めて、Javaというプログラミング言語について確認しておきましょう。

    Javaは非常に成功しているプログラミング言語です。

    例えば、独立行政法人の情報処理推進機構(IPA)が毎年発行している「ソフトウェア開発データ白書」では、日本のIT企業がシステム開発で利用したプログラミング言語の統計データが掲載されていますが、長らくJavaが利用率第一位です。

    Javaの強みは、汎用プログラミング言語としてシーンを問わず利用できる点です。

    Microsoftが開発したプログラミング言語であるVisual Basic(VB)で書かれたソースコードは、もちろんWindows上でプログラムとして動作させることができます。

    しかし、同じソースコードをandroidに持って行っても、動作することはありません。

    ところが、Javaの場合、同じソースコードがWindows上でもandroid上でもプログラムとして動作できる特別な仕組みが用意されています。

    そして、その特別な仕組みがJVMです。

    JVMはWindowsだとかandroidだとか本来のOSの上に展開される、Javaプログラムを実行するための特別な仮想環境です。

    つまり、Javaプログラムからすると、自分がWindowsデバイス上で動作しているのか、androidデバイス上で動いているのか分からないし、気にもしなくても良い仕組みになっています。

    この仕組みによって、Javaには「システムの移植が簡単」という利点が生まれ、今日の高い利用率へと繋がりました。

    とはいえ、Java自体は1995年に公開されたものであり、仕様的に古くなってしまったところや、様々な分野で成功しているがために、大きく仕様変更ができず、改善が期待されながら放置されている問題点もある、という指摘がありました。

    そうしたJavaへの問題意識がきっかけになり、2010年代頃からJavaのメリットである「JVM上で動作する」という利点を引き継いだ新たなプログラミング言語が登場するようになったのです。

    その一つが、Kotlinということになります。

    なお、Kotlinの開発を行っているのは、ジェットブレインズ社というチェコの会社です。

    ジェットブレインズ社の代表的なプロダクトはJava用統合開発環境である「IntelliJ IDEA」です。

    Javaの統合開発環境といえばIBMによって開発された「Eclipse」が非常に有名ですが、ZeroTurnaroundという海外のソフトウェア会社の調査によると、2016年にはその「Eclipse」からシェア率一位の座を奪うに至っています。

    Kotlinは、Javaを知り尽くした企業が開発したポストJava言語というべき存在であり、現場のエンジニアファーストだからそこ注目度も高まっているのでしょう。

    ところで、何度もKotlinのことをポストJava言語と呼んでいますが、この二つのプログラミング言語は“ライバル関係で両立できない存在”ではありません。

    JavaとKotlinはどちらもJVM上で動作するプログラミング言語ですので、相互利用することを前提にしてKotlinは仕様を定められています。

    ちなみに、Kotlinはフィンランド語で「やかん」を意味するそうで、ロゴマークもやかんをイメージしたもの、との説明を何度も見聞きしましたが、いまだに筆者にはやかんには見えません。。。

    やかん

    昨年の順位と比較して考察

    2019年1月~3月統計では第15位だったKotlinですが、去年の同じ時期(2018年1月~3月)の統計では第16位でした。

    順位的には大きな変動がありません。

    考えられる理由としては、新規導入ニーズが一周した、ということが考えられます。

    周りの方を見ていても、良さそうな新たなサービスが紹介されたとき、すぐに飛びつく人もいれば、他の人の状況を見てから、そのサービスを利用するかどうか判断する人に分かれますよね。

    プログラミング言語にも同じことが言えます。

    新たなものに対して、多少のリスクがっても良いものなら新たなプログラミング言語であるKotlinを利用したい、というスタンスの企業・案件もあれば、Kotlinの十分な評価ができるまで、実績あるJavaを使うという案件・企業もあるのです。

    現状、積極的にKotlin利用を進めているのはandroidアプリ開発の世界です。

    逆に、組み込み系やインフラ系のエンタープライズシステムの場合は、Kotlinの利用はあまり考えられていないと思われます。

    万が一Kotlinのバグのせいで製品が動作不良を起こして、利用者が死傷した、ということにでもなったら、会社の命運すら左右しかねませんので、なかなか新技術に移行できないのです。

    これから数年の間で、Kotlinを使ったエンジニアたちがKotlinへの移行を他のエンジニアにも推奨するのか、それともJavaに戻ってくるのか、あるいは、androidアプリ開発以外の分野のエンジニアたちもJavaからKotlinへの移行が広がっていくのか、気になるところです。

    Kotlinは転職に強いのか

    ポストJava言語であり、androidの公式開発言語となっている、という注目度の高さ、さらに、比較的世代が新しく、扱えるエンジニアの数が少ない点から、転職市場においても非常に優位に立てる言語と言えるでしょう。

    ただし、Kotlinを利用できるエンジニアに対して、多くの企業はJavaが利用できることも期待している、あるいは、Java/ Kotlinのような一体のスキルセットだと考えていることが多いです。

    なぜならば、KotlinはJavaと互利用をすることが前提のプログラミング言語です。

    もちろん、今後、Kotlinのみでまったく新たなシステムを開発していく、ということも増えていくかと思います。

    しかし、まだまだ現状は「これまでJavaで作ってきたシステムに対して、Kotlinで保守改善していく」あるいは「ベースはKotlinで開発するが、適宜、過去にJavaで作ったソフトウェア資産を呼び出して利用する」などJavaとKotlinでシステムを作っていくといった、併用が基本です。

    「Kotlin“が”できるエンジニア」というよりも「Kotlin“も”できるエンジニア」を求人企業が求めている傾向は非常に強いと思います。

    活躍できる業種と年収

    Javaは汎用プログラミング言語として様々なエリアで活躍しており、ポストJava言語であるKotlinにも、大きな可能性があります。

    しかし、上でも触れた通り、現在のところ、Kotlinのニーズはandroidアプリ開発(ゲーム含む)に絞られています。

    それも基本的にはベンチャー系IT企業からの募集が大多数です。

    そのため、福利厚生などはあまり期待できないのかもしれません。

    ただし、注目すべきは年収で、各社フリーランス向け求人サイトにて紹介されているKotlinの案件の平均単価は月90万円です。

    月単価が100万円をこえている案件も少なくありません。

    正社員向け求人サイトでも、提示年収が400万円から1800万円と他のプログラミング言語と比べても、非常に高年収が期待できます。

    実質、1000万円以上の年収提示が多いというのは、それだけKotlin経験があるエンジニアがニーズに対して少なく、各社ともに集めるのに苦労している、ということなのでしょう。

    まとめ:今後の成長に期待

    すでに触れた通り、androidの公式開発言語に選ばれたことにより、一気に注目度、ニーズとも高まると同時に、転職市場においても強力な存在になったKotlinですが、今後、他の領域でもポストJava言語として広がっていくのか、目が離せません。

    Java/ Kotlinのスキルセットを組むことができれば、当面の間、転職市場で勝ち組になれるのは、間違いないでしょう。

    フリーランス案件を探す

    今すぐシェアしよう!

    B!
    <span class="translation_missing" title="translation missing: ja.layouts.footer.icon_back_to_top">Icon Back To Top</span>
    TOP