1. 程式人生 > >Java匹馬行天下之Java帝國的崛起(大結局)

Java匹馬行天下之Java帝國的崛起(大結局)

Java匹馬行天下之Java帝國的崛起大結局

前言:

【部落格*緣】

網路真情伴,

部落格友誼連。

笑中藏淚暖中寒。

回想那些悲喜,

苦澀也纏綿。

往事難回首,

新篇染舊言。

世間多少夢能全。

感謝相牽,

感謝遇時緣。

感謝墨中同守,

再聚是何年。

人生只如初見。

一首《部落格*緣》送給一直鼓勵我支援我陪伴我的博友們。

已經有博友催更了,那我今天直奔主題,歡迎博友們觀看小型宮鬥劇《Java帝國的崛起》,此劇共三篇

《C國程式設計師的禿頭原因》

《Java國出了個Java》

接下來請看《Java帝國的崛起》大結局

 

前文回顧

上文書《Java國出了個Java》中說到,被Java國收留的程式設計師們決定重新定義一門新的程式語言,這門語言語法有點像C語言,這樣大家容易接受。

沒有C語言那樣的指標。

再也不用考慮記憶體管理。

真正的可移植性,編寫一次,到處執行。

面向物件。

型別安全。

還有,我們要提供一套高質量的類庫,隨語言發行。

最重要的是他們把這門語言起名為Java,整個Java國舉國歡慶。現在我要改口了,把從C國逃出來加入Java國的程式設計師就叫Java程式設計師了。

不鳴則已,一鳴驚人

凡事都是說起來簡單做起來難,單說這個可移植性吧,要想編寫一次,到處執行可不是什麼簡單的事。為了實現跨平臺,Java程式設計師們在作業系統和應用程式之間增加了一個抽象層:Java虛擬機器。用Java寫的程式都執行在虛擬機器上,除非個別情況,都不用看到作業系統。

跨平臺

剛才提到了一個專業術語叫跨平臺,我來解釋一下:

跨平臺概念是軟體開發中一個重要的概念,即不依賴於作業系統,也不信賴硬體環境。在一個作業系統下開發的應用,放到另一個作業系統下依然可以執行。

Java的跨平臺

Java的跨平臺是相對於其他程式語言而言的,通過Java語言編寫的應用程式在不同的系統平臺上都可以執行。一般的高階語言如果要在不同的平臺上執行,至少需要編譯成不同的目的碼。比如在前文中提到的C語言,在Windows系統上編譯的C語言程式,在Linux系統上是不能執行的,而Java語言在不同平臺上執行時不需要重新編譯。

Java跨平臺的原理:java的跨平臺是通過Java虛擬機器(JVM)來實現的。

Java虛擬機器(JVM)

Java源程式想象成我們的C源程式,Java源程式(.java)編譯後生成的位元組碼(.class)就相當於C源程式編譯後的二進位制可執行檔案。JVM虛擬機器相當於計算機系統(作業系統+硬體環境),Java直譯器相當於CPU。

.exe檔案直接在Windows作業系統下執行,在CPU上執行的是機器碼(.exe檔案)

.class位元組碼檔案是執行在JVM虛擬機器下的,在Java直譯器上執行的是Java位元組碼檔案。

Java直譯器相當於執行Java位元組碼的CPU,但該CPU不是通過硬體實現的,而是用軟體實現的。Java直譯器實際上就是特定的平臺下的一個應用程式。只要實現了特定平臺下的直譯器程式,Java位元組碼就能通過直譯器程式在該平臺下執行,這是Java跨平臺的根本。當然,並不是在所有的平臺下都有相應的Java直譯器程式,這也是Java並不能在所有的平臺下都能執行的原因,它只能在已實現了Java直譯器程式的平臺下執行。

 

 

 

 

 

介紹了挺多,好好的故事,中間這樣穿插一下確實影響讀者思路,不過看你是怎樣想的,如果你是抱著看故事的心態來的,那中間介紹的這一大串就可以跳過不看了,但如果你是抱著通過看故事學習的態度來的,那就耐心的看吧,就是給你寫的。

 

為了吸引更多的程式設計師加入Java國,Java程式設計師們決定搞一次演示,向大家展示Java的能力。是騾子是馬,拉出來遛遛再說,出世未久的Java涉世不深,還不是很完善,但也是“麻雀雖小五臟俱全”了。Java程式設計師們盯上了剛剛興起的網際網路,1995年時候的網頁簡單而粗糙,缺乏互動性。Java程式設計師們正是看到了這一點,靈機一動,在瀏覽器上弄了一個小外掛,把Java執行環境放了上去。然後在上面開發了一個圖形介面的程式(Applet),讓它看起來美輪美奐、震撼人心。在當時,要是有程式設計師能看到Java程式設計師們搞出來的程式,相信都會發出“Wow,牛逼”的驚歎,為之傾倒。

