Java8がリリースされた

Java8がリリースされました。Raspberry Piでも使えるJava8もリリースされていました。Javaが登場した当時は、C++のような難解な仕様は排除してあり、非常にシンプルで覚えやすいプログラミング言語でしたが、進化しつづけた結果、学習するには難しいプログラミング言語になってしまった気がします。

オブジェクト指向プログラミング言語であること、マルチプラットフォームであること、膨大なライブラリが提供されていること、高い普及率、といった点から他のプログラミング言語と比較して、Javaの優位性はまだ高いと考えていますが、そろそろ以前のプログラミング言語Cと同じ位置づけとなりつつあるような気がしています。

勢いからすると、最近はJavaScriptやGoといったプログラミング言語の方が強いため、「Javaだけ覚えていれば良い」というわけにはいかなくなってきています。いまや複数のプログラミング言語を使いこなせることが要求される時代となっていますし、それぞれのプログラミング言語を学習しやすい環境にもなっていますから、それに対応できるようになりたいものです。20年前は、そもそもマシンが高い、コンパイラを入手できるのは限られた人だけ、資料の入手は困難、といったハードルがいくつもありましたが、今やそれらはなくなっています。これらのことから、Javaは知っていて当然となるのでしょう。

プログラミング環境構築のハードルが低くなって開発も簡単にできることが増えた分、設計がないがしろにされて、闇雲にプログラミングを始める開発者が多くなっているようにも見えます。「動けばいいのだろ、動けば」というのは、ある場面では要求されることですが、安定したビジネスを継続するためには、それだけでは足りません。開発スピードだけではなく、安定性、保守のしやすさ、といった点も考慮が必要であり、トータルバランスをとりながら、ビジネス拡大をしていくしかありません。そういったことを考えると、Lightweight Languageで実装したものを、どこかのタイミングでJavaへ移植するといったことは、よくあることになります。そんなとき、オブジェクト指向プログラミングの設計から実装まできちんとできるようになっていると、役に立つことは多いでしょう。Javaを学習していれば、オブジェクト指向プログラミングの基礎ぐらいは理解できるようになるはずなので、手続き型や関数型のプログラミング言語しか使ったことがない開発者よりは有利なはずです。

なお、Java8からはlambda式が使えるようになったということで、関数型プログラミング言語の恩恵もある程度享受できるようになりました。関数型プログラミングはどういった場面で採用すると良いのかを判断するのが肝になってきますが、使っていれば、そのうちわかるようになるでしょう。本質的には式で表現できるということが肝なので、アルゴリズムの実装に強いでしょうし、状態の保持を伴わない計算をさせたいときに役に立つはずです。

過去の文法と整合性をとりながら新しい文法を導入して進化してきているせいで、Java8は難しい文法となってきていますが、これからもJavaが使われる場面は多そうですし、この熱さはまだまだ続きそうですね。ということで、まだまだJavaで楽しめそうです。

Java8対応の参考書はまだほとんどないようですね。過去の良書を紹介しておきます。
Javaの参考資料には次があります。

同じカテゴリの記事: Java