支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡

  • TOP
  •   
  • コラム
  •   
  • Kotlinとは? 初心者向けに解説

Kotlinとは?

KotlinとはJetBrains社が開発したオブジェクト指向プログラミング言語です。2017年にGoogleはAndoroidの公式言語にKotlinを追加しました。今後の注目が集まるKotlinの特徴や将来性などを紹介していきます。

Kotlinの歴史

Kotlinの発表は2011年と比較的新しい言語です。その後2012年にオープンソース化されたことで大きく成長しました。そして2017年にGoogleのAndoroid開発の公式言語への追加を発表したことでその広まりを証明しました。さらに2019年にはAndoroid開発の推奨言語に格上げされました。人気ランキングや学びたい言語ランキングなどでは上位に登場しています。比較的新しい言語ながら今後の広まりにますます期待できる言語です。ちなみにKotlinの由来は開発地に近かったコトリン島からとったそうです。ロゴはKotlinがやかんを表すフィンランド語ということからやかんを表しています。

Kotlinの開発元JetBrainsとは?

JetBrains社はチェコに本社を置くソフトウェア開発企業です。もともとは様々な言語の統合開発環境(IDE)を主製品としていました。Javaの統合開発環境(IDE)ではIntelliJ IDEAが有名です。海外ではJavaのIDEのシェアはEcripseよりもIntelliJ IDEAの方が高いといわれています。そういったJavaを知り尽くしたJetBrains社がJavaをより簡潔に表現したいという思いで開発した言語ということでも世界中から注目を浴びました。Andoroid開発のIDEで最もメジャーなAndoroid Studioの開発もJetBrains社です。

Kotlinの特徴

Javaとの互換性

Javaをより簡潔にわかりやすく表現するという思いから公式でJavaとの相互運用性を提供すると宣言しています。ですのでKotlinコードからJavaのコードを呼び出したり、またはその逆を行うことが可能です。

簡潔な記述

Javaでは何行も記述しなければならないコードを1行で表現できることもあります。身近な例でいうと行末の「;」は任意だったりGetterとSetterを記述しなくても補ってくれるなどです。このような記述は初心者の学習コストの低下、コードの減少に伴うミスの減少、生産性の向上へもつながります。

安全なNull回避

Javaを使用していれば一度は見たことがある「NullPointerException」という例外があります。これは参照しようとしている参照型変数がNullの場合に発生する例外です。この例外に対してKotlinではNullを格納する可能性のある変数を使用する場合にNullチェックを行わないとコンパイルエラーが発生します。つまりコンパイラが自動的にNullをチェックするよう強制します。このように、簡潔な記述を目指すだけでなく安全性を高める仕組みを持っている言語なのです。

静的型付け

Kotlinは静的型付け言語です。説明するには静的型付けと対比される動的型付けで説明するとわかりやすいでしょう。両者の違いを変数宣言で例えます。静的型付けでは変数宣言時には型をあらかじめ明示しておきます。var a: Int = 1(Kotlinの変数宣言は後ろにつきます)とあればInteger型(整数)のaという変数を宣言し2を代入したことになりますね。この記述はプログラム実行前に一度コンパイルでチェックされます。その際にint型にも関わらずString型が入っていればコンパイルエラーが起きるためプログラムが実行される前に整合性を取らなければなりません。よって整合性を取った後にコンパイルされ実行されるため実行時の整合性のチェックをする必要がないため実行速度が速いです。

対してJavaScriptやPythonなどのスクリプト言語は動的型付けと呼ばれます。先ほどの変数宣言の例でいうと動的型付けはプログラムを書く際に型付けは行いません。実行時に型の整合性チェックが行われるため、その分それらのチェックがコンパイル時に行われている静的型付けよりも処理が遅くなります。

厳密な制約の多い静的型付け言語は堅牢なシステムを作る際に重宝されます。厳密な制約があるため他人がコードを使いやすいという利点もあるので多人数開発にも向きます。対して動的型付け言語は余計な記述が減り、素早く開発できるため小規模な開発に向いているといえるでしょう。他にも最近の多様化するニーズや時代の変化に対応するためには開発コストが抑えられる動的型付けの需要が上がっています。また初心者という観点からみると動的型付けの方が直感的にコードが記述でき学習コストが低い点から向いているといえます。しかし、Kotlinのコンセプトを思い出してください。KotlinはJavaを簡潔に表すことを命題の一つにしています。よって静的動機付けのメリットを享受しつつ開発コストが抑えられる新世代言語といえるでしょう。

Kotlinの需要

求人数に関しては2020年10月現在JavaやPHPといったメジャー言語に比べると少ないです。しかし、AndoroidといえばKotlinという強みもありますしJavaからの置き換えも進むでしょう。そういった意味で今後の需要はかなりありますし給料も他の言語に比べ高い傾向にあります。なによりGoogleのお墨付きというのも大きいです。

初心者でも学べる?

初心者でも最初の言語としてKotlinはおすすめです。簡潔な記述といった学習のしやすさ将来性からいっても申し分ないです。さらに公式ホームページでは、初心者向けのガイド、参考資料、トレーニング資料が無料で公開されています。Kotlinを学んでいればJavaを学ぶ時にも大いに役立ちます。
プロジェクトによってはJavaとKotlinでセットで考えているところもあります。JavaからKotlinへのリファクタリングやJavaの開発資産をそのまま流用するといったJavaとKotlinの両方の知識が必要とされる場合です。といってもAndoroid開発の求人ではKotlinのみで募集しているものもたくさんありますし今後その傾向は加速するでしょう。

まとめ

以上、Kotlinの概要を初心者の方向けに紹介しました。Android開発ではますますKotlinファーストが進んでいくでしょう。今後の動きに一層注目したいですね。