2017.10.12
教えて、長澤太郎さん!非エンジニアもKotlinは学べる? Googleが採用した新言語の特徴とは。

教えて、長澤太郎さん!非エンジニアもKotlinは学べる? Googleが採用した新言語の特徴とは。

初心者がプログラミングを学ぼうと思っても選択肢が多くて迷う…。そんな悩みを少しでも解決したい! そこで今回はGoogleがAndroidアプリ開発に公式採用した「Kotlin」に注目。第一人者である長澤太郎さんを直撃取材。初心者向けにもKotlinってアリ?ナシ?

Kotlinの特徴とは? 日本の第一人者である長澤太郎さんに訊きました。

Android開発の現場において、注目を集めるプログラミング言語「Kotlin」。

GoやScalaなどで開発を進めていく企業が増えるなか、Kotlinの事例はあまり多くない。まだまだ謎に包まれた言語といっていいかもしれない。そこで、日本におけるKotlinの先駆者、長澤太郎さんに話を伺った。

「たろうさん」の愛称で親しまれている彼は、日本初のKotlin解説書「Kotlinスタートブック」を執筆。Android開発者が500人以上あつまるイベント、Droid Kaigiへの登壇経験も。じつは第一人者になれたのは、偶然もあったようだ。


Kotlinとの出会いは2012年。Kotlinの紹介記事を読んだときに、すぐ面白そうだと思いました。ただ、当時はコンパイラや動作環境が公開されておらず、ひたすらドキュメントを読み進めていました。まわりでやっている人もいなかったし、自分が一番乗りをしよう、と。…ちなみに自分のツイッターを遡ってわかったのですが、Kotlinと出会って1ヶ月後くらいに「Kotlinの本はオレが書く!」ってツイートしてますね(笑)

first tweet
※本当に言っていたか編集部で検証。実際に言ってました。(2012年1月の実際のツイートより)


そして有言実行、実際にKotlinの専門書を執筆し、出版にこぎつけた、たろうさん。彼にKotlinの特徴、はじめるときの注意点について話を聞くことができた。

[目次]
・Kotlinは「いいとこ取り」の言語ってホント?
・Kotlinは玄人向けにもおもしろい!
・Kotlinを学び進めていく方法。「変態コード」を書いてみよう!
・たろうさんがおすすめする、Twitterアカウントは?
・理解をふかめるためのWebサイト
・Kotlinには手をださないほうがいい!? Android開発の注意点


<プロフィール>
長澤太郎 |Taro Nagasawa エンジニア
2012年3月に早稲田大学情報理工学科を卒業。同年4月、メーカー系SIerに入社。2013年10月にエムスリー株式会社に入社し、現職。国内最大級の医療情報プラットフォームである「m3.com」のAndroidアプリの開発、医薬品情報サービスの「MR君」のAndroid版の開発を担当。「MR君」はKotlinを使用している。

Kotlinは「いいとこ取り」の言語ってホント?

ーまずはじめに、プログラミング初級者について伺いたいと思います。最初に選ぶ言語として、Kotlinはオススメでしょうか?

その人のやりたいことによりますが、プログラミングを初めてやるという人にはSchemeを勧めたいですね。Kotlinは勧めないかもしれません(笑)

とはいえ私はKotlinのエバンジェリストを勝手に名乗っているので、Kotlinについてお話すると、既存の多くのプログラミング言語の影響を受けていて、いわば「いいとこ取り」した言語といえます。そして、Javaのライブラリやフレームワークを使えるという特徴があります。

たとえば、同じ結果を表示するプログラムを書くときに、プログラミングする量がすくなくて済みます。”Hello, world!”という文字を表示させるプログラムを比較してみましょう。

Javaのコード

 public class Hello {
  public static void main(String[] args) {
   System.out.println("Hello, world!");
  }
 }


Kotlinのコード

 fun main(args: Array) {
  println("Hello, world!")
 }


いかがでしょう。簡単そうですよね。

もし、Kotlinに興味をもってもらえたら、Webアプリを作るところまでぜひやってみましょう。…と、記事の文面では説明がしきれないので、こちらの本を参考に勉強してみるのもいいかもしれません。



kotlin本を紹介する太郎さん


ー 宣伝っすね...


はい... 私が書いた本です。10月6日に発売しました(笑)


ー な、なるほど。


半分冗談です。ただ、初心者向けに書いた本なのでぜひ手にとってみてください。私の本でなくてもそうなのですが、仕組みを知りつつ、実際にアプリをつくるまで網羅するなら本を買って勉強したほうがいいと思います。Webから記事をあつめるって大変じゃないですか。ぜひ体系的に学んでみてほしいですね。

Kotlinは玄人向けにもおもしろい!

ー もう少しだけ「Kotlinにできること」と注目されている背景を教えてください。

多くのプログラミング言語に触っていれば、どこかで見たことのある機能や文法を多く含んでいるというだけで。

なので、じつはプログラミングに触れてきたプログラマーのみなさんにこそおすすめの言語でもあります。ここからは完全に玄人向けの話ですね(笑)

たとえば、先ほどJavaと比べて「シンプルに書ける」という特徴を挙げましたが、もう一つ「Null(ヌル)」という概念の扱いがユニークなんです。Null*の扱いを慎重にすることで、バグを未然に防ぐ「Null安全」という機能がKotlinにはあります。

