KotlinはJavaよりも簡潔に書ける言語として誕生したプログラミング言語です。近年、GoogleがAndroid公式開発言語として発表したことにより大きな注目を集めております。今やAndroidアプリの開発において確固たる地位を確立したKotlinについて見ていきましょう。この記事ではKotlinを理解するために初心者でも分かる歴史、特徴、できること、基礎知識などを簡単に解説していきます。
Kotlinとはロシアのジェットブレインズ社の研究所によって2011年に開発されたJVM上で動作する静的型付けのオブジェクト指向のプログラミング言語です。KotlinはJavaをもっと簡潔・安全になるようにという目的の元に開発されました。開発元であるジェットブレインズ社はJava、Ruby、Pythonなどの数々の有名プログラミング言語の開発環境などを手掛けており、そこで得たノウハウを活用しKotlinの開発を進めました。
Kotlinが大きな注目を集めるキッカケとなったのが2017年にGoogleが発表したAndroid公式開発言語への追加です。AndroidアプリはこれまでJavaで開発するのが基本とされておりましたが、Kotlinの登場によってより簡単にAndroidアプリの開発が実現できるようになりました。Kotlinの特徴は『オブジェクト指向』『Javaを簡潔化した言語』『JVM上で動作する』などが挙げられます。
またKotlinで開発された代表的なAndroidアプリとしてLINE、Abema、Yahoo!ニュースなどが挙げられます。
Kotlinの読み方は『コトリン』が一般的となっております。名前の由来については開発が行われたロシアのサンクトペテルブルグ脇にあるバルト海に浮かぶ「コトリン島」にちなんで名付けられたようです。ちなみにKotlinという言葉はフィンランド語でお湯を沸かす「やかん」を意味しており、以前ロゴマークにやかんを採用していたこともありました。
Kotlinはロシアのサンクトペテルブルグに拠点を構えるジェットブレインズ社の研究所によってアンドリー・ブレスラフ氏とドミトリー・ジェメロフ氏の二人の設計者が中心となり2011年7月にJVM上で動作する静的型付けのオブジェクト指向のプログラミング言語として誕生しました。Kotlinを開発した目的は「Javaよりも簡潔に書ける言語」です。
一例としてとある指示を実現するためのコード量がJavaだと 7行必要とするものをKotlinだと1行で実現できるという場合もあります。Javaとの親和性が高く、簡易的なプログラムが実現できることから徐々に知名度を上げていきましたが2017年に飛躍的に注目を集めるきっかけが訪れます。それが2017年5月にGoogleが発表したAndroid公式開発言語への追加です。
AndroidアプリはこれまでJavaで開発するのが基本とされておりましたが、Kotlinの登場によってより簡単にAndroidアプリの開発が実現できるようになりました。これによりどれほどKotlinへの注目度が変わったかと言いますと『RedMonk』のプログラミング言語ランキングの発表によれば「2017年:46位」「2018年:27位」「2019年:20位」と凄まじい勢いで注目度を上げ続けております。ちなみにGoogleのAndroid公式開発言語への発表前は65位だったようです。現在ではAndroidアプリを開発するならばKotlinという地位まで確立しており、LINE、Abema、Yahoo!ニュースなど多くの有名サービスがKotlinを使用した開発を行っております。
Kotlinはコンパイラ型言語という人間が書いたプログラム(ソースコード)をコンピュータが理解できる形式(機械語)に変換するプログラム言語です。コンパイラという言葉は英語の『compile』を表し、『編集する』を意味します。コンパイラ言語の特徴は『処理速度が早い』ということが挙げられます。対比されるインタプリタ言語と比べても実行時の性能が高いと言われております。一方でコンパイラ言語には『修正が容易では無い』というデメリットがあります。代表的なコンパイラ言語としてJava、C言語、C++などが挙げられます。
コンパイラ言語の種類や特徴を解説している記事はこちら>>
Kotlinでできることを見てきましょう。
kotlinは2017年5月にGoogleがAndroid公式開発言語への追加を発表しております。これまでAndroidアプリはJavaを使って開発することが一般的でしたがKotlinの登場によりJavaよりも簡易的に開発出来ることから瞬く間に人気を集めAndroidアプリ開発といえばKotlinという地位まで確立しております。
Webアプリケーション開発とはWebサーバーと通信を行って動作するWeb上のアプリケーションの開発を行うことです。KotlinでWebアプリケーション開発することでJavaよりも簡潔にコーディングができるというメリットがあります。
Web系システム開発の特徴や種類を解説している記事はこちら>>
kotlinの特徴を見ていきましょう。
Kotlinはオブジェクト指向言語です。
代表的なオブジェクト指向言語としてJava、C言語、C++などが挙げられます。
Kotlinは「Javaよりも簡潔に書ける言語」を目的とした下に誕生しました。簡潔化の目安としてJavaだと 7行必要とするものをKotlinだと1行で実現できるという場合もあります。またJavaとの互換性が非常に高く、連携も不自由なく行えます。
Javaのメリットや種類を解説している記事はこちら>>
KotlinはJVM上で動作するため、Javaのライブラリやフレームワークを不自由なく使えるという特徴があります。JVM上で動作する言語は他にもScalaやGroovyなどが挙げられますがこれらを総じてJVM言語と呼ぶことがあります。
KotlinとJavaの大きな違いは情報量にあります。Javaと互換性100%のKotlinはJavaと同等の開発要件をこなすことが出来ます。さらにJavaを簡潔化し、プログラマーにとって自由度が高くコンパクトなコーディングで済むという点でも違いはあります。しかし一番大きな違いはやはり情報量でしょう。Javaは誕生からの歴史も長く、世界中で利用されており多数の実績があることから活用におけるノウハウが数多く存在することがメリットとして挙げられます。他にも様々な観点で比較した内容は以下の表をご覧ください。
Kotlin | Java | |
汎用性 | ○(Javaに準ずる) | ◎ |
情報量 | △ | ◎ |
学習コスト | ◎ | ○ |
シンプルさ | ◎ | △ |
求人数 | △ | ◎ |
将来性 | ◎ | △ |
Kotlinの基本的な文法を見ていきましょう。
Kotlinの変数宣言では『var』と『val』の2種類があります。
変数宣言 | 内容 |
var | 変数への再代入可能 |
val | 変数への再代入不可 |
Kotlinではデータ型で使用される基本的な種類は以下の通りです。
(※基本的にJavaと同じ扱いになっております)
変数型 | サイズ | 範囲 |
Byte | 8bit | -128 ~ 127 |
Short | 16bit | -32768 ~ 32767 |
Int | 32bit | -2147483648 ~ 2147483647 |
Long | 64bit | -9223372036854775808 ~ 9223372036854775807 |
浮動小数点型 | サイズ | 範囲 |
Float | 32bit | 約(-)3.40282347E+38(約6~7桁の精度) |
Double | 64bit | (-)1.79769313486231570E+388(15桁の精度) |
Kotlinでは演算子で使用される基本的な種類は以下の通りです。
演算子の種類 | 概要 |
算術演算子 | 足し算や引き算を実行する |
論理演算子 | 理論を判定する際に用いる |
代数演算子 | 四則演算に代表される計算に使用される演算 |
代入演算子 | 「=」のことで左辺を右辺に代入を実行する |
比較演算子 | 左右の値の比較を行う演算子のこと |
ビット演算子 | 中置記法も利用できる関数 |
operator演算子 | 自作クラスでも演算子が使えるようになる |
インデックスアクセス演算子 | [i]で配列やコレクションの要素にアクセスするため |
レンジ演算子 | 範囲を表す |
イン演算子 | 範囲内にあるかどうかを判定 |
制御文ではwhile文、if文、when、break文を覚えておく必要があります。
Kotlinの代表的なフレームワークを見ていきましょう。
KtorとはKotlinに活用される非同期サーバーと非同期クライアントを構築するためのフレームワークです。「使いやすく、楽しく、非同期。」が同フレームワークのキャッチコピーと
して掲げられております。100%Kotlin製webアプリフレームワークでありCoroutinesを駆使した超軽量フレームワークとして人気を集めております。
Ktorの公式サイトはこちら>>
karaとはKotlinに活用されるJVMのWebフレームワークです。karaはモバイル開発会社であるTiny Mission社によって開発されました。「作業を高速化し、より優れたコードを書くこと」を目的に同フレームワークは誕生し、現在はKotlinの開発会社であるJetBrains社によって管理されております。
karaの公式サイトはこちら>>
Spring BootとはSpring Frameworkの機能の使い分けにおける問題点を解消すべく改良されたフレームワークです。主にJavaでのWebアプリケーション開発を効率的に行うために使用されます。基本的な機能はSpring Frameworkがベースとなっております。特徴は「XML設定ファイルが不要」「コーディング量の削減」などが挙げられます。
Spring Bootの公式サイトはこちら>>
Kotlinを理解するために初心者でも分かる歴史、特徴、できること、基礎知識などを簡単に解説させていただきました。Kotlinを一言で表すと『Javaと互換性100%のJavaよりも簡潔に書けるプログラミング言語』です。Androidアプリの開発において確固たる地位を確立したKotlinは今後も益々需要が増えていくことでしょう。特徴として①オブジェクト指向②Javaを簡潔化③JVM上で動作の3点があることは覚えておくと良いです。他にもKotlinについてこの記事に記載されている最低限の内容は理解しておくようにしましょう。