Kotlinとは?Java経験者も注目のプログラミング言語をご紹介
Android開発を目指すエンジニアが学習するプログラミング言語といえば、今はKotlinが挙げられます。Kotlinは誕生して10年あまり経ちます。その間、Kotlinを取り巻く状況はさまざまに変化してきました。Kotlinは学ぶ価値のある言語ではありますが、JavaやC#などに比べて歴史が浅い分、イメージがつきにくい面もあるかもしれません。
この記事ではKotlinの歴史や言語的な特徴、よく利用されている分野などについてご紹介します。
この記事の監修者
INTLOOP株式会社
TECH STOCK MAGAZINEサイト 監修部
TECH STOCKの運営会社であるINTLOOPで活躍している現役エンジニアで構成された監修部です。各領域の言語・スキルの知見を持ったメンバーが、現場の知見も含めて記事のチェック・監修を行っています。
Kotlin(コトリン)とは?言語の誕生と歴史
まずはKotlinがどのような経緯で誕生したかについて見ていきましょう。
Kotlinの誕生
Kotlinは2011年7月20日に誕生したプログラミング言語です。JavaやPHPなどの統合開発環境 (IDE)を開発してきたソフトウェア企業・JetBrains社により誕生しました。Kotlinは数あるプログラミング言語の中では、比較的新しい部類に入ります。
Kolinは2012年2月14日にオープンソース化、2016年2月15日に最初の安定版リリースとしてKotlin 1.0が発表されました。
Kotlinの言語としての特徴
KotlinはJavaを改良して開発されたプログラミング言語であり、Java仮想マシン上で動作します。
新しい言語としてKotlinが求められたのは、Javaが歴史のある言語であり、新しい言語と比べると仕様が古く、コードの記述がやや冗長な側面が見られるためです。Javaの利点を活かしつつ、コードの簡潔化やモダンな仕様を取り入れられるように、Kotlinが開発されました。
Android開発の正式開発言語
KotlinはAndroid向けアプリを開発する言語として知られています。もともとAndroidの開発言語はJavaでしたが、2017年にGoogleはKotlinをAndroid開発言語として正式に採用すると発表しました。採用理由としては、Androidのランタイムと完全な互換性があり、既存のコードとも相互運用できる、というものでした。現在ではタイプセーフ、nullセーフといった言語上の特徴から、利用を推奨されています。
現在はGoogleとKotlinを開発したJetBrainsが提携し、Kotlinの利用促進等を目的とした団体「Kotlin Foundation」を設立しています。
Kotlin Foundation
https://kotlinfoundation.org/
また日本にもKotlinの発展や情報共有などを目的にしたユーザーグループがあります。
日本Kotlinユーザーグループ
https://kotlin.connpass.com/
Kotlinでできること
KotlinはJavaの後継と評され、これまでJavaで開発されてきた分野でKotlinが使われるようになってきました。Androidのアプリ開発においては、Javaに代わり開発言語の第一候補にあげられるようになり、また、サーバーサイド開発でも使われるようになってきました。「アメーバピグ」や「LINE GAME」、「NewsPicks」、「出前館」といった著名なサービスにもKotlinが使われています。
Kotlinにはいくつかフレームワークが存在します。IT分野におけるフレームワークとは、特定の機能やツール、ライブラリなどをあらかじめ梱包した開発の土台となるものです。フレームワークを用いると、一から開発を行う場合と比べて開発スピードがアップします。Kotlinのフレームワークは、「Ktor」、「Spring Boot」、「Javalin」、「Jooby」が代表的です。
Kotlinの言語上のメリット
Kotlinの言語上のメリットは、安全性が高く、Javaと互換性があり、比較的簡潔に記述が可能であることです。詳しくご紹介します。
安全性が高い
Kotlinの言語の仕様には、よくあるプログラミングのミスを防ぐ仕組みがあります。例として挙げられるのが、null セーフ、タイプセーフ(型セーフ)です。
JavaやC#では参照型変数がnull値となる場合にエラーとなる、いわゆるnull参照エラーが発生します。このエラーを回避するためには、事前にnull判定などをいれてエラーが起こらないようにしなければなりません。対してKotlinはnullになりそうな場合、そもそもコンパイルエラーになり、事前にエラーを回避できる仕様になっています。
※null許容型変数もあります。
Javaと比べてコードが簡潔
KotlinはJavaよりもコードが簡潔です。下記は、同じ「クラス定義」に関する記述です。コード量を見比べてみると差がわかります。
Java | Kotlin |
public class Class1 { // フィールド private int par1; // コンストラクタ public Class1(int par1) { this.par1 = par1; } // メソッド private void iMethod() { // 処理 return; } } |
class Class1(private val par1: Int) { // メソッド private fun iMethod() { // 処理 return } } |
Javaと互換性がある
KotlinはJavaと互換性があります。そのためJavaで作成したシステムを移行しやすく、既存の開発資産を有効活用できます。またJavaとKotlinの両方を使って開発を行うことも可能です。
Javaとの互換性は、学習コストの面でもメリットがあり、Javaの経験がある人であれば、比較的学習コストが低いという声もあります。
Kotlinのデメリット
Kotlinは言語上の欠点というよりも、ほかの言語に比べて歴史が浅い点がデメリットとなりえます。
Androidアプリ開発以外の事例が少ない
KotlinはJavaの代替となる可能性を秘めたプログラミング言語であるものの、Androidアプリの開発における利用シーンが多いのが現状です。実際にフリーランスエンジニア向けの案件を紹介しているTECH STOCKでも、Kotlinが関係する案件はAndroidアプリ開発や開発支援が主です。
そのため、Javaと比較すると汎用性においては及ばないと言えます。ただし、大手企業がサーバーサイド開発にKotlinを利用しているケースも出てきており、今後Androidアプリ開発以外の事例が増えていくことは予想されます。
ドキュメントが少なめ
Kotlinは誕生から10年余りと歴史が浅い分、JavaやC#などほかの人気言語と比べ、Web上のドキュメントや参考書籍は少なめです。書籍販売サイトでJavaとKotlinの検索結果を比較すると、その数の違いがわかります。さらにKotlinで参考となるドキュメントは英語で書かれたものが多く、正式に日本語に翻訳されているものが少ないのが現状です。
ただしブラウザの翻訳機能を駆使して、ドキュメントの内容を把握することは可能です。
Kotlin学習方法
さてここでは、Kotlinの学習方法についてご紹介します。
プログラミング学習のコツ
プログラミング学習は、「反復して学ぶ」ことが大事です。これはKotlinに限りません。知識をインプットして実際にコーディングをしてアウトプットし、失敗と成功を繰り返すことで効率的にスキルが身につきます。
また教材を選ぶ際には、市場に出回っている教材をできるだけ確認し、自分のスキルに合ったものはどれかを吟味することも必要です。それでも教材選びに迷うのであれば、周りで活躍しているエンジニア、情報発信をしているエンジニアが勧める教材を候補にするのも手です。
Kotlinの教材は、Kotlin公式のトレーニングコースやプログラミングスクール、学習サイト、書籍があります。
【学習の方法1】公式のトレーニングコースで学習
Kotlinには無料のトレーニングコースがあります。
JetBrains Academy
JetBrains Academy が主催するトレーニングコースのうち、「Kotlin Core」などKotlinに関するものがあります。いずれも無料です。
https://kotlinlang.org/docs/faq.html#are-any-online-courses-available-for-kotlin
Android Developers
Android開発を目指すなら、下記も学習に使えます。下記ページではAndroid開発全般を学べ、開発に関連してKotlinやJavaについても学習が可能です。習熟度別のコースもあり、発展的な学習もできます。
https://developer.android.com/courses?hl=ja
【学習の方法2】書籍で学習
書籍で独学する方法もあります。Amazonの書籍部門でランキング上位となっている書籍をご紹介します。
速習 Kotlin: Javaより簡単!新Android開発言語を今すぐマスター 速習シリーズ
Amazon Kindle版の書籍です。Kotlinの基本について、サンプルコードとともに詳しく解説されています。
著者:山田祥寛
出版社 : WINGSプロジェクト
価格:Kindle Unlimited/会員は追加料金なし
https://www.amazon.co.jp/dp/B07HQMNLCV
やさしいKotlin入門
プログラミング超初心者でも読めることを目指した解説書です。Javaとの比較による説明はほとんどしておらず、他の言語をマスターしていなくても学習できる一冊です。
著者:野崎 英一
出版社 : カットシステム
定価:2,640円(税込)
https://www.cutt.co.jp/book/978-4-87783-427-2.html
Kotlinスタートブック -新しいAndroidプログラミング
JavaエンジニアやAndroidアプリの開発経験者を対象とした書籍です。2016年出版で少々古い内容もありますが、勉強用ややりたいことの逆引き用として定評のある一冊です。
著者:長澤 太郎
出版社 : リックテレコム
定価:3,850円(税込)
https://www.ric.co.jp/book/programming/detail/170
【学習の方法3】プログラミングスクールで学習
独学が難しい場合には、プログラミングスクールで学習する手もあります。Kotlinの学習コースの例を列挙します。
運営元 | TechAcademy | Udemy | Schoo |
コース例 | Androidアプリコース https://techacademy.jp/course/android |
Kotlin プログラミング入門講座 https://www.udemy.com/course/kotlin-developer/ |
Kotlinで始めるAndroidアプリ開発入門 https://schoo.jp/class/4427 |
Android開発における、アプリ作成~Google公開までを学べる講座です。講座の中には、Kindleの学習も含まれています。 | 実際にコードを書きながら Kotlin を学習できるコースです。 | モバイルアプリの開発経験がなく、これから始めてみたい人に向けた入門レベルの講座です。お試し受講も可能となっています。 | |
料金 | 4週間プランの場合 185,900円 | 4,200円 | 月額980円のプレミアムプラン内で受講可能 |
Kotlinの開発環境構築・インストール方法
Kotlinの開発環境は、Android StudioかIntelliJ IDEA(以下、IntelliJ)です。IntelliJはKotlin開発元であるJetBrains社が提供しているIDE(統合開発環境)で、無料でJavaやKotlinをサポートしています。
ここではWindowsでIntelliJを用いたKotlinの開発環境の構築方法を記載します。
JDKインストール
KotlinはJava仮想マシン上で動作するため、JDKをインストールします。
https://www.oracle.com/jp/java/technologies/downloads/
今回はWindowsにインストールするため、Windowsの「x64 Installer」を選択します。
ダウンロードしたexeファイルを実行し、インストールウィザードを順に進めていきます
次の画面が出たらインストールは完了です。
IntelliJ IDEAインストール
下記サイトにアクセスし、exeファイルをダウンロードします。無償版であるCommunityと有償版のUltimateがあり、今回はCommunityをインストールします。
https://www.jetbrains.com/ja-jp/idea/download/?section=windows
ダウンロードされたexeファイルを実行すると、インストールウィザードが立ち上がります。
ウィザードを順に実行していけばインストールが完了します。
IntelliJを起動し、下記の画面が出ればインストールが正常に完了しています。(途中注意書きが表示される場合があります)
日本語環境にするには、メニューの「Plugins」>「Marketplace」欄で「Japanese Language Pack」を検索し、インストールします。
IntelliJを再起動すると、日本語環境となります。
コードを試すだけなら「Kotlin Playground」でも可能
Kotlinのコードを試すだけであれば、Web上で処理を実行できるサイト「Kotlin Playground」があります。インストールが可能な環境がない場合には、このサイトで試してみてください。
Kotlin Playground
https://play.kotlinlang.org/
まとめ
Kotlinの特徴からインストール方法までをご紹介しました。Kotlinの開発環境のインストールはさほど難しくなく、公式のトレーニングコースもあるため、じつはKotlin習得のための環境はそろっているといえます。次に学ぶプログラミング言語選びに迷っているのであれば、ぜひ一度Kotlinをお試しください。