(*) Nullは、ある変数に対して値を代入するときに、その値が存在しない状態。意図せず発生させると、それがバグとなりシステムを壊してまう。

常にこの「Null」という概念を上手く処理したい。きっとプログラマーなら共感してもらえるはずです。そういった時にKotlinは選択肢の1つとしてになり得るということ。

ただ、注意いただきたいことも。Kotlinはこのブームの中、銀の弾丸みたいな感じで大きな期待を集めているような気がしますが、べつにKotlinは最強の言語でも、理想の言語でもないんですよね。目の前の問題に対処するための十分な機能のみを提供しているだけ。

…理想としてはNullのない世界、あるいはNullを特別視せずに、より抽象的な概念として扱う世界でプログラミングができたらいいなぁと思います(笑)。

Kotlinを学び進めていく方法。「変態コード」を書いてみよう!

物思いにふける太郎さん

ー Kotlinのおもしろさがわかってきたがします!ちなみに太郎さんはどう学んでるんですか?

とにかく調べて、実践する、というサイクルをまわしています。

新しい機能がでるとすぐ、それがどのようなものか、なにが実現できるか調べる。そして、実際にプログラムを書く。

書くときは、それぞれの機能の「表現力」の限界をみてみるのがおもしろいです。私は「変態コード」と名付けています。たとえば、このスライドの下のやつが、実際に私が書いたコードなんですが...(まぁこれはわりとマイルド)

変態コード


ー 理解に苦しみます...

ちょっとわかる方なら、これ、奇妙に見えるかもしれません。ただ、Kotlinのルール的にはおかしくないコードになっているんですよね。コンパイラ*は理解できる。

(*)コンパイラ... 書いたプログラムを、実行するための機械が解釈できるように変換するための変換装置。

こういうコードをTwitterで探して、どうなっているのか研究してみたり、自分で書いてみたり。そうすることで個人的にはかなり学びが深まっています。成長するにはとにかくたくさん書く。これしかないと思います。

とはいえ、こういう謎なコードを業務で書いたりはしていませんし、書く必要もないと思っています。ただの遊びでやっているだけなので、怖がらないでください(笑)

たろうさんがおすすめする、Twitterアカウントは?

ーKotlin学び進めていく上で、フォローしておくべきTwitterユーザーはいますか?

Kotlinに関して言えば、とりあえずKotlin入門のための助走読本の著者をフォローしておくといいともいます。

@aa7th さん
@_a_akira さん
@shiraj_i さん
@magie_pooh さん
@satorufujiwara さん
@RyotaMurohoshi さん
@sys1yagi さん
@boohbah さん
@yy_yank さん
・そして私 @ngsw_taro

ざっとこんなもんでしょうか。

理解をふかめるためのWebサイト

ーつづいて、Kotlinを学び進めていく上で、参考すべきWebサイトはありますか?

なんといっても公式サイトが一番ですね。機能の説明が淡々と羅列されているのではなく、なぜその機能が追加されたかということもまで書かれています。


公式サイト

kotlinの公式サイト


あとは、Awesome Kotlinというリンク集です。ここを眺めているだけでも勉強になります。


ドキュメントや、本などへのリンク集

awesome kotlin


あとは、Kotlin公式ブログですね。細かいリリースのたびに情報が更新されるのでチェックするようにしています。


公式ブログ

awesome kotlin


Kotlinには手をださないほうがいい!? Android開発の注意点

笑う太郎さん

-最後に、Androidのアプリ開発における「Kotlin」」について聞かせてください。GoogleがAndroid開発の言語として公式採用したということもあって注目が集まっていますよね?

やはりその話題きましたね(笑)「Androidのアプリ開発」については補足が必要だと思っています。

Android開発はこれまでJavaが主流でした。そこにKotlinが出てきて、Android開発がしやすくなると感じているプログラマーもいるはず。Webアプリにしてもそうですが…Androidに関してもKotlinから学び始めるのは、注意が必要かもしれません。

なぜなら、AndroidのSDK*がJavaで書かれているので、必ずJavaとKotlinを連結する作業が必要になってくるからです。どうしてもJavaを意識した書き方で書かなければならない部分がでてきます。

(*) SDK… Software Development Kitの略称。Android開発に必要な、ライブラリやパッケージ、エミュレータなどがセットになっている。

同時にJavaとKotlin、その2つがわかれば、もっとAndroid開発は楽しくなると思います。Javaにはない便利な機能もKotlinはたくさん取り揃えていて。Javaに触れたことがある人や、Android開発を以前やったことがある人は、ぜひKotlinでチャレンジしてみてほしいですね。

ぼくは「自称」エバンジェリストなだけですが…Kotlin愛は誰にも負けません!つまづいたり気になることがあったら気軽にTwitterでメンションをいただければと思います。また、「どこでもKotlin」という勉強会を定期的に開催しているので、情報のキャッチアップやKotlin仲間との交流にぜひ活用していただきたいです!

(おわり)

特集記事

イノベーターたちの「習慣」と「実践」

『7HACKS』は世の中を沸かし、仕掛けつづけるイノベーターたちの「習慣」と「実践」に迫るキャリアハックの特集です。イノベーターたちの知られざる日々の習慣から、読書法、自らに課したマイルール、ライフハック、仕事に対する考え方まで、幅広くご紹介。明日からの仕事への活力が湧いてくる、そんなコトバと共にお届けします。

お問い合わせ
取材のご依頼やサイトに関する
お問い合わせはこちらから