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

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

  • careerhack
  • 更新日:2017/10/12
No image

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

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

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

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

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

そして有言実行、実際に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アプリを作るところまでぜひやってみましょう。…と、記事の文面では説明がしきれないので、こちらの本を参考に勉強してみるのもいいかもしれません。

No image

ー 宣伝っすね...

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

ー な、なるほど。

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

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

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

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

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

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

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

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

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

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

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

No image

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

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

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

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

No image

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

ちょっとわかる方なら、これ、奇妙に見えるかもしれません。ただ、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サイトはありますか?

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

公式サイト

No image

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

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

No image

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

公式ブログ

No image

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

No image

-最後に、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仲間との交流にぜひ活用していただきたいです!

(おわり)

この記事をお届けした
グノシーの最新ニュース情報を、

でも最新ニュース情報をお届けしています。

IT総合カテゴリの人気記事

グノシーで話題の記事を読もう!
SNSの広告配信に対して不快感を持つ人が急増
ドコモ冬スマホ最強はコレ? 「AQUOS sense」は3万円で料金割引もある高性能ミドル機
ドコモの格安スマホ『新MONO』、約36倍の値上げでも「安い」といえる理由
落とし物防止に確実な「電子鈴」を衝動買い!
あおり運転の記録を残せる、1台のカメラで360度撮影できるドラレコ
  • このエントリーをはてなブックマークに追加