讀古今文學網 > Java程序員修煉之道 > 關於本書 >

關於本書

歡迎閱讀本書。通過閱讀本書,你將成為緊跟時代潮流的Java程序員,重燃對這一語言和平台的熱情。學習過程中,你會發現Java 7的新特性,熟悉重要的現代軟件技術(比如依賴注入、測試驅動開發和持續集成),並開始探索JVM上的非Java語言這個美麗新世界。

首先,我們來看看James Iry在他精彩的博文「A Brief, Incomplete,and Mostly Wrong History of Programming Languages」(簡明、不完整並且漏洞百出的編程語言歷史)中對Java語言的描述:

1996年,James Gosling發明了Java。Java相對繁瑣、基於類,是支持垃圾收集、靜態類型、單派發的面向對像語言,繼承方式為實現單繼承和接口多繼承。Sun大肆宣揚Java的新穎性。

他對Java的描述基本上是在插科打諢,C#在文中也受到了同等待遇。但作為對一種語言的描述,這種方式也不賴。博文還有很多精彩之處,參見James的博客(http://james-iry.blogspot.com/)。沒事的時候看看還是挺有收穫的。

James的描述的確提出了一個很實際的問題。為什麼我們還要討論一種有將近16年歷史的語言呢?它真的已經穩定,沒有多少新東西或有意思的事情值得探討了嗎?

如果真是那樣,本書就會很薄。事實是,我們依然在談論Java,因為它的一大優點就是其在以下幾個核心設計決策之上的構造能力,這些都已經在市場中獲得了成功:

  • 運行時環境的自動管理(比如垃圾收集、即時編譯);
  • 語法簡單,核心概念相對較少;
  • 保守的語言進化方式;
  • 在類庫中增加功能和複雜性;
  • 廣泛、開放的生態系統。

這些設計決策一直在推動著Java世界的創新,簡單的核心使得開發門檻很低,而廣闊的生態系統使得後來者很容易找到適合自己需要的現成組件。

儘管從歷史趨勢上來看語言的變化很緩慢,但這些特質使得Java平台和語言既強大又充滿活力。Java 7仍然延續了這一趨勢。語言的改變是演進式,而不是革命式的。然而,Java 7跟之前版本相比有一個主要區別:它是第一個明確著眼於下一次發佈的新版本。根據Oracle有關發佈的「B計劃」,Java 7為Java 8的主要變化打下了基礎。

近年來,JVM上非Java語言的崛起也是一個重大變化。這引發了Java和其他JVM語言之間的相互融合。現在有大量的項目完全運行在JVM之上(這個數量還在增加),而Java只是它們所用的編程語言之一。

多語言特別是涉及Groovy、Scala和Clojure語言的項目,是當前Java生態系統的一個重要因素,也是本書最後一部分的主題。