スクエアとツイッターのCEO、ジャック・ドーシー。
Thomson Reuters
- GitHubによると、Kotlinは最も成長しているプログラミング言語。グーグル、スクエア、ピンタレスト、ピボタル、キャピタル・ワン、アトラシアンといった企業での使用が増えている。
- Kotlinは2010年、Javaに代わる言語としてソフトウエアツール企業、ジェットブレインズが開発した。アプリケーションのクラッシュの原因となる「ヌル・ポインタ・エクセプション(NullPointerException)」のような複数のJavaの「問題点」を取り除いた。
- Business Insiderは、なぜKotlinを使うことに決めたのか、なぜアンドロイド開発者にこれほど愛されているのかについて、さまざまな企業に聞いた。
スクエア(Square)のソフトウエアエンジニア、ヴァレリー・オベチキン(Valeriy Ovechkin)が同社のフードデリバリーアプリ「Caviar」に携わった時、アプリはJavaで書かれていた。
Javaは世界で最も広く使用されているプログラミング言語の1つであり、オラクルが買収したサン・マイクロシステムズが開発した。一般的にデータベースとアンドロイド・アプリの開発に使われている。
しかし、開発者たちによると、1995年に登場したJavaは今となっては少しぎこちないところがある。アンドロイドアプリの開発者は今では、新しいオープンソースのプログラミング言語「Kotlin」でアプリを開発することが増えている。Caviarも今では100%、Kotlinで書かれている。
「Kotlinはそれ自体がモダンなプログラミング言語」とオベチキンはBusiness Insiderに語った。
「Kotlinには開発をより楽しくする機能がある。また理解しやすくて、表現力があり、開発するコードも少なくて済む」
Kotlinの人気は急速に高まっている。グーグル、スクエア(Square)、ピンタレスト(Pinterest)、ピボタル(Pivotal)、アトラシアン(Atlassian)といった企業で使用されている。
GitHubによると、Kotlinは一番成長している言語、この1年で2.5倍以上に成長した。ソフトウエア開発者のコミュニティサイトStack Overflowによると、人気のある言語のトップ5に入っている。Kotlinをテーマにした交流会も開かれている。
GitHubによると、Kotlinは一番成長している言語。
Business Insider
「Kotlinの面白い点は、基本的にJava開発者の既存スキルを活用し、新しい機能と、Java開発者が苦労せずに、より効率的に開発するための適切な着地点を見つけるところ」とピボタルのエンジニア、セバスチャン・ドゥルーズ(Sébastien Deleuze)は語った。
「パッション・プロジェクト」
Kotlinは2010年、Javaの「問題点」を修正するためにソフトウエア開発ツール企業ジェットブレインズ(JetBrains)によって作成された。
「我々がKotlin開発に取り組み始めた頃、Javaは極めて冗長な言語だった」とジェットブレインズの開発者サポート担当バイスプレジデント、ハジ・ハリリ(Hadi Hariri)はBusiness Insiderに語った。
「コードを動作させるためにやらなければならないことがたくさんあった。我々はJavaの良い点は踏襲し、問題点は取り除いた。そして開発者はKotlinに恋するようになった」
2017年5月、グーグルがKotlinを認め、アンドロイド開発チームはKotlinを最優先でサポートすると発表すると、Kotlinは爆発的に広まった。
Kotoinは通常、アンドロイドアプリの開発に使用される。
Getty
これはアトラシアンのモバイル開発チームがKotlinを採用した理由でもある。当初、開発にKotlinを使用することには躊躇したと、同社モバイル開発の責任者ジェリー・チェン(Jerry Cheng)は述べた。アンドロイドの全面的なサポートがなければ、Kotlinに投資することは危険と考えた。
しかし、グーグルが公式にサポートを発表したことで、チームはKotlinの使用に踏み切った。現在、アトラシアンは、Trello、Jira、Confluenceといったさまざまな製品のアンドロイドアプリ版にKotlinを使用している。
「アトラシアンがモバイルに取り組み始めたばかりだったことは幸運だった」とチェンはBusiness Insiderに語った。
「我々はKotlinを極めて素早く、広範囲に導入した。多くのメリットがあった。より簡略化されていて、コーディングとメンテナンスで本当に役に立つ。Kotlin導入以来、あらゆる面が向上した」
同様にスクエアのオベチキンはCaviarアプリを「パッション・プロジェクト」としてKotlinで書き直すことにした。彼はスクエアの開発作業がスピードアップすると考え、そのアイデアをチームに提案した。
2017年9月、彼はCaviarの書き換えに着手した。それ以降、アプリの新機能はKotlinで開発し、徐々にアプリの他の部分もKotlinで書き換えていった。
「素晴らしいことは、ユーザーに目立った影響を与えずにアプリの書き換えを行ったこと」とスクエアのCaviarのエンジニアリング責任者、ミッチェル・ホワイト(Michael White)は語った。
「10億ドルのミス」を避ける
Kotlinを使うと、コードがより簡潔になり、全体量は少なくなり、管理が簡単になる。エンジニアは構文に行き詰まることなく、より複雑で大きな問題に集中できる。オベチキンはコードの量は15〜25%少なくなったと見積もった。
Javaの場合、ソフトウエア開発者は「ヌル・ポインタ・エクセプション(NullPointerException)」と呼ばれるバグに悩まされていた。
Javaは、変数にデフォルトで「null(空)」を置くことができる。つまり、変数に値が付加されない状態。「NullPointerException」では、アプリケーションの実行中にコードは変数を参照しているが、その変数に値がない。
その結果、アプリケーションにはクラッシュする。null参照を作り出したコンピュータ科学者トニー・ホーア(Tony Hoare)は以前、これを彼の「10億ドルのミス」と呼んだ。
Kotlinは開発者がこの問題に陥らないようにした。開発者が明示的に設定しない限り、変数を「null」とすることができない。これにより、Kotlinで書かれたアプリはより安定し、クラッシュする可能性が低くなる。
CaviarをKotlinで書き換えることには多大な労力が必要だったが、それだけの価値はあったとオベチキンは述べた。
「もしあなたが結果を信じるなら、リスクはない」とオベチキンは語った。
「あなたがやらなければならないことは投資、それと学習」
KotlinとJavaを混ぜ合わせる
もう1つの利点は、KotlinとJavaの互換性。Javaは通常、アンドロイドアプリの開発に使われている。
本質的に、開発者は両方の言語を組み合わせることができる。KotlinはJavaと完全な互換性があるため、開発者はアプリを段階的に書き換えていくことができる。
アトラシアンの共同CEO、マイク・キャノン-ブロックスとスコット・ファークワー。
Atlassian
スクエアはCaviarアプリをKotlinで完全に書き直した。一方、アトラシアンは、Javaで書かれたアプリを残した。だが、新機能の開発にはKotlinを使っている。
チェン氏は、アトラシアンは単にアプリを書き換えるためだけに時間を費やすことはしないが、Javaは徐々になくなっていくと考えていると語った。
「我々を特徴づけていることは、Kotlinで開発していること。ですが、単に均一性を達成するためにすべてを書き直すことはしない」とチェン氏
「新しい機能を追加する時に、時間があり、価値があれば、書き直しを検討するだろう」
アトラシアンと同様に、キャピタル・ワン(Capital One)は2つの言語が「うまく連携して」動作するため、同社のモバイルバンキング・アプリをKotlinで書き直す計画はないと同社エンジニアリング担当バイスプレジデント、キース・フォーサイス(Keith Forsythe)氏は語った。
フォーサイス氏によると、同社のアンドロイドエンジニアの約半数がKotlinを使い、半数がJavaを使っている。
「我々は開発者の経験にかなりの情熱を注いでいる。我々は、我々の役に立ち、さまざまな利点をもたらすことができる新しいテクノロジーを探している」
戻ることは決してない
スクエアでは、Kotlinはアプリ開発に役立つのみならず、エンジニアの採用にも役立っている。Caviarのエンジニアリングの責任者であるホワイト氏は、スクエアがKotlin使用の最先端に立つことを望んでいる ── スクエアがリーダーであるという事実は、人材採用時の「差別化要因」になる。
アトラシアンのチェン氏はまた、Kotlinはソフトウエア業界への参入障壁を低くすると述べた。Kotlinはモダンで使いやすい言語、プログラミングを学ぶ人材の数を増やすことができる。
「プログラミング言語をモダナイズし、コンピュータープログラミングが抱える課題に注意を払うことは、プログラムやソフトウエアの書き方を学ぶ人を増やすことにつながる」とチェン氏は述べた。
開発者は、実績のある古い言語のJavaに戻ってくるだろうか?
オベチキン氏は「それは厳しい」と述べた。スクエアにおいては同氏もホワイト氏もあえてJavaを使うことにメリットはなく、時間が経つにつれてJavaは少なくなっていくと予測している。
「ツールがうまく機能し、何度も問題を解決できた時に得られる充実感と満足感」とホワイト氏。
「それを何度も繰り返し感じて、情熱がますます増していく。多くのエンジニアがKotlinでそれを感じている」
(翻訳:Toshihiko Inoue、編集:増田隆幸)