今年は、学生が書いた Java のツケが廻ってきていて。
Java ってのは、Cobol だ
ってのは、ちょっとある。実は割と書きやすいんじゃないか?
ちょっと、ダサく、冗長に書くのに適した言語
だと。それでも、C みたいに、
ヘッダと本体に必ず二回ずつ書く
ってのはないんだけど、Generic とかは、やっぱり、
同じことを繰り返し書く
ことになりがち。SML, Ocaml, Haskell のように型推論してくれるなら複雑な型を書いても良いのだが、
Java で自分で型推論した型を、いちいち書かせるのはやめてくれ
Haskell や Scala はコンパイラが頑張ってくれるが Java は、そういうことはないから。なので自分で書く羽目に。Scala がやっていることを手動でやるくらいなら、
なぜ、Scala で書かなかったんだ?
実際、Haskell で書いてもらったらJavaの 1/10 ぐらいの大きさに。もっとも、Haskell には Haskell 固有の問題があって、それに付き合うのは、
金輪際、御免こうむる
的なところがあるんだけどね。遅延評価のあらゆる可能性を考えつつ、seq とかで制御していくのはつらすぎるよ。何が起きているのか、さっぱりわからない。プログラムしやすい言語とは、
実行が予測しやすい
ことが重要だと思う。メモリ消費、実行時間、並列実行。ハードウェアはクロックがあるから、
3クロック後に結果が来ることを予測
とかできる。それで req/ack がなくなるので速いんだよね。まぁ、
そういう言語を自分で作ればいいんだろ? わかったよ
ってなところはあります。
学生の書いたソースを refactoring するのは良いのだが、動くのか? これ。動いているので直す必要はないという説もあるが… あるが
Generic と wrapper ばかりで読めないんだよ
そういう問題だな。おそらく、Scala の trait 的に「その場で必要なことしかできない型を実行時に提供する」みたいなことをしたいのだろうとは思うが、
そういうのは、Java ではやらないから。
つまり、
Java は Java っぽく書けよ
ってことね。もっとも、Java 8 では lambda が入るので、だいぶ変わるようですが。
for 文使うな
って、Java 5 の時に言っていたのと正反対だろ?
今週末は、その Java 8 promotion が沖縄であるようです。
祝☆Java 8 Launch in 沖縄
http://java-kuche.doorkeeper.jp/events/13290
No comments:
Post a Comment