Kotlin入門前
Andoridアプリなどを開発するために使える言語のひとつのして、Kotlin(コトリン)という言語があります。
今回はKotlinの経緯と特徴を簡単にご紹介します。
経緯が分かれば、新しい発表などがあったときに理解しやすいです。それにKotlin関係のアップデートをはじめとした新しい情報の収集が楽しめるようになります。
Kotlinを作った会社
Kotlinを作ったのはチェコに本社を置くJetBrainsという会社です。
この会社はIntelliJ IDEAというJava用の開発環境を開発していることで有名です。開発環境とはコードを書きやすくするエディタやプログラムを管理するソフトウェアなどをまとめた、開発を効率的に進めるためのアプリケーションのことを指します。
ちなみにAndroid用の開発環境である AndoridStudio も IntelliJ IDEA をベースに作られています。
さてKotlinはJetBrains社の研究所で生まれました。
研究所はロシアの西側にあるサンクトペテルブルクというところにあります。近くにコトリン島という小さな島が存在することから言語の名前が決まり、2011年7月20日に発表されました。
ちなみに、Kotlinはフィンランド語でやかんを表しており、昔のロゴマークもやかんでした。
それから約7か月後の2012年2月14日にKotlinはオープンソースになり誰でも開発に参加できるようになります。
その後さらにこの言語が注目されたきっかけとなる一つのイベントがあります。
2017年5月17日から開催された「Google I/O 2017」です。Google I/O には多くの開発者が集まり、Googleはそれに合わせて色々な発表をしていたりします。
2017年ではその中に、Androidの正式な開発言語をKotlinにするという発表がありました。その発表を受けてからKotlinは急速に広まります。
なぜ別の言語を開発したか
JetBrains社は先述した通りすでに使いやすいJava用の開発環境を公開、販売しています。またJetBrains社が開発した製品のほとんどはJavaで構築されています。
このことからJetBrains社はJavaを熟知しているスペシャリストと言えるでしょう。良いところも悪いところも知り尽くしていると思います。
ただJavaは20年以上の歴史をもつ言語です。だからこそコードが冗長であったり、前のバージョンとの互換性を保つために新しい考え方を取り入れにくくなっていたりと問題点がいくつかありました。
そういった問題点からJetBrains社はこのまま続けるとメンテナンスなどの作業量が多くなりすぎてしまうのではないかと思うわけです。市場の変化がはやい中、そのようなことに時間を取られたくはありません。
しかしそこで全く新しい言語に乗り換えようとすると、Javaで書いてきた既存のプログラムをすべて新しい言語に書き換える必要があります。
・今までの使っていた言語の改善
・既存のプログラムはあまり書き換えたくない
このような問題をはじめとした現場での現実的な問題の解決策としてKotlinが開発されました。
Kotlinの特徴
Kotlinを使うとよく言われるメリットに「簡潔に書ける」が挙げられます。
簡潔に書けると何が良いかと言うと、単純にコードを書く回数が減ります。回数が減るとその分ミスも減り、結果的にバグが起こりにくくなります。
そしてコード全体がシンプルになり読みやすくなるため、メンテナンスなどにかかる時間も削減できます。
他にもKotlinではエラーを未然に防ぐための文法上の仕組みも存在していたりと安全性が高いです。
またJavaとの互換性もあります。
言語によっては書いたコードをそのまま実行できないものがあります。そのような言語ではコードを「実行できる形式のファイル」に変換する必要があります。
この変換をコンパイルと呼びます。コンパイルによってJavaでは拡張子がclassのファイルが生成されます。
コード(.java) -> コンパイル -> 実行できる形式のファイル(.class)
これを専用のプログラムで読み込むと、書いたプログラムが実行できるという仕組みです。
Javaでは専用のプログラムとして Java Virtual Machine (JVM) を使います。英語が並んで難しい名前ですが、実行のために必要なんだなーという程度の認識で十分です。
コード(.java) -> コンパイル -> 実行できる形式のファイル(.class)
-> JVM -> 実行
KotlinがJavaとの互換性を持つ理由は、コンパイル時に生成されるファイルがclassファイルのためです。
最終的にJVMが読み込んで実行するためKotlinはJavaとの互換性を持ちます。
コード(.kt) -> コンパイル -> 実行できる形式のファイル(.class)
-> JVM -> 実行
これにより必要な部分だけKotlinで書き、特別な理由がありKotlinで書きにくい部分はJavaを使うなど、ひとつのプロジェクト内で共存させることが可能になります。
・シンプルに書ける
・安全に書ける
・Javaと共存して書ける
もちろんJavaも現在更新され続けていて、Javaを使うメリットもありますので、プロジェクトに合わせて必要なものが欠けないように使い分けていくといいと思います。
まとめ
・JetBrains社が開発
・GoogleがAndroidで使うと発表した
・開発現場で起こる問題に対応
・簡潔に書ける
・Javaと共存できる