visible true

技術的なメモを書く

Kotlin in Action はとてもいいのでとりあえずAndroidエンジニアは全員読むのがいいと思います

献本頂きました。ありがとうございます。

Kotlin in Actionとは

Kotlin in ActionはJetBrains社でKotlinの開発に参加しているDmitry Jemerov氏とSvetlana Isakova氏がJava開発者向けに書いたKotlin1.0の解説書です。

Kotlinが生まれた経緯、Kotlinの言語機能に関する網羅的な解説、高度な利用法の解説がどっさり400Pくらいに渡って書かれています。

原著が2017年2月発売なので、ちょうどKotlin 1.1がリリースされる直前です。ですのでKotlin 1.1以降に関する内容は含まれていません。 1.0と1.1や1.2はそこまで差分はないので、本書で十分Kotlinを学べると思います。

Kotlin in Actionのここがいい

本書のいいところはKotlinのリード設計者のAndrey Breslav氏が寄せた前書きと、序文(これはだれが書いたか明記されてないので不明)に詰まってるなぁと感じます。 以下引用します。

前書き

2010年の春、私が初めてJetBrainsを訪れたときには、世界はもう汎用目的のプログラミング言語を必要としていないだろうということを全く疑っていませんでした。 既存のJVM言語は十分優れていると考えており、それなのに誰かが責任を持って新しい言語を作るというのでしょうか?しかし、1時間ほど大規模なコードベースにおける生産上の課題について議論したあと、私はそうではないと確信しました。そして、のちにKotlinの一部になる最初のアイデアがホワイトボードに書かれました。私はこの言語の設計をリードするため、そしてコンパイラの開発に取り組むために、すぐにJetBrainsに入社しました。・・・

序文

Kotlinのアイデアは、2010年にJetBrainsで考案されました。その頃のJetBrainsは、JavaC#JavaScriptPythonRubyPHPなどの多くの言語に対応した開発ツールのベンダーとして地位を確立していました。「IntelliJ IDEA」(我々の主力製品であるJavaIDE)は、GroovyやScalaプラグインも含んでいます。 このような多種多様な言語のツールを開発した経験は、言語設計の空間の全体の見方とユニークな理解を我々に与えてくれました。とはいえ、IntelliJ IDEAを含むIntelliJプラットフォームベースのIDEは、まだJavaで開発されていました。モダンで強力で素早い進化をする言語であるC#で開発をしている.NETチームの同僚に対して、若干のうらやましさがありました。しかし、我々はJavaの代わりに使用できる言語を知りませんでした。 そのような言語の要件はなんだったでしょうか?まず最初の、そして最もわかりやすい要件は、静的型付けです。発狂せずに長年に渡って数百万行のコードベースを開発するには、これ以外の方法は考えられません。第二に、既存のJavaコードとの完全な互換性が必要でした。JavaのコードベースはJetBrainsにとって非常に貴重な資産であり、これを失うこと、あるいは相互運用性の困難さによって価値を下げることは回避しなければなりません。第三に、道具としての品質の面で、いかなる妥協も受け入れたくありませんでした。開発者の生産性は、JetBrainsという会社にとって最も重要な価値を持っています。そして、優れた道具は高い生産性の達成に不可欠です。最後に学びやすく論理的に考えやすい言語が必要でした。我々の会社にとっていまだに満たされていないニーズがあるならば、それは他社でも同様でしょう。この問題の解決策が、JetBrains以外でも多くのユーザーを満足させるはずです。この点を考慮して、新しい言語であるKotlinの開発プロジェクトに踏み切る決心をしました。・・・

現実の課題を解決するために言語を作っていることが伝わってきます。 Kotlinを気に入った人たちが口にする「簡潔に書けて強力で最高」とか「導入も簡単で相互運用も難しくなくて良い」とか、そもそもそれを狙ってたんやで!という事がわかります。完全に計画通りですね。そんな本書はどこを食べてもおいしく役立ちます。

感想

これからも便利な道具として色んなアイデアを取り込みながら進化していくんだろうな〜と思うと楽しみですね。 1人1冊買おう。読もう。書こう。Have a nice Kotlin!