こちらは、Kotlinアドベントカレンダーの8日目の記事です。
はじめに
達人プログラマーの本では
「毎年、新たなプログラミング言語を1つは学ぶこと」と言っています。
その言葉がきっかけというわけではありませんでしたが、
結果的にKotlinを介して、その通りの経験を僕はしました。
Kotlinから見える世界
Kotlinを書き始めた当初は、
様々な概念がありませんでした。
大きく3つです。
1.Null安全性
2.immutableとmutable
3.安全なキャスト
コーディングするにつれて、このポイントでコンパイルに引っ掛かります。
初めはJavaでは何も怒られない部分なので面倒に思うのです。
JavaからKotlinへ言語を切り替えるときの通過点なのかもしれません。
しかし、僕自身に思わぬ副作用がありました。
変わるJavaのコーディング
僕は仕事ではJavaを使っています。
普段Kotlinを書くことによって、無意識にJavaコーディングスタイルに変化が現れてあるのに驚きました。
・final宣言を使うようになった
・nullを伝播させないようになった
・手続き型を避け、式で表現するようになった
Javaを長く使っている人、多方面の方など賛否が分かれる部分ではあると思いますが、Javaでより良いコーディングをする上でのエッセンスを手に入れました。
他の言語を学んでいなければ出てこない発想でした。
(Effective Javaとかちゃんと読んでないせいかも、、、)
近づいてくるScalaとGroovy
もうひとつ良かったことがあります。
ScalaとGroovyのコードリーディングが楽になったのです。
これは当然と言えば当然で、KotlinはScalaとGroovyの利点を取り込んでいるからです。
Javaしか使ったことの無かった僕にはJVM language自体がどこか遠い存在であり、敬遠していました。
特にScalaに関しては難解であるという印象でした。
それが1つのJVM言語を学んだことにより、他の言語との距離感がグッと近づいたのです。
Scalaを始めたい、Groovyを始めたい人の中継地点として良いかもしれません。
他の言語を無粋に批判してはいけない
何でもトレードオフだと思います。
まず、それを批判するにはそれを熟知する必要がある。
僕はまだ様々な言語を批判するステージにも立っていません。
Kotlin自体は好きですが、他の言語を引き合いに出した比較はなかなかできませんし、そういったプレゼンをAndreyがしたことは良くなかったかもしれません。
まとめ
今回は実体験をもとにKotlinの文脈で話しましたが、他の言語でも同様だと思います。
他言語を学ぶというのは予想以上に自分自身にとって実りになるものだと感じています。
それがScalaであっても、pythonであってもRubyであっても。
ここからは個人的な意見ですが
Kotlinを通してScala、Groovyへ到着するというのも良いのではないでしょうか。
また、Kotlinを通じてJavaに帰結するのも良いと思います。
多言語を学んでいく人が増えてくれれば幸いですし、
Kotlinを使う人が増えれば嬉しいです。
0 件のコメント:
コメントを投稿