PCI(Programming Community Index)で注目を浴びたKotlinとは?

2017年6月、TIOBE Softwareから公開されたTIOBE Programming Community Index (PCI)で、急増しトップ50位入りした言語のKotlin。
※TIOBE PCIは、複数の検索エンジンの検索結果から、対象となるプログラミング言語がどれだけ話題になっているかをインデックス化したもの。

今回はそんなKotlinがどんな言語か、ご紹介します。

Kotlinの概要

Kotlin言語はジェットブレインズ社の研究所で生まれ、Java言語をもっと簡潔・安全になるように改良した産業利用向け汎用言語として開発され、2011年7月20日に発表された。実際、Kotlin の Hello World プログラムはJava の Hello World プログラムよりも短い。KotlinはJVM(Java Virtual Machine:Java仮想マシン)上で動作する、いわゆる「JVM言語」です[1]。そのためかどうか、同じJVM言語であるScalaやGroovyを強く意識した造りになっています。

また特徴として、文の末尾にセミコロンが不要、型推論機能がある。初期値なしの変数定義が可能である。

Googleが推奨するKotlinを推奨する理由

Googleは先月、Androidの正式サポート言語としてKotlinを発表、JavaおよびC言語に続くオフィシャルサポート言語として注目を集めた。Android Studio 3.0にはKotlinのフルサポートが提供される。Kotlinを選んだ理由について、Googleは「(Kotlinは)簡潔で、表現豊かで、タイプセーフでヌルセーフに設計されており」「すでに多くのAndroid開発者たちが、Kotlinを使うと開発がもっと素早く、もっと楽しくなると思っている」と述べた。

もうひとつ重要な理由は、KotlinはJavaと完全に相互運用可能で、JVM上で動作する言語であることだった。Kotlinはexternal修飾子によってJNIをサポートしており、C++/Androidコードを呼び出すこともできる。Kotlinのソースコードから、JVMのためのJavaバイトコードや、JavaScriptソースコードを生成することもできる。

Java互換なので、 これまでもAndroidアプリを書くことができたが、今後GoogleはKotlinをプログラミング言語として全面的にプッシュするようだ。Kotlinには現在Javaでサポートされていない機能が多数含まれている。

Kotlin導入のメリット

■導入が容易

KotlinはJavaと完全に同居することができ、また相互に呼び出しが可能です。

src/main/java/Hoge.java と src/main/java/Fuga.kt がディレクトリに共存できる
src/main/java/Hoge.java と src/main/java/Fuga.kt が相互に呼び出せる
新規プロジェクトでないと導入できないようなハードルの高さは無く、過去のプロジェクトもKotlin化することが容易です。導入コストの低さとも相まってなのですが、困ったならばJavaで一旦記述して、Auto Converterをかけてしまえば簡単にKotlinファイルへの変換が可能です。

■Javaより安全

Nullableな型と、そうでない型を厳密に区別することができるのでNullPointerExceptionを引き起こしてしまう機会が激減しました。

最近のAndroidでは引数に @NonNull @NullableをAnnotationにつけることが多いですが、書いているとついついつけ忘れてしまうことも多いです。
Kotlinではなにも考えずともNullableな変数かどうかを区別していけるので、デフォルトで非常に安全です。

-java

-kotlin

-kotlin

Kotlinの世界でコードを記述していると、Javaでいままで書いていたコードがいかにルーズであったかを認識できます。

■標準ライブラリが充実

standard libraryにutility関数が豊富に生えています。
とくに Collection系 のextensionが便利です。
この強力なライブラリ群のおかげで日常的に書く関数がすっきりしました。

map
find
filter
first
Kotlinを書いているとforloopを使う機会は少なく、Javaよりスリムに見通しやすくなります。

Kotlin導入のデメリット

■アプリの容量が微増する

チュートリアルによると、1.0.0-betaで1MB弱ふえてしまうようです。

■アプリのmethod数が増加する

そこそこメソッド数が増加します。
どうしてもmulti dex化したくないアプリなどでは使わないほうがいいかもしれません。

次のページ:
Kotlinはどのようにして使うのか

 

関連する記事

facebook

案件情報や最新記事をお届けします。
ぜひチェックしてみてください。

geechs

ChatBot

《1分で登録できる!》
Facebook Messengerを使って
最新記事を受け取れます。

利用する