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

  • 2019 年 10 月 3 日
  • 筆記

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匹馬行天下”和學習心得分享“匹馬行天下”,在分享中進步,越努力越幸運,人生贏在轉折處,改變從現在開始!

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