SemiAutoMine はアルゴリズムは大体決まっていたので 2 〜 3 時間くらいで動くものができると思ったのに、丸 1 日もかかってしまいました。Ruby ならきっと数時間でできます (実行速度が遅くて使い物にならないだろうけど) 。原因は明らかに Java にあると思う (Java Web Start を使いたかったので他に選択肢がなかった) のですが、ちょっとだけ詳しく考えてみました。
要するに Java への文句をたれます。Java マニアは目をつぶってください。
- ドキュメントにサンプルコードがない ドキュメントはあればいいってもんじゃない、自然言語よりコードで語れ
- ぐぐっても良いサンプルコードがなかなか見つからない コピペさせろ、メジャー言語のいいところは情報の多さじゃなかったっけ?
- サンプルコードを見ていじるだけでは全然使いこなせない 特に Swing 周り、なんとなく真似しただけでは全然動かなくてストレスたまる、コンパイル時も実行時もエラーにならないのがさらにいらつかせる
- ライブラリの作りや構成、メソッド名にセンスがない サンプルコードだけ見てもわからない主因?いいライブラリはドキュメントがなくてもサンプルコードがあれば使える
- リテラルや無名関数がとても不十分なので何をするにも面倒くさい 内包表記や yield させろ
- classpath や jar などツールの使い方で必ずはまる java.lang.NoClassDefFoundError は見飽きたんだよ
- 何をするにもフレームワークばっかりで憂鬱
- 末尾再帰最適化を VM の仕様に入れてくれ (関係ない)
- eclipse はなんかこう全体的に感じ悪い、キモい (FUD)
要約すると、Java は調べることが多すぎてコードを書くことに集中させてくれないので楽しくないです。これらの点、C# はかなりがんばってると思います *1 。Java を踏み台にしたおかげもあるのでしょうけどね。Sun はあせって Java を拡張してるみたいですけど、それは泥沼化なのでやっぱこの言語は一度廃棄すべき Java のアイデンティティーを失うことになるので難しいですよね。