世界には200種以上のプログラミング言語が存在していますが、日常的に使用されている言語はほんの一握りです。代表的なものでいえばJavaはC言語、最近ではPythonやGoが人気を集めています。その中で、比較的新しく注目を集めているプログラミング言語「Kotlin(コトリン)」をご存知でしょうか?
2017年の5月には、Google I/O(開発者向け年次会議)にてKotlinをAndroidアプリの開発言語としてサポートすることを公式に発表し、話題を集めました。さらに、求人検索エンジンの「スタンバイ」が発表した、プログラミング言語別年収ランキング2018によると、Kotlinは第4位で平均年収はPythonに並ぶ575万円となっています。求人数こそ少ないものの、今後の高い需要が見込まれているプログラミング言語です。
本稿ではこのKotlinについて、その概要と特徴を紹介していきます。新しく学習するプログラミング言語としてKotlinが気になっている方は、ぜひ参考にしてください。
Kotlinとは?
Kotlinは2011年に登場した新しいプログラミング言語であり、Googleが開発したGoよりも後に登場しています。特徴は「JVM上で動作する静的型付けのオブジェクト指向言語」です。JVMは「Java Virtual Machine(ジャバ・バーチャル・マシン)」といって、Javaプログラムを動作させるのに欠かせないプラットフォームです。
Javaは1995年に誕生し約25年の歴史あるプログラミング言語で、今でも世界中で最も使用されています。しかし、言語使用が次第に古くなっていることから、プログラムが冗長になりやすく安全確保が難しいという難点があることから、「もっと簡潔で安全性の高いプログラミング言語が必要」というニーズから、JVM上で動作しJavaとの互換性を有する言語が登場していきます。ちなみにそうしたプログラミング言語を「JVM言語」と呼びます。
KotlinはいわゆるJVM言語の一種です。Javaと同じくオブジェクト指向言語なので、クラスなどの部品を作成し、それを組み合わせたプログラムを作っていきます。JVM言語として高い人気を誇るScala(スカラ:年収ランキング2018第2位)ともまた違い、独自の特徴を持っています。
ちなみにKotlinの語源は、バルト海フィンランド沖の奥に位置するロシア連邦の領土「コトリン島」です。Kotlinはもともとフィンランド語で「やかん」を表す言葉であり、Kotlinのロゴマークもやかんになっています。
KotlinとScalaの違い
KotlinオフィシャルサイトのFAQページによると、開発者のJetBrainsはKotlinに次のような設計ゴールを定めています。
- Javaとの互換性
- Javaよりも安全
- Javaよりも完結
- Scalaよりもシンプル
参考:Kotlin Programming Language『FAQ』
同じJVM言語であるScalaをベンチマークにしていることが分かります。では、KotlinとScalaの違いとは一体何でしょうか?
まず、Kotlinがオブジェクト指向言語なのに対し、Scalaはそれに加えて関数型プログラミング言語という特徴を持ちます。関数型プログラミング言語というのは、関数を組み上げてプログラムを作る言語のことです。代表的な関数型プログラミング言語に「Haskell」がありますが、Scalaはオブジェクト指向言語と関数型プログラミング言語の良いとこ取りというわけです。
KotlinもScalaも、Javaよりも簡潔なプログラムを作成でき、かつJVM上で動作することからJavaの代替として人気を集めています。ただし、Javaとの互換利用が保証されているのがKotlinだけです。つまり、従来Javaを使用していた環境で、互換性を保ちつつより簡潔で安全性の高いプログラムを作成したいのであれば、Kotlinの方が優れているということです。
KotlinはJavaをより進化させ、メリットを伸ばすことを目標にしているのに対し、ScalaはJavaを超える新しいプログラミング言語になることを目標にしています。同じJVM言語でもそもそものコンセプトが異なるため、シーンに応じて適切なプログラミング言語を選択する必要があります。
Kotlinで作れるものとは?
Kotlinで作成できるものの代表といえばAndroidアプリです。Androidオフィシャルサイトでは、キャラクターがKotlinでの開発を推奨しています。日本企業でKotlinを使用している主な企業はYahoo!(Android版Yahoo!ニュースアプリ、GYAO!など)、LINE(Android版LINEアプリ、LINE LIVEアプリ)、サイバーエージェント(Abemaなど)、その他RettyやトクバイといったAndroidアプリでもKotlinが使われています。海外企業ではEvernoteやNetflixなどがKotlinを使用しています。
Androidアプリ以外にもWebアプリケーションの開発や、サーバーサイドの開発として使用されるケースもあります。Javaが持つ汎用性に比べると、それにはまだ届かないという面もありますが、着実に進化しているため将来性の高いプログラミング言語だと言えるでしょう。
Kotlinは採用に強いのか?
プログラミング言語別年収ランキング2018によるとKotlinの求人数は1,000件弱なので、圧倒的な求人数を誇るPythonやRubyと比較すると10分の1程度の水準になります。ただし、人気上昇中のGoやScalaと大きな差はありませんし、平均年収もJavaより高いのでかなり将来性の高いプログラミング言語ではないでしょうか。
今後も継続的に進化を続け、Javaの代替になる時が来ればKotlinは爆発的に普及していくでしょうし、将来性を考慮してプログラミング言語を学びたいというのであれば、Kotlinは最適な言語です。Scalaに比べて学習コストが低いということもあり、プログラミング言語初心者にもおすすめできます。
AndroidアプリやWebアプリケーションの需要が高いことは周知の事実であり、それらの作成を得意としてJavaとの高い互換性を持つKotlin。この機会に、Kotlinの学習に手を付けてみてはいかがでしょうか?
- カテゴリ: