「Javaの時代は終わった?(読書感想文)」
http://blogs.itmedia.co.jp/ogura/2006/09/beyond_java_d458.html
忘れた頃にやってくる.
Javaは、C++とインターネットのもたらした混乱の中で、たまたま絶妙なバランスを持ったC++の最適な後継者として生まれ、市民権を勝ち取った
これはまあ事実だろう.どれほど優れた言語でも,新しい言語を普及させるのは極めて難しい.*1
が、時代の変化とともにその絶妙なバランスが通用しなくなってきている。C++を引きずりすぎて完全なOOP言語になれなかったことや、
なんじゃそりゃ.
「完全なOOP言語」なんて専門用語はないと思うがな.
(コードブロックやcontinuationのような)新しい概念を採り入れられなかったこと、XMLに頼りすぎて複雑化してしまったこと、
XMLはJavaとは無関係.Strutsのようなフレームワークの設定ファイルでは使われているが,ただそれだけだ.
continuationってなんじゃらほいと思って検索してみると,setjmp()/longjmp()かい.setjmp()/longjmp()みたいなものかい.新しいどころか古い概念だぞ.*2
習得にえらい時間がかかる程に肥大化してしまったフレームワークが存在することetc...
まあそりゃそうだろう.フレームワークというのは多かれ少なかれそういうものだ.
ということはここで言いたいことは「Javaの時代は終わった?」ではなく「JavaのXXXというフレームワークの時代は終わった?」ではないか.情報は正確に.
が、現代最も必要とされている「Web+DBでさっさと作るアプリケーション」に向いてない
さらに「小規模でセキュリティもさほど高くなくていいWeb+DBアプリ開発においては、JavaのXXXというフレームワークの時代は終わった?」ということか.
Java技術者は他の言語も勉強しよう
これには全面的に賛同する.
習得に何年もかかるようになってしまった、というJavaの複雑性は、JVMの発明により過去との断絶が起こった結果、必然的に全てのものをオブジェクト指向で設計しなおさなければならず、抽象化が幾層にも重なったところにも一因があるのではないか。
多分,完全に的はずれ.
過去との断絶は言語レベルで発生する.Javaを使うからにはJavaで書き直すべきだが,それがオブジェクト指向的に設計し直されるとは限らないし,ましてや必然ではない.見た目が「C言語そのまま」とか「COBOLそのまま」なんていう世にも恐ろしいJavaコードも存在する.「抽象化が幾層にも重なった」になると,それはOSや高級言語で何度でも行われてきたことで,ソフトウエア技術の進歩そのものだ.
「多少言語の整合性を犠牲にしてでも、過去との互換性を保つことによる効率性が大事なのではないか」という意見であることに気づいた。