Java火了

通過Applet,無數的程式設計師看到了Java這門語言,在瞭解了這門語言的特性以後,很多無法忍受C語言的程式設計師都加入了Java國,成了Java程式設計師,由此Java國的領地也迅速擴大。

Java此刻是真的火了,連C國裡的一些商業巨頭也紛紛跑來和Java國談合作,其中就包括Oracle、微軟這樣的巨頭。微軟的頭領比爾蓋茨還說:這是迄今為止設計的最好的語言!(風雨欲來花滿樓,情節自由發揮想象)

像比爾蓋茨這樣的巨頭能來Java國談合作,Java國國王感覺喜從天降,幸福的不得了。之前也說了,Java國國王是個十分開明的君主,為人豪爽大方,深得民心,他對來談合作的外賓都說,只要你們想用,就拿去用,我們對所有人都完全免費開放,歡迎大家使用。本來這對那些來談合作的人來說都是大好事,但是比爾蓋茨有點不地道,甚至有些貪婪,他在得到Java國王的許可後,回到了C國,雖然在自家的瀏覽器上也支援Applet,但比爾蓋茨卻試圖偷偷地修改Java,想把Java綁死在自家的作業系統上賺錢,這樣Java會變得不可移植。

發生這種事,Java國國王就不能忍了,我們自己都是免費開放的,而你卻拿我們的東西賺錢,這違背了Java國的信仰,絕不能忍。於是Java國和微軟發生了一場曠日持久的游擊戰爭,逼著微軟退出了Java領域。不過微軟畢竟也是個經歷過大風大浪的人,怎會沒有後手呢,退出Java領域後他們便開發了自己的.NET,這是後話。

 

開拓疆土

從1995年到1997年,Java國依靠Java程式設計師們不斷地在網路上攻城略地、開拓疆土,Java國的Java程式設計師不斷增加,達到幾十萬之眾,已經成為一股不容忽視的力量。但是大家發現,此時的Java除了Applet,以及一些小程式之外,似乎幹不了別的事情。C國的程式設計師還不斷嘲笑Java程式設計師們速度慢,像一個玩具。

到了1998年,Java程式設計師們和Java國王密謀,最終Java國王決定派出三支Java程式設計師軍隊向不同領域擴充套件。

Java2標準版(J2SE):去佔領桌面

Java2移動版(J2ME):去佔領手機

Java2企業版(J2EE):去佔領伺服器。

“風蕭蕭兮易水寒,壯士一去兮不復還”,雖然我知道此句用在此處不合適,但我想表達一種氣勢,我想起了這一句,史書上說,在送荊軻時,高漸離擊築,荊軻悲歌“風蕭蕭兮易水寒,壯士一去兮不復還”,唱的太悲壯了,以至於聽者嗔目,發盡上指。 一段唱畢,只聽見荊軻仰頭長嘆一聲,天空中居然出現一道七彩虹。高漸離趁勢變了一個調,樂音顯得更為激昂,荊軻繼而唱道:探虎穴兮入蛟宮,仰天呼氣兮成白虹。太子丹最後被徹底地感動了,跪在地上向荊軻敬了一杯酒。好,抒情至此。要是有賣弄文學之嫌,還望博友海涵啊,此乃情到深處,猶如箭在弦上不得不發。

儘管計劃很周密,但是天有不測風雲,派出去的三支隊伍有兩支很快敗下陣來。

J2SE的首領發現,開發桌面應用的程式設計師根本接受不了Java,雖然Java程式設計師有做得很優雅的Swing可以開發介面,但是開發出來的介面非常難看,和原生的桌面差距很大。尤其是為了執行程式還得安裝一個虛擬機器,大家都接受不了。

J2ME也是,一直不受待見,當然更重要的原因是喬布斯還沒有發明新手機,移動網際網路還沒有啟動。

失之東隅,收之桑榆。J2EE去正趕上了好時候,網際網路大發展,大家忽然發現,Java簡直是為些伺服器端程式而發明的!強大、健壯、安全、簡單、跨平臺!Java國授權BEA公司第一個使用J2EE許可證,推出了WebLogic,憑藉其叢集功能,第一次展示了複雜應用的可擴充套件性和高可用性。

這個後來被稱為中介軟體的東西把程式設計師從事務管理、安全管理、許可權管理等方面解放出來,讓他們專注於業務開發,這立刻捕獲了大量程式設計師的心。

很快,Java國的Java程式設計師就達到了數百萬之眾。

