Webエンジニア susumuis の技術ブログ

このブログの内容は個人の見解であり、所属する組織の公式見解ではありません

Javaが行き詰まってるだって?

釣られました
http://www.publickey1.jp/blog/10/java_2.html
おっしゃることは分かります。新人にJavaを教えるのは教えることが多すぎて、かといってCほどCPUの仕組みまで意識することができず、Ruby等の軽量言語よりも開発スピードが遅い、その上、Eclipseを覚えて、HibernateやSpringがまた複雑で……

でも、これだけでは、4年前くらいにRoRが台頭してJavaがdisられまくった時期と同じ論調です。Javaがあたかも死んだかのように言われた時期がありましたが、今もJavaは元気ですよ!ということで、別の一面が問題ですね。

このアナリストが指摘するように、コーディングなしでビジネス要件を答える手段が重要になってくるのは分かります。最近「Salesforceを使って、一ヶ月で作りました」みたいな話も聞きます。それはそれでいいんじゃないでしょうか?

Javaの素晴らしさは、熟練した技術者がいて、一度枠がしっかりできてしまってからは最強なところにあります。僕は、素晴らしい技術者の方が作られた枠の上でRoRをやったことがありますが、コード補完も効かないし、最初にたくさんのことを覚えないと何も出来ないので、最初だけは辛かったです。Javaの場合は、一人でアーキテクチャを組み上げることができなくても、既存のアーキテクチャを提供すれば、割とすぐにコーディングを初めてもらうことが出来ている印象です。一方で枠を作る人にも優しい面があって、こういう人はリフレクションとかAOPとかを余す所なく使うことができるので、Eclipseを活用して、既存部分に影響がないようにどんどん枠を拡張していくことができるのです。エラーが起きたら即座にコンパイルエラーで落ちます。さらに、しっかりした枠がなくても、そのベースとなりえるフレームワークはS2系など、充実しています。

うちみたいに、ほぼ同じようなもの(:ECサイト)を生産し続ける現場ではとても向いていると思います。全てオープンソース系で構成しているので、Microsoft系のようにどこかに使用料を支払い続ける必要もありません。

フロントエンドは、SwingもJavaFXも、時代が要求しなかったから残らなかったのです。ユーザが求めている(画面上の)最終成果物としては、今はHTMLとJavaScriptです。そういう意味で言えば、GWTWicketがあるJavaはかなり進んでいると思います。
また、今後は、サーバサイドはREST化し、処理はどんどんクライアントサイドに移行していきます。クライアントサイドで使用できる言語は、JavaScriptしかありません。そうなってくると、単にDBに出し入れするだけのロジックなら、Javaを使おうが、Pythonを使おうが、Rubyを使おうが、あんまり重要ではないと思います。

Oracleの動きもあり、言語自体の進化が遅いという理由で、ギークが離れつつある動きはあるみたいですが、まだまだ、メインストリームで使えます。使っていいんです!