Android開発を目指すエンジニアが学習するプログラミング言語といえば、今はKotlinが挙げられます。Kotlinは誕生して10年あまり経ちます。その間、Kotlinを取り巻く状況はさまざまに変化してきました。Kotlinは学ぶ価値のある言語ではありますが、JavaやC#などに比べて歴史が浅い分、イメージがつきにくい面もあるかもしれません。
この記事ではKotlinの歴史や言語的な特徴、よく利用されている分野などについてご紹介します。
Kotlinの将来性は?プログラミング言語ランキングやGoogleの取り組みから考える
Kotlinは、Android開発言語として注目を浴びている言語です。認知度が高まる一方で、比較的新しい言語であるために、「Kotlinを習得して、将来的には安泰なのか」という不安を持つ人もいるでしょう。Kotlinが関わる案件数は現状、他の言語に比べて少ない傾向にありますが、将来性についてはKotlinを取り巻く事情も加味したうえで判断したいところです。この記事ではKotlinの将来性について、調査や言語の特徴も合わせてご紹介します。
この記事の監修者
INTLOOP株式会社
TECH STOCK MAGAZINEサイト 監修部
TECH STOCKの運営会社であるINTLOOPで活躍している現役エンジニアで構成された監修部です。各領域の言語・スキルの知見を持ったメンバーが、現場の知見も含めて記事のチェック・監修を行っています。
Androidの公式開発言語でもあるプログラミング言語Kotlin(コトリン)とは?
まずはKotlin誕生からの経緯や、現在Kotlinがどのような場面で利用されているかについてご紹介します。
Kotlinの誕生~現在のバージョン
Kotlinは、2011年7月20日に誕生したプログラミング言語です。KotlinはJavaをベースに、よりプログラミングが簡潔に書けるように改良して開発されました。そのため、KotlinにはJava仮想マシン上で動作する、Javaとの互換性が高いという言語上の特徴を有します。
Kotlinを開発したのは、チェコに本社を置くソフトウェア開発企業である「JetBrains」社です。JetBrainsはJavaなど複数のプログラミング言語に対応した統合開発環境 「IntelliJ IDEA」を開発してきた会社で、Kotlinに関しては現在Googleと協力関係にあります。
Kotlinは2016年にバージョン1.0として正式にリリースされ、最新バージョンは1.9です(※2023年10月時点)。現在は次世代コンパイラ「Kotlin K2」など、バージョン2.0公開に向けてさらなる開発が行われています。
Androidアプリ開発に利用
Kotlinは、GoogleがAndroidアプリ開発言語として正式に採用しています。統合開発環境である「Android Studio」でも、Kotlinは完全にサポートされています。Android開発言語としては元々Javaなどが主流でしたが、現在ではJavaの後継言語ともいえるKotlinが推奨されています。
Androidアプリ開発以外の取り組み
Webアプリケーションやサーバーサイド開発
Kotlinは、Webアプリケーションやサーバーサイド開発にも使われています。KotlinはJava仮想マシンと互換性があるため、Javaの開発でも使われてきた「Spring Boot」や「JSF」 などの既存のフレームワークを使用可能です。また、「Ktor」などのKotlin で書かれたフレームワークを使用するケースもあります。
クライアントサイドやデータサイエンス
OpenJFXというプラットフォームを合わせて使用することで、クライアントサイドの開発も可能です。またデータサイエンスの分野でも、Kotlin活用の試みがなされています。
他プラットフォームへの展開
「Kotlin/Native」という、Java仮想マシン無しにネイティブ環境で実行できるバイナリーをコンパイル出力可能にするためのテクノロジーもあります。Kotlin/Nativeでは、組み込みシステムやmacOS、iOS、Linuxなどのプラットフォームへの対応が予定されています。
Kotlinの需要
Kotlinは比較的新しい言語であるために、需要の見通しがつきにくいと感じられることもあります。そこで、プログラミング言語に関する調査やランキングから、Kotlinの需要について見てみます。(※各調査は2023年10月時点)
Stack Overflow Trendsでは人気が上昇傾向
iOS開発言語Swiftと同程度の注目度
「Stack Overflow」が随時公開している調査「Stack Overflow Trends」では、Kotlinは2017年ごろから徐々に人気が上昇していることがわかります。2017年といえばGoogleにより、「KotlinをAndroidの公式開発言語とする」と発表された年で、これをきっかけに注目されています。現在Kotlinは、PythonやJavaScriptの人気には及びませんが、iOS開発の言語であるSwiftと同等の注目度となっている状況です。
エンジニア観点でも7割が「使い続けたい」
同じくStack Overflowによる、約9万人のITエンジニアにアンケートを行った結果をまとめた調査「2023 Developer Survey」でもKotlinに関する項目があります。Kotlinを一度使ったことのあるエンジニアのうち、約6割が今後(来年)もKotlinを使い続けたいと回答していました。実際に利用しているエンジニアからも、Kotlinは将来性が高いと考えられていることがうかがえます。
TOIBE Indexではランキングに返り咲き
TOIBEが行っているプログラミング言語ランキング「TOIBE Index」において、Kotlinは長らく21位以下、ランキング外となっていました。しかし、2023年9月度に20位に返り咲いています。10月度には18位と順位を上げており、今後もこの傾向が続くかどうか注目したいところです。
対照的に、Javaは2023年10月度に順位を落とし、人気に陰りが見え始めています。これはJavaと同じ領域で活用されているC#が受け入れられていることに加え、Kotlinが使われてきたことも一因であるとされています(※)。
参考:TIOBE Index
※TIOBEのランキングは随時更新されます
※TIOBE SoftwareのCEOであるポール・ジャンセン氏により言及
フリーランスエンジニアの案件紹介サービスTECH STOCKには、Kotlin案件が多数ございます。高単価・上場企業・即アサイン可能など、スキルや希望にマッチする案件をご紹介します。人気上昇傾向にあるKotlin関連の案件ならTECH STOCKにお任せください。
Kotlinの将来性に関わる3つの事情
Kotlinの将来性は、まだ不透明です。正式なリリースからは7年以上が経過し、Android開発言語として第一候補の言語となっています。しかし、不動の人気だったJavaにも陰りが見えてきたとはいえ、まだまだ汎用的に利用され続けており、Kotlinへ完全に置き換わるような状況ではありません。この章では、Kotlinの将来性に関わる3つの事情について紹介します。
GoogleがKotlinに注力している
GoogleはKotlinをAndroid開発の公式言語として以来、「Kotlin ファースト」と称するほどに、Kotlin を用いた Android 開発をサポートしてきました。新規参入者へは門戸を広く開いており、無料のAndroid開発トレーニングプログラムの中に「Kotlinの基礎」や「Kotlin での Android アプリの開発」など、さまざまな難易度のコンテンツを含めています。
また、今後もGoogleはJetBrainsと提携して、言語やフレームワーク、ツールなどを提供していく予定です。このようにGoogleはKotlinを強くバックアップしていることは、Kotlinの将来性を感じさせる要因となっています。
有名企業が採用している
Android開発だけでなく、Webアプリケーションやサーバーサイド開発においても、Kotlinは、有名企業やサービスが開発に用いています。Kotlinを利用している企業としては、LINEやDMM.comグループ、Metaなどです。
具体的なサービスとしては、Yahoo!カレンダーやLINE GAME、出前館、NewsPicksなどがあります。大手企業も採用していることから、今後追随する企業は増えるものと見込まれます。
IT人材不足がしばらく続く
日本では、長らくIT人材が不足しています。経済産業省が2019年に公表した調査では、2030年には最高で約79万人のIT人材が不足するとの見解が発表されました。現在も、IT人材不足の状況が続いているものと見られます。
IT人材不足の解消のためには、教育が必要です。今後、企業がIT人材をより多く集めるため、Javaよりもシンプルで安全性が高いと見込まれるKotlinを開発言語として採用していく可能性があります。またJavaの開発資産を有する企業が、開発資産を流用しながら新たな技術を取り入れるためにKotlinに切り替えることも考えられます。
したがってKotlinはもちろんのこと、JavaとKotlinの両方を理解している人材は、今後希少性が上がる可能性があります。
Kotlin開発事例と報酬目安
Kotlinが関わる案件について、案件の内容と報酬の目安となる事例をご紹介します。フリーランス向けの案件は、基本的には経験者が求められ、なんらかの技術で複数年の経験を要件として指定しているケースが大半です。ただKotlinについては、Javaなど他の言語の経験年数があれば可としている案件も存在します。
フリーランスエンジニアの案件紹介サービスTECH STOCKには、KotlinやJavaに関連する案件が多数ございます。スキルや希望にマッチする案件をご紹介、即アサインも可能です。フリーランスになって年収アップを狙うならTECH STOCKにお任せください。
例1:Android向けアプリ設計・開発・運用
【Kotlin】新サービスのAndroid向けアプリ設計・開発・運用|大手EC
報酬:60~120万円/月(税別) 業務形態:フルリモート
企業の所在:関東
<案件概要>
KotlinによるAndroid向けモバイルアプリの設計・開発・運用の業務です。GitHubを使用した機能開発、運用、継続的な品質改善を行います。
<求める人材のスキル>
3年以上のAndroidアプリ開発経験やKotlinのプログラミング経験、GitHubを利用したチーム開発経験が求められます。
例2:ネイティブアプリ設計・開発・運用
【Swift/Kotlin】ネイティブモバイルアプリ開発支援
報酬:80~110万円/月(税別) 業務形態:フルリモート
<案件概要>
自社のネイティブモバイルアプリ内製開発支援の案件です。支援内容には、ペアプログラミングや他メンバーの指導も含まれます。
<求める人材のスキル>
ネイティブモバイルアプリが対象となっていることから、SwiftかKotlin、もしくはJavaの開発経験が3年以上のエンジニアが求められています。また、Pythonやその他サーバサイド言語の開発経験も3年以上となっています。
例3:Android向けアプリ設計・開発・運用
【Kotlin/Java】Android向け動画アプリ開発や運用
報酬:75万円/月(税別) 業務形態:フルリモート
<案件概要>
動画アプリの開発や運用を行う案件です。フレームワークやライブラリの調査、トラッキングデータを使った、アプリやユーザ行動の分析も業務に含まれます。
<求める人材のスキル>
Kotlinでのアプリ開発~運用経験2年以上ある人が求められています。周辺ツールの理解・経験も必須スキルとされています。
Kotlinでの開発を続けるメリット・デメリット
ここまで現状の需要や将来性について見てきました。改めてKotlinのメリット・デメリットとともに、Kotlinエンジニアが今後に向けて考えておくべきことも合わせてご紹介します。
Kotlinのメリット
Javaよりも簡潔で開発の効率化が可能
Javaは歴史がある言語であり、比較的新しい言語と比べると記述が冗長と感じられることがあります。対してKotlinは、Javaよりもコードが簡潔です。
また、Kotlinにはよくあるプログラミングミスを防ぐ仕組みがあります。代表的な仕組みは、nullセーフです。これは変数がnullになりそうな場合、コンパイルエラーになり、事前にエラーを回避できるというもので、Javaなどで起こりがちなNullPointerExceptionは発生しません。これらの特徴を有していることから、Kotlinでは効率的に開発を行うことが可能です。
Javaからの移行に役立つ
KotlinはJavaと互換性があるため、Javaで作成したシステムを移行しやすくなります。Java のコードを Kotlin に変換することもでき、Javaの開発資産を有効活用してKotlinで開発を行うことが可能です。またJavaでサーバーサイド開発をしている企業が、Kotlinへ乗り換えたいというケースもあります。Kotlinを習得しておけば、このような移行案件にも対応できます。
KotlinとJavaを両方利用可能
JavaからKotlinへ移行するほかに、Android開発においてはKotlinとJavaを両方利用することもできます。KotlinはJavaのメソッドやAPIを呼び出すことができ、JavaからKotlinを呼び出すことも可能です。詳細な運用については、Android Developersにある相互運用ガイドに定められています。
JavaからKotlinへの移行や、KotlinとJavaの相互利用を行うケースがあることから、JavaとKotlin両方を習得しておくと、エンジニアとして希少性が高まります。
Kotlinのデメリット
ドキュメントが少なめ
KotlinはJavaやC#などほかの歴史が長い言語と比べ、Web上のドキュメントや参考書籍が少ない傾向にあります。さらに仕様書などドキュメントは英語で書かれたものが多く、正式な文書として日本語に翻訳されているものも少なめです。そのため、Kotlinの情報収集をしたいと考えても、他の言語ほどスムーズに欲しい情報までたどり着けないこともあります。
外国語で書かれたドキュメントは、自分で翻訳するか翻訳ツールを駆使して確認するしかありません。しかし、そのために開発の効率を低下させる可能性があるのが、現状のデメリットといえます。
Androidアプリ開発以外の事例がまだ少ない
Kotlinは、Javaの代替となる可能性を秘めたプログラミング言語であるものの、Androidアプリの開発における利用シーンが多いのが現状です。実際にフリーランスエンジニア向けの案件を紹介しているTECH STOCKも、Kotlinが関係する案件はAndroidアプリ開発や開発支援が主です。
そのため、Javaと比較すると汎用性においては及ばないと言えます。ただし、大手企業がサーバーサイド開発にKotlinを利用しているケースも出てきており、今後Androidアプリ開発以外の事例がどんどん増えていくことは予想されます。
まとめ
今回は、Kotlinについて将来性を中心にご紹介しました。Kotlinは現在こそ活躍の場が限られていますが、活用例を見てみると、大手企業が採用するほど将来性のある言語と言うことができます。現にプログラミング言語調査でも、注目度が上がっていることが見て取れます。
ただKotlinに限らず、プログラミングスキルだけでは開発はできません。サーバーサイドの知識や外国語能力など開発周辺のスキルも吸収しながら、引き続きKotlinの動向を注視しましょう。