やってはいけない?

[実装編]メモリー管理を処理系任せにしてはいけない

言いたいことはわかるし、多分もっともなことなんだろう。って、私はJavaでマトモなプログラム書いたことないからよくわからんけど、GCのある処理系で、あのGC機構ならさもありなんという程度には動的言語の処理系は書いたことがある。

現場SEレベルであれば、こういったノウハウも必要だろう。いわゆるバッドノウハウの類ではあるけれど、システムがマトモに動かないところに、理屈もへったくれもない。そういった意味では確かに「やってはいけない」ことだろう。

とは言え、このノウハウはあくまでも「現状のJVM」のGCの実装のことだし、そもそもGCのある言語でGCを意識するというのは、本末転倒な気がする。メモリをどんどん食い散らかしても、GC様が適当に片付けておいてくれるのが、GCのある言語の嬉しさのはずだ。そこに「こうやったらGCが抑制できる」とか、「GCの機構をおもんぱかって」みたいなことをやるのは、何かおかしい。しかも「やってはいけない度」では最高ランクのようだ。そんなにGCが嫌なら、

Javaなんか捨ててCOBOL使っとけwww

と思う。少なくともCOBOLにはこんなバッドノウハウはないのだから。COBOLが嫌なら、C++でもいい。

なんでこんな思いをしてまでしてJavaを使わないといけないのか、よーわからん。こんなこと意識してJavaを使っていいことがあるのだろうか?