來自一年前的預(yù)測:Java平臺與死亡相去甚遠(yuǎn)
在學(xué)生時(shí)代,我們可能會(huì)想起 Thomas Malthus 所做的預(yù)言,他認(rèn)為人類賴以生存并繼而形成人類文明的農(nóng)業(yè)體系,可能無法再承受人口數(shù)量的不斷攀升,另一方面,這種情況將不可避免地造成嚴(yán)重的后果,通常會(huì)引起巨大的災(zāi)難或其他自然災(zāi)害。他這樣寫道:若對人口數(shù)量不加限制,將呈幾何級數(shù)增長。而人們賴以生存的物質(zhì)則以代數(shù)級數(shù)增長。與后者相比較,如果稍微了解一下這些數(shù)字,就會(huì)意識到人口增長是多么驚人。這意味著,針對生存物質(zhì)的匱乏,需要對人口增長進(jìn)行嚴(yán)格而持久的控制。物質(zhì)匱乏終究會(huì)發(fā)生在某些地方,并且必定會(huì)嚴(yán)重影響到大部分人類。
Thomas Malthus 在 1798 年發(fā)表了 “人口論”。從那時(shí)開始,我們一直在等待著驗(yàn)證有關(guān)人口增長的 “Malthusian 檢驗(yàn)”。
編程人員,特別是使用 Java 平臺和語言的人員,可能已經(jīng)注意到,隨著使用難度不斷增加,人們的種種預(yù)測和統(tǒng)計(jì)暗示著他們所選擇的平臺即將沒落。而大量候補(bǔ)接任者躍躍欲試:人們提名 .NET、Ruby 甚至是 Python 作為 “下一代重要技術(shù)”。
這兩種 “Malthusian 學(xué)說” 之間存在著驚人的相似之處。
Malthus 認(rèn)為,由于食物對人類的生存非常重要,而地球的產(chǎn)出有限,并且繁殖所需的生物體系是不會(huì)改變的,我們終將達(dá)到一個(gè)極限,那時(shí)地球?qū)o法承受人口負(fù)擔(dān)。換句話說,如果繼續(xù)以現(xiàn)在這樣的方式生存,將注定滅亡的結(jié)局。那么在 1798,很難推翻 Malthus 的學(xué)說。
同樣,在過去十八個(gè)月中,Java 社區(qū)出現(xiàn)了一種新趨勢:即預(yù)測 Java平臺的消亡日期。從一些低級的新聞雜志將其稱為 90 年代的技術(shù),到夸大其辭的技術(shù)演講者宣傳它的現(xiàn)狀,再到各種書籍宣稱我們正在 “超越” Java 時(shí)代,不難發(fā)現(xiàn)一點(diǎn):通過合理的暗示、代碼演示、邏輯或統(tǒng)計(jì)性說明,Java 正在走向沒落。
Malthus 忽略的是那個(gè)時(shí)候正興起的工業(yè)革命。在 Malthus 一生中,他能夠目睹到人類農(nóng)業(yè)生產(chǎn)力的巨大飛躍,這要感謝蒸汽機(jī)和軋棉機(jī)這些發(fā)明。這些發(fā)明為他的學(xué)說提供了必然的“缺少的一環(huán)(missing link)”,它們使糧食產(chǎn)量成倍增長,從而使農(nóng)業(yè)系統(tǒng)能夠擬制由“兩性激情”制造的沉重的人口負(fù)擔(dān) 。隨后,人口控制方面的技術(shù)創(chuàng)新對降低人口增長起到了相同的作用,減輕了人口負(fù)擔(dān),從而造成了很多西方國家出現(xiàn)人口負(fù) 增長,因此情況與 Malthus 的相當(dāng)合理的邏輯完全相悖。而所有這一切在 Malthus 撰寫其論文時(shí)是無法預(yù)見的,使人類能夠超過他所預(yù)測的農(nóng)業(yè)系統(tǒng)的承受極限而繼續(xù)存活,并且避免了由此而來的一系列災(zāi)難。
而技術(shù)批評家所忽略的則是 Java 虛擬機(jī)的替代語言的興起引發(fā)了巨大的變化。不過不要輕易相信我的一家之言,讓我們逐一查看支持這種說法的論證,看看它們是否站得住腳。
Malthusian 式的 Java 預(yù)測
一些人僅僅引用了一些統(tǒng)計(jì)性描述,說明 Java 不再是程序員中最重視的語言,就簡單的判定 Java 已經(jīng)在走下坡路。其他人指出 Java 缺乏其替代環(huán)境所提供的某些特殊特性,這些特性被標(biāo)榜為用戶及其應(yīng)用程序的 “需求”。還有一些人發(fā)表(毫無事實(shí)依據(jù))諸如 “大企業(yè)不會(huì)再使用 Java” 等言論,從而明確地暗示,如果大企業(yè)不使用 Java,那必定是因?yàn)檫@種技術(shù)不值得使用。
Java 語言,從更大的程度來講,Java 平臺及其生態(tài)系統(tǒng),很早以前就超過了 Simon Peyton-Jones 所謂的 “生存閾值(The Threshold of Immortality)”,就像 C++、C、COBOL 和其他語言所經(jīng)歷的一樣。這些工具幾乎可以永遠(yuǎn)存在下去,這是因?yàn)樗鼈儗⒗^續(xù)提供有用的功能,或者是因?yàn)橹貙懘a的嘗試可能要比繼續(xù)按原樣使用和維護(hù)系統(tǒng)付出更多的代價(jià)(有關(guān)特定語言或系統(tǒng)究竟屬于這兩個(gè)原因的哪一種,存在很多的爭議,而這對于本文的目的則無關(guān)緊要)。
另一個(gè)論據(jù)讓所有聰明人都放棄 Java 而轉(zhuǎn)向平臺 X 或語言 Y。在 2005 年的一篇 BusinessWeek 文章 “Java? It's So Nineties”中,引用了很久以前就倒閉的應(yīng)用服務(wù)器公司 NetDynamics 的前 CTO Peter Yared 的話,“Java 像恐龍一樣古老”。可是,還未來得及搞清楚利益沖突和推理邏輯,這篇文章就寫到 Yared 所有的公司正在嘗試在 LAMP(Linux?/Apache/MySQL/P-language)棧之上重新創(chuàng)建應(yīng)用服務(wù)器體驗(yàn)。
(這樣做可能有些無禮,但我還是要指出 Ruby 的構(gòu)想實(shí)際上早于 Java,同樣還包括 Perl 和 Python,更不要說 Linux、Apache 和 MySQL……這里我就不便再多做解釋了)。
引用我喜歡的一部電影,“生活是痛苦的,殿下。持不同觀點(diǎn)的人一定有所企圖”。或者,為了更恰當(dāng)?shù)亟忉屵@個(gè)主題,可以這樣說:“過渡到一個(gè)新的平臺是痛苦的,CTO 先生。持不同觀點(diǎn)的人一定有所企圖”。也許并不令人驚訝,對于一些已經(jīng)重新定位到其他技術(shù)領(lǐng)域的 Java 專家來說,情況確實(shí)如此。
來看看另一個(gè)論據(jù),它說 “Java 的***語言的位置已經(jīng)不保,因此它的衰退必定非常悲慘,因此***避開這場災(zāi)難”。這種論據(jù)所依據(jù)的是一個(gè)最基本的前提,即如果 Java 不再是世界上最暢銷的技術(shù),則不值得再提供該語言的支持。而這種說法若經(jīng)過邏輯推理,則根本毫無道理。
統(tǒng)計(jì)信息很久以來一直被認(rèn)為是不可靠的(如果使用不當(dāng)?shù)脑挘?Benjamin Disraeli 的巧妙解釋,他說:“世界上有三種謊言:謊言,詛咒和統(tǒng)計(jì)”。統(tǒng)計(jì)信息可以用來論證最靠不住腳的論據(jù),只需要根據(jù)論據(jù)仔細(xì)挑選所需的統(tǒng)計(jì)信息。注意 BusinessWeek 一文中使用的引用:“調(diào)查……顯示 Java 的使用逐漸沒落,而 LAMP 和 Microsoft 的 .NET 技術(shù)勢頭強(qiáng)勁”。喔,聽上去情況不妙。但是,請繼續(xù)讀下去,“根據(jù) Evans 的秋季調(diào)查顯示,在北美使用 Java 作為其***編程語言的開發(fā)人員的比例已下降到 47.9%,而 2002 年秋為 51.4%”。因此,在過去六年中,在使用 Java 作為其*** 編程語言的開發(fā)人員中,使用率下降了 3.5 個(gè)百分點(diǎn)。
請注意,這里使用了 “***” 編程語言一詞,這意味著開發(fā)人員自己需要區(qū)別什么是他們的 “***” 語言??紤]到大量的 XML 配置,使用 Spring/Hibernate/JSP Java 棧的開發(fā)人員可能可以很好地判斷出 Java 不再是他們的***語言。
注意過去六年中 Java 平臺之上興起的動(dòng)態(tài)語言(Jython、JRuby、Groovy 甚至是 JavaFX),根據(jù)我和我的同事(“No Fluff Just Stuff” 的演講者)在 NFJS 活動(dòng)的非正式投票中獲得的應(yīng)用數(shù)字,這些動(dòng)態(tài)語言可以很輕松地解釋這三個(gè)百分點(diǎn)的下降。
考慮同樣摘取自同一篇文章的引用:“在另一份調(diào)查中,今天秋季,PHP 在北美的采用已經(jīng)上升到 36.1%,而 2002 年同期為 26%。其增長速率幾乎和歐洲和亞洲一樣快”??紤]到這是一個(gè)不同的調(diào)查系列,它只是為了顯示 PHP 的增長,而不是 Java 市場的萎縮。祝賀 PHP,但是任何研究過企業(yè)環(huán)境的開發(fā)人員都可以證明,生產(chǎn)軟件部署并不像這篇文章的作者力圖暗示的那樣是一個(gè)零和(zero-sum)游戲。大型 IT 環(huán)境通常由種類繁多的工具、平臺、語言和產(chǎn)品組成。事實(shí)上,我們幾乎可以在這里實(shí)現(xiàn) 整合,特別是那些大型機(jī)組件。
談到主機(jī),事實(shí)上,COBOL 在幾十年前就不再是最重要的語言了,但是,它現(xiàn)在仍然繼續(xù)用于現(xiàn)金支付、轉(zhuǎn)移存款、支付信用卡等業(yè)務(wù)并運(yùn)行主要的金融網(wǎng)絡(luò),盡管很多行業(yè)權(quán)威早已經(jīng)宣布了它的 “死亡”。對于本應(yīng)在墳?zāi)估锔癄€的技術(shù),這實(shí)在是不錯(cuò);這使我想起 Mark Twain,當(dāng)他看到家鄉(xiāng)報(bào)紙上他的訃告時(shí)說:“先生們,關(guān)于我死亡的報(bào)道被嚴(yán)重夸大了?!?/P>
然而,撇開統(tǒng)計(jì)數(shù)字的問題不談,第二個(gè)問題更嚴(yán)重:為什么僅僅因?yàn)樗x的工具不是***的就棄而不用?Java 占據(jù)軟件開發(fā)的首要地位近十年,僅僅由于它 “下降” 到第二位,游戲就結(jié)束了?甚至認(rèn)為僅僅因?yàn)槿藗兊亩栊跃蜁?huì)阻止 Java 重新恢復(fù)首要語言的位置,事實(shí)是,10 個(gè)程序員里面有 4 個(gè)會(huì)繼續(xù)使用這種語言,這將保證 Java 在未來幾十年里仍然保持活躍的生命力。更荒謬的說法是,Java 的增長將面臨急剎車,并且再也不會(huì)出現(xiàn) Java 部署,然而,Java 目前在整個(gè)行業(yè)內(nèi)得到了廣泛的部署,這可以保證 Java 繼續(xù)出現(xiàn)相當(dāng)長的時(shí)間。
盡管 COBOL 被宣布已經(jīng)死亡,但是要求使用它的人每年達(dá)到 6 至 7 位數(shù)。
檢查證據(jù)
然而指出一個(gè)論點(diǎn)的缺點(diǎn)并不能證明另一個(gè)觀點(diǎn),對于本文也是一樣的。相反地,我們應(yīng)該用批評的眼光看待 Java 語言和平臺,而其強(qiáng)項(xiàng)和劣勢經(jīng)受住了嚴(yán)格的分析。Java 之所以長壽在于它能滿足未來十年的需求,而不是由任何作者或批評家來決定它的生死。
***,我們考慮一下構(gòu)成 Java平臺的那些組件:
Java 編程語言。坦率地講,這是平臺中最能體現(xiàn)其長壽的部分,特別是與一些諸如 C#、Groovy、(j)Ruby 或 Scala 等更 “現(xiàn)代的” 語言比較時(shí)。近來涌現(xiàn)出大量關(guān)于改善該語言的建議,諸如為該語言添加閉包等***競爭力的提議,證明了程序員非??释?Java 能夠具備其他語言的一些特性。然而,Java 5 中***語言增強(qiáng)功能所帶來的聯(lián)合成功應(yīng)該成為所有新的重大語言變更的“注意剎車”的提示。某些增強(qiáng),比如 for 循環(huán)或注釋,得到(相對)普遍的支持。然而其他一些增強(qiáng),比如泛型,則受到(相對)普遍的嘲笑和批評。事實(shí)是沒有任何一種語言功能能得到它本應(yīng)幫助的開發(fā)人員社區(qū)的普遍接受,這個(gè)事實(shí)告訴我們:為一個(gè)已存在十年多的語言添加新的語言特性是很棘手的事情,如果完成,也很可能會(huì)導(dǎo)致語言自身的崩潰。在 Java 平臺的地圖中,這個(gè)區(qū)域標(biāo)注著“老水手”的警告:“此處有怪物!”
非 Java JVM 編程語言。在 Java 止步不前的地方,其他語言提供改進(jìn)和增強(qiáng)的解決方法。Groovy 圍繞 Java 對象提供了一個(gè)動(dòng)態(tài)、客觀的腳本解決方案。(j)Ruby 在 JVM 之上提供 Ruby 實(shí)現(xiàn),為 Java 程序員開辟了 Rails 和 ActiveRecordoffers 的世界。Scala 和 Jaskell 給 JVM 引入了函數(shù)編程概念,為所出現(xiàn)的并發(fā)性問題提供可行的解決方案。諸如此類。由于所有這些語言要么編譯成字節(jié)碼,要么通過 javax.script API 作為解釋語言在 JVM 上運(yùn)行,因此 Java 生態(tài)系統(tǒng)的所有財(cái)富都是可以利用的——而這是 Ruby 開發(fā)人員無法做出同等聲明的一個(gè)方面。在 Java 平臺的地圖中,這個(gè)區(qū)域被標(biāo)注為“機(jī)遇之國”。
Java 虛擬機(jī)。 幸運(yùn)的是,Java 語言已經(jīng)做出了重大修訂和根本性的變化,而 JVM 作為 Java 平臺的底層基礎(chǔ),變化并不多。近來,在博客世界中,許多人建議使 JVM 對動(dòng)態(tài)語言更友好,這使 Sun 公司的一名工程師(John Rose)提供了 JVM 的修訂版,最初稱為多語言虛擬機(jī)( Multi-language virtual machine,MLVM), 現(xiàn)改名為 Da Vinci Machine(因?yàn)榫o密地包裝在代碼中)。此處的關(guān)鍵在于被提議的 JVM 更改要避免任何有可能使 Sun 公司在 JVM 優(yōu)化上的龐大投資作廢的事件。那些提出建議的人在設(shè)計(jì)細(xì)節(jié)時(shí)一直將這一點(diǎn)牢記于心。
Java Standard Edition 庫。 Java Standard Edition 附帶了巨大的函數(shù)集,數(shù)量級比 C++ 標(biāo)準(zhǔn)庫更大,甚至許多因素比它前身 Java 1.0 都大,并且這還沒有考慮 Enterprise Edition 庫(接下來討論)。表面上,這看起來像 Java 開發(fā)人員的自然優(yōu)勢,但仔細(xì)考慮就會(huì)發(fā)現(xiàn)一些細(xì)微的問題。對初學(xué)者而言,庫的龐大意味著許多 Java 開發(fā)人員認(rèn)識不到他們在寫一些實(shí)際已經(jīng)存在的代碼,這些代碼收藏在一個(gè)在此之前未知的包中。根據(jù)存在時(shí)間的不同,庫本身有時(shí)也會(huì)遇到 API 設(shè)計(jì)時(shí)間的煩惱,其中有許多 都源于 90 年代中期,那個(gè)時(shí)候開發(fā)人員設(shè)計(jì)類和庫的方式與 2008 年的設(shè)計(jì)方法截然不同。一部分開發(fā)人員也深受抽象過多之苦,正如創(chuàng)建對象構(gòu)建者的工廠所例證的一樣,這些對象構(gòu)建者創(chuàng)建的接口實(shí)例不一定能實(shí)現(xiàn)開發(fā)人員感興趣的方法。然而,雖然 JSE 庫有缺陷,但從整體來說 JSE 依然有優(yōu)勢,尤其是當(dāng)它與像 Groovy 提供給 JDK 的擴(kuò)展(稱為 GDK)這樣的語言支持增強(qiáng)結(jié)合時(shí)。
Java Enterprise Edition 庫。 沒有任何技術(shù)能夠比 EJB 對其社區(qū)產(chǎn)生更大的沖擊,并且幸運(yùn)的是,Java 社區(qū)看到了輕量級替代方案的興起,Spring 和 Hibernate 提供了***的例證,對這些場景來說,輕量級替代方案是理想選擇。然而,如果暫時(shí)不考慮 EJB,Java EE 庫就是非常成功的 — servlets 和 servlet 容器為遍及 Internet 和企業(yè)內(nèi)部網(wǎng)的大量 Web 應(yīng)用程序提供動(dòng)力,JMS 提供對多種面向消息中間件系統(tǒng)的訪問,JEE 領(lǐng)域中其他不太知名的參與者(如 JNDI) 毫無怨言地執(zhí)行自己相應(yīng)的任務(wù)。JEE 庫很有可能受益于 API 重新設(shè)計(jì),JSE 庫就是這樣,總體來說 JEE 庫將滿足 Java 程序員的需要。***的問題往往在于認(rèn)識何時(shí)首先需要 JEE 庫。我們將在另一篇文章中討論相關(guān)內(nèi)容。
Java-API-for-XML (JAX) 庫。 盡管名義上是 JEE 庫的一部分,但 JAX API 的數(shù)量和規(guī)模都在以與 JEE 其他部分不相稱的速率增長,值得脫離 JEE 的上下文來考慮 JAX API。在近十年,盡管對 XML 支持的需求是巨大并且普遍的,但目前已經(jīng)有所緩解,尤其是 Web services (WS-*) 周邊領(lǐng)域和規(guī)范陣營(這些規(guī)范允許與其他技術(shù)之間實(shí)現(xiàn)普遍、輕松的互操作,包括 .NET)。在這里,Java 無疑需要某種類型的修訂,由于 SAX、DOM 和 StAX API 經(jīng)常需要更多的代碼來完成重要任務(wù),尤其是和具有更靈活的 XML 支持的語言相比時(shí),比如 E4X、Ruby 或 Scala。此處,以 XML 為中心的思想有了明顯的改變,從早期的 WS-* 實(shí)現(xiàn)中“不接觸 XML”到基于 RESTful 方法的“我希望直接接觸 XML 并將其定址為形式良好、有意義的 URI”,這種方法也強(qiáng)調(diào)了 JAX 領(lǐng)域內(nèi)重構(gòu)的必要性。在 Java 世界的地圖中,這個(gè)區(qū)域被標(biāo)注為“(應(yīng)該)棄用的”。
客戶端 Java。Sun 公司最近修訂的“Java客戶端”系統(tǒng)的測試版有個(gè)相當(dāng)糟糕的名字 “Java SE 6 Update 10 Beta”,它提供了增強(qiáng)的客戶端特性,包括新的 Swing 外觀,稱為 Nimbus。遺憾的是,在客戶端度量 Java 的使用一直都存在問題,主要是因?yàn)閷iT用于度量的 applet 在 Internet 上已經(jīng)使用了很長一段時(shí)間,還因?yàn)楸姸鄬?Web 托管應(yīng)用程序的設(shè)計(jì)和架構(gòu)關(guān)注點(diǎn)都以 HTML 的生成為中心,而不是生成現(xiàn)在所說的“富客戶端”應(yīng)用程序。隨著采用速率的提高,Java 要經(jīng)過漫長的旅程,追趕它在這個(gè)領(lǐng)域中的主要競爭對手,F(xiàn)lash 和微軟在該領(lǐng)域新引入的技術(shù) Silverlight 使情況變得更加復(fù)雜。Java 可能也會(huì)徹底失去陣地,這并不代表著這種平臺的“消亡”,但會(huì)使問題惡化,當(dāng)業(yè)內(nèi)學(xué)者和商業(yè)雜志將其稱為“Java 技術(shù)弱點(diǎn)的明顯例證”時(shí),一定要鼓舞自己!
服務(wù)器端 Java。 這實(shí)在不容爭議:Java 毫無疑問是服務(wù)器領(lǐng)域內(nèi)既定的參與者,特別是在查看非 Windows? 后端系統(tǒng)環(huán)境的選項(xiàng)時(shí)。LAMP 系列產(chǎn)品可能提供一個(gè)前端或垂直豎井的替代方案,包括 Ruby on Rails 也是一樣,但觀察重要的服務(wù)器計(jì)算基礎(chǔ)設(shè)施時(shí),Java 系列產(chǎn)品將占據(jù)顯著的位置。事實(shí)上,正是這種領(lǐng)先地位促使微軟***積極地尋求 WS-* 規(guī)范,以使 .NET 代碼至少能調(diào)用和配合既定的 Java 基礎(chǔ)設(shè)施。微軟最近認(rèn)可了使互操作性向更正式的水平發(fā)展,他們在劍橋大學(xué)設(shè)立的“Interoperability Lab”也體現(xiàn)了這一點(diǎn)。
生態(tài)系統(tǒng)。 沒有其他的平臺擁有像 Java 平臺一樣如此豐富多樣的生態(tài)系統(tǒng),然而這經(jīng)常會(huì)給 Java 開發(fā)人員帶來一些麻煩(“我該使用哪種 Web 框架?”),事實(shí)上,很多 Java 生態(tài)系統(tǒng)都滲入其他環(huán)境,尤其是.NET??紤] .NET 近來在微軟內(nèi)外獲得的進(jìn)步:ObjectBuilder(依賴性注入框架)、ASP MVC(基于 MVC 的 Web 框架)、NHibernate(Hibernate 的一部分)、NAnt 和 MSBuild(在句法或概念上與 Ant 相似的基于 XML 的構(gòu)建系統(tǒng))甚至 Silverlight 本身(在瀏覽器內(nèi)部托管 CLR,允許執(zhí)行更豐富的客戶端)。在許多方面,.NET 生態(tài)系統(tǒng)為 Java 社區(qū)做了將近五年的后盾,因?yàn)?.NET 開發(fā)人員發(fā)現(xiàn)了與 Java 開發(fā)人員在五年前遭遇的相同痛點(diǎn)。而 Java 仍然堅(jiān)持向 .NET 社區(qū)學(xué)習(xí)(比如統(tǒng)一通信 API 的有用性或顯式輕量級工作流引擎的強(qiáng)大力量)。這只用來說明這些環(huán)境都正在互相學(xué)習(xí)這一事實(shí),而且也表明,.NET 并沒有使 Java 成為不必要的能力。
毫無疑問,Java 開發(fā)人員可以將他們自己的條目添加到這個(gè)列表中,證明這個(gè)論點(diǎn):在 Java 平臺中留有太多的優(yōu)良的東西被認(rèn)為“死亡了”或“將要死亡”或者甚至在“崩潰的邊緣”。
王者終將歸來
最簡單的事實(shí)是:Java、平臺、生態(tài)系統(tǒng)、環(huán)境和開發(fā)社區(qū)與死亡相去甚遠(yuǎn),至少和目前正在使用的其他語言或平臺距離一樣遠(yuǎn)。即使是最嚴(yán)格的統(tǒng)計(jì)事實(shí)篩選也不能否認(rèn) Java 的領(lǐng)先地位。
此外,即使 Sun Microsystems 公司倒閉,平臺也不會(huì)消亡。全世界的 Java 開發(fā)人員,聯(lián)合起來!不要懼怕束縛的鐵鏈:最終您將看到,這些鐵鏈其實(shí)并不存在。多虧 Java 平臺的開源,它現(xiàn)在被稱為 OpenJDK,更不要說 Java 的其他開源“凈室(clean room)”實(shí)現(xiàn)(Apache Harmony 和 Soy Latte 只是其中之二),即使 Sun 公司徹底從地球上消失,包括 IBM、Apache、BEA 和 Oracle 在內(nèi)的其他實(shí)體也能繼續(xù)提供 JVM、庫和工具,來支持整體生態(tài)系統(tǒng)。
Java 總有一天會(huì)消亡?絕對會(huì)的,但是我堅(jiān)信 Java 的壽命會(huì)超過今天的程序員所使用的大部分語言,正如 COBOL 做到的那樣。它甚至能比剛剛走出大學(xué)校園的第二代 Java 程序員走的更長。
“恐龍”,確實(shí)如此。
本文來自IBMDW中國:《COBOL 式死亡》。
【相關(guān)閱讀】