概要
ちょっとある程度、型が固まった言語をやりたくなりました。自分の中で型があって、ある程度書きやすいかつ汎用的といえば Java 含めた JVM 系かなと思いました。
そこで、JVM 系で 1 言語くらいは押さえたいなと思って、Kotlin を少し触ってみることにしました。
やったこと
- この本をやりました
- 結論から言うと、結構学びやすかったようには思うのと、あんまり厚い本ではないので気合い入れれば土日くらいでできるボリュームでちょうどよかった。
学び
- 言語的にはすごく柔軟な感じ & 割と新鮮だったかも
- when を使った分岐
- 関数を渡してどうにかする感じがすごい
- デフォルトのクラスの拡張を、一部の箇所だけで拡張したりもできる(すごいなこれ)
- 充実しすぎているので理解しきれていない箇所はあるかも
- JDK 14 では進めないほうがいいかも
- gradle 等ではまった(ビルドが走らない)
- JDK 11 or 8 が無難かも…
- 書籍に沿って進めたが、うまくいかない箇所がいくつかあった
- Mac OS を前提としているため、Windows + WSL でうまくいかない箇所が多発
- Spark, Spring あたりの章からちょっと説明の雑な箇所が多い印象…
- このあたりからコード量も増えたので、コードハイライトとかもかけてほしかった感じ
- あとはフォルダパス周りとかも若干わかりづらかったような
- PatchRequest 周りが解消できず、そのあたりはやるのあきらめた
- form を普通に送ると POST 扱いになるはずなんだが、そのあたりどう解消してるんだろう
- あと
gradle bootRun
が自分の手元でうまく動いていなかった感(これは自分の環境の問題な気がするが) - 以降のところはさらっと読み流した
- Spring 2.X になっていくつか廃止されているものとかがあって、そのあたり書籍情報を引いてもなかったので困った
- 具体的には Validation で用いている NonBlank, Size のバリデーター
- この記事を見て解決した
- 何かの記事を見て何かを導入した記憶があるが、思い出せない
- DB 接続周りと heroku はまあ、また今度
- 内容見た感じでもそんなに長くなかった。パットできそうだったので、スルーした
- どこから手を付けるべきなのかわかりづらかったので、実際によく使われているフレームワークを動かすことができたのは学びが多くてよかった
展望
- これちょっと読んでみようかなと思った
- あとはこの辺をチェックしてみようかと
- 競技プログラミングとかでも気が向いたら書くかも
- まあ後はやってみたにしろ、記事や情報に当たることが少ないかも
- ちょっとこれはつらいので、試したことのメモは積極的にやっていきたいところ
まとめ
前々から思ってましたが、十分に可能性を感じる言語で良いなと思いました。簡潔で分かりやすく、メソッドのデフォルト値とかキーワード引数で渡せるやつとかはすごく良いと思っています(当たり前になりつつあるような気もしますが)。
環境構築回りのノウハウがあまり出てこなかったり、3年前の書籍とはいえ、当時と環境が変わっている個所もあり、技術的な変遷が激しい状況にあるように思います。とはいえ、そういうものについていきつつ、学ぶ機会があればいいなとは思っています。
気が向いたら heroku にアップできるようなものを何か作ってみるのもいいかなと思います。言語が言語だけに、コンパイルでデータ型に対する検査ができる安心があり、少し大きめなものを作っていくのには向いていそうなので、何かそういう機会があれば使ってみるのも良さそうと思いました。