榜樣的力量是無窮的,有了第一個吃螃蟹的,很快,其他商業巨頭也紛紛入場,尤其是IBM,在Java上瘋狂投入,不僅開發了自己的應用伺服器WebSphere,還推出了Eclipse這個極具魅力的開源開發平臺。當然,IBM利用Java獲得了非常可觀的效益,軟體+硬體+服務三駕馬車滾滾向前,把IBM推向了一個新的高峰。

勢不可擋的Java從此站起來了

大家也沒有想到,除商業巨頭以外,程式設計師也會對Java國這麼熱愛,他們基於Java開發了大量的平臺、系統、工具。

構建工具:Ant、Maven、Jenkins。

應用伺服器:Tomcat、Jetty、JBoss、WebSphere、WebLogic。

Web開發:Spring、Hibernate、MyBatis、Struts。

開發工具:Eclipse、NetBeans、IntelliJ IDEA、JBuilder。

。。。。。。

並且絕大多數是開源的。微軟眼睜睜地看著伺服器端的市場被Java國佔據,豈能善罷甘休?他們趕緊推出.NET來對抗,但Java國已經不在乎了,因為微軟的系統都是封閉的,所有的軟體都是他們自家的:開發工具是Visual Studio,應用伺服器是IIS,資料庫是SQL Server。。。。。。只要你用.NET,基本上就會被繫結微軟。另外,微軟的系統只能執行在Windows伺服器上,這個伺服器在高階市場的佔有率實在是太低了,對Java國來說毫無競爭壓力。此情此景好像我們中國,1949年,一個極其特殊的年份,中國人民真正站起來了,一路勢如破竹,勢不可擋,將蔣介石驅逐至我國臺灣,蔣介石即使有心返回大陸,卻也無力迴天了,越說越激動,我先把激動的心情壓住把故事講完,愛國之情可以體諒的,博友們勿怪。

2005年年底,一個新的王國突然崛起,他們號稱開發效率比Java快5~10倍,由此吸引了大批程式設計師前往加盟,這個新的王國叫做Ruby on Rails,它結合了PHP體系的優點(快速開發)和Java體系的優點(程式規整),特別適合快速開發簡單的Web網站。雖然發展很快,但沒有對Java國產生實質性的威脅,使用Ruby on Rails搭建大型商業系統的人還很少。除了Ruby on Rails外,還有PHP、Python,都適合快速開發不太複雜的Web系統。但是關鍵的、複雜的商業系統還是在Java國的統治之下,所以Java國和他們相安無事。

2006年,一支名為Hadoop的軍隊讓Java國入侵了大資料領域。由於使用Java語言,絕大多數程式設計師在理解了Map/Reduce、分散式檔案系統在Hadoop中的實現以後,很快就能編寫處理海量資料的程式。

2008年,一個名為Android的系統橫空出世,並且隨著移動網際網路的爆發迅速普及,執行在Android之上的正是Java!

後來,Java國在Google的支援下,以一種意想不到的方式佔領了手機端,完成了當年J2ME壯志未酬的事業!

到目前為止,全世界Java程式設計師數不勝數,Java國也實力強大,是其他國家無法比擬的。

Java國佔據了大部分的伺服器開發,尤其關鍵的、複雜的系統,絕大多數的手機端,以及大部分的大資料領域。

一個偉大的帝國崛起了,這個帝國能生存多久?誰會摧毀這個龐大的帝國呢?

我不知道,你呢?

全劇終

終於寫完了,能看到這的朋友跟你們說聲感謝,此劇情是我參考劉欣老師的《碼農翻身》改編而來,如有侵權,請與我聯絡。寫的很痛快,很激動,很爽,尤其是寫到Java從此站起來了的時候,突然聯想到了我的祖國,我的命名也是由此而來,因為那刻想到的情景是1949年,毛主席向全世界宣佈中國人民從此站起來了的時候,我的整個心是沸騰的,激動。不說了,愛國之情人皆有之,我想每個中華兒女都會深有同感的,我代表90後中的一份子向祖國母親的70華誕送上祝福:

祝您福如東海,壽比南山

 

 

 致我敬愛的祖國

敬禮

 

 

                     

 

                                

分享的越多,你的價值增值越大,支援我就讓更多的人關注我吧

*****************************************************************************************************

我的部落格園地址:https://www.cnblogs.com/zyx110/

【原創宣告】此篇為作者原創,未經本人同意不得轉載,經本人同意轉載請說明出處。

我不能保證我所說的都是對的,但我能保證每一篇都是用心去寫的,我始終認同“分享的越多,你的價值增值越大”,歡迎大家關注我的技術分享“Java匹馬行天下”和學習心得分享“匹馬行天下”,在分享中進步,越努力越幸運,人生贏在轉折處,改變從現在開始!

支援我的朋友們記得點波推薦哦,您的肯定就是我前進的動力。

&n