今日の晩御飯

今日の晩御飯は秋刀魚を焼いた。秋だし。2尾で400円(税抜)だった。ちょっと高い気がした。美味しかったので無問題。

見切り品にサラダセロリという物があったので買ってみた。見た目はカイワレ大根っぽいんだけど味はセロリという不思議な感じだった。適当にググってみたらこんな感じのやつ

hachimenroppi.com

最近のコーディング

今更になって修士時代(10年前)に書いた Scala コードをリファクタリングしている。というのも業務で Scala/sbt を触るようになって Scalaコンテキストスイッチが減ったのと、sbt のマルチプロジェクトの管理方法の勘所がわかってきたので、自分の人生の中でガッツリ Scala にハマっていた頃に書いたコードが読める&整理できる状態になったからだ。

最初に IntelliJで開くと全行がほぼ真っ黄色という悲惨な状況だったが、今はだいぶマシになってきた。黄色い理由を挙げるとこんな感じ:

  • 公開メソッドに戻り値型が書いてない
  • JavaConversions を使っている
  • implicit conversion を使っている
  • ClassManifest を使っている(10年前は Scala 2.8 時代だった)
  • 非ASCII文字を使っている
  • try ~ catch で throwable を取ってる

ちょっとずつこの辺を整理していきたい。

整理していってる過程で、「どうしてこんなに暗黙変換を使いたかったんだろう?」と謎だったが、少しずつ当時の考えが分かりだしてきた。そもそも Scala を使いたかった理由は Java よりも短いコードで実装できることに魅力を感じたからで、特に暗黙変換を使えばそれが実現できる、と思ったんだろうな。そして短いの基準が Groovy とか LL 言語を想定していて、極力コード上に型の宣言がなくなるように書いていたんだと思う。

今となっては公開関数の型をコンパイラに推論させるのは御法度(いや多分当時も御法度)だけど、こういうコードを見ると「若いなぁ」とか思ってしまった。

型の推論に関してもう一つ思ったことは、Java にも型推論が入ったのだけど、あれが働くのはローカル変数だけなんだよね。公開メソッドにはその機能がわざと使えないようになっていて「賢いなぁ」とか「自分と同じコードを書いて苦しむ人が減るようになってる...」とか思って、Java は健全に進化しているなぁと感じた。