Java地位無可動搖的12個原因
如今,面對曾經在程序員中被各種新技術掩蓋直至堙滅的技術值得懷念。猶如 COBOL 這當年被老程序員們尊為神器的語言如今也基本沒有價值。而 Java 作為現代程序員的中堅力量在這點上或許會成為下一個 COBOL。
有關 JAVA 的技術賣出多少本書已經是一個很久遠的記憶了。現處中年時期的 Java 語言的用途已經不再出現在各種雜志的封面上了。JAVA 從出生到現在已經 19 年了,應用開發圈已經開始繞著那些更有吸引力的新技術。Java 或許是 Web 1.0 時代的一個傳說。
從招聘信息你就可以知道,跟 iOS 相關的開發有 2500 左右的招聘,Java 則有 17000 多個。數據不一定能完美的衡量技術的價值,但是在不斷推陳出新的技術推廣壓力下,Java 職位是 iOS 的 7 倍之多可以說明問題。
在忘記 Java 在計算機行業里所扮演的角色和做出的那些卓越貢獻前,有 12 個絕對的理由來告訴你 Java 不但不會和 COBOL 一樣被堙滅,并且在其后時代中更加壯大。換句話說:Java 一直就在并且其地位無法撼動。
1、Java 在市場斗爭中不屈不撓
技術界從來沒認為 Java 會成功,盡管它的對手太多但依然繁榮發展起來。那些詫異 Java 仍然存在的人們并沒有真正去理解為什么 Java 會成功。微軟是 Java 第一個面對的強大對手,因為那時 MS-DOS 提供了通用性,而微軟看到 Java 是此通用性最具可能性的替代者。
此外,蘋果 Steve Jobs 從來沒接收過 Java,即使是在 Mac 被除了 Adobe 之外所有人忽視的年代。Java 的兼容性可以帶來很多有用的代碼,但是 Apple 一直未把 Java 視作第一選擇。
Java 內部的很多斗爭也給它帶來了巨大痛苦。IBM 喜歡 Java,但是一直在和 Sun 斗爭。IBM 將其開發的優秀的 IDE 工具稱為“Eclipse”的決定,一直沒被 Sun 的人員欣然接受。Sun 也從來沒像 IBM 那樣深刻理解商業領域。
盡管這些原因,盡管 Java 創造者也在 Java 發展中有許多失策之處,Java 依然快速壯大,在服務器應用領域如魚得水,在桌面應用領域滿足基本業務需求。
2、Java 虛擬機優化線程的魔力
Java 虛擬機的強項之一是多線程控制。JVM 針對大型多核機上數百線程的穩定性做了極佳的優化。其他語言會為了能跑在 JVM 上面搞出交叉編譯器和模擬器。Java 的這個能力同時也吸引了很多高流量的網站。他們可以在臺式機上搞開發然后丟到服務器上讓 JVM 發揮出多核的功效。
Ruby 因為語法的簡潔和源碼可讀性好成為了 Java 目前的一個對手。但是當性能成為瓶頸時,Ruby 開發人員轉到了 JRuby,一個用 Java 模擬出來的 Ruby 環境并增強了高負載下的線程處理能力。
3、Java 成為編程初學者的語言
作為大學 AP 計算機課程,意味著在美國很多學生第一次接觸到的計算機語言就是 Java。由于這個先入為主的原因,當他們學習其他新的語言時,即便轉行學其他語言課程,但是他們在思考的時仍會受到 Java 的影響。
(圖片來源 chron.com)
Java 作為一個教學語言是有它的原因的。聲明數據類型看上去可能比較抽象,但是為了能讓初學者理解計算機的原理,聲明數據類型通過編譯器會告訴他們數據類型不匹 配而無法編譯時,可以讓他們更好的理解計算機的底層原理。而一些新語言已經摒棄了花括號,維護麻煩使得新人有所厭倦,但是花括號對那些新手是非常有用的, 因為能幫助他們理解嵌套的代碼塊。
4、Java 具有跨平臺兼容性
雖然 Java 并不是第一個提供跨平臺兼容能力的語言,但是 Java 已經成為最受歡迎的跨平臺編程工具,Sun 以及 Oracle 已經為程序可以跨平臺使用提供支持。當程序不能在多個平臺上使用時,導致問題的原因通常是可以解決的。
Java 程序員可以使用他們的桌面開發工具進行編碼,并部署到目標設備,可能是一臺手機或者一臺服務器。如果編譯器包含了正確的庫并且使用了正確的版本,代碼就可以運行。
5、Java 在移動領域上的持續成功
Java 也許并沒在大型應用程序中有很好體現,但它卻在移動領域的細分市場獲得快速發展。Android 平臺從上到下都是基于 Java 構建起來的,并且它如今的銷量輕易的超過了 iPhone。JAVA ME 作為精簡版的語言和 VM 已經被廣泛應用在智能手機上,而智能手機如今已經遍布在全世界。
6、Java 在藍光應用取得突破
Java 曾經為機頂盒而設計的語言,Sun 想在占據此市場,但是 Java 卻在另外領域中找到了合適的位置。藍光標準是圍繞 Java 建立,任何想在藍光光碟中添加額外內容的人,必須得到其 Javac 編譯器版本。藍光光碟不止限于存放視頻內容。那些額外特性和交互工具可以使用純 Java 代碼修改并增強。壓縮后的視頻和壓縮后的 Java 字節碼的混合。
7、Java 讓花括號能優化代碼工作
類似 Ruby、Python 或 CoffeeScript 等語言的開發者對于 Java 要求程序員們敲打花括號鍵來明確表達代碼段的開始和結束。括號、花括號、甚至方括號對于程序員略顯多余。但是改變符號并不能消除復雜性,使用像制表符等空 白后你只能用直覺去感受那些無法看到的東西。
如果 if 語句只引導了一行代碼,這樣不會有問題,但是當很多層嵌套時,就很難看明白。當用 Python 編程時,并不意味著代碼像理解英文簡單。
8、Java 動態類型語法工具 Groovy
Java 開發者必須要有一個帶有動態類型的語法,可以使用 Groovy 一個帶有預處理器的工具,它能夠生成出 Java 字節碼來。這種語言也完全集成到了 Java 中,因此可以在 Groovy 中混入對 Java 庫的調用。就像是編寫 Java 代碼的縮略形式。
這一靈活性讓開發工程師得以找到問題的出路。在使用了動態方法調用時,開發者可以用 Java 來重寫重要的核心操作。
9、Java 虛擬機讓編程更加的靈活
Java 虛擬機是按照運行 Javac 編譯器產生的代碼源頭來設計和優化,但開發者們意識到 Java 虛擬機也可以運行其他代碼。只要編譯器們產出標準的 Java 字節碼,Java 虛擬機根本不關心是使用的那種編程語言。Haskell、Scala 和 Clojure 的開發者們設計編譯器就采用 Java,而只是這個由 Java 虛擬機產生的。
另外,Sun/Oracle 為創建跨平臺環境而努力,工程師們消除平臺間差異,并考慮兼容性問題,然后所有人可以運行他們想運行的程序。微軟在創建 C# 時為大部分主要語言設計了編譯器,使得 C# 虛擬機可以運行這些語言編寫的所有程序。C#程序員可以用很多不同的語言編寫程序,只要通過一個 Windows 盒子將其運行在一個虛擬機上即可。
10、NoSQL 建立在 Java 之上
數據庫是保存信息并快速有效應對查詢請求。NoSQL 的出現讓程序員們可以自己編寫數據庫,并根據需求修剪其代碼。那些最重要 NoSQL 工具中很多都是用 Java 編寫。Cassandra、Lucene、ElasticSearch、HBase 和 Neo4J 只是一些經常提到的 NoSQL 選擇。
據了解,工具通常是開源的。開發者將其獨立運行,或將它們集成在自己的模塊中,使得 Java 在數據庫層中成為通用語言,保證了 Java 開發者們擔心由于字符編碼和行結束符帶來的故障。這意味著 Java 開發者們可以享受由 NoSQL 革命帶來的豐碩果實。
11、Minecraft 游戲中 00 后的情結
非主流們對 Java 嗤之以鼻,但是 Java 程序員們卻領先一步。在 Ruby 時尚團正聚集起自己的一群粉絲時,Minecraft 讓之后的一代人愛上了 Java。它用 Java 編寫而成,要擴展該游戲就需學習 Java 來設計其插件,這保證下一代程序員首選是 Java。
12、開源成就 Java 代碼廣泛的應用
Sun 一直是開源領域中的領導者之一,Java 程序員們發布眾多開源許可的庫和項目。Apache 項目一直都在使用一個沒要求太多回報的許可證來提供優秀的 Java 代碼。07 年完成在 GPL 許可下公開大部分代碼的工作,這種開放的立場一直延續并保證 Java 平臺很大程度是開放和免費的。
由此,Java 有自己的問題,花括號增加混亂等缺點。但目前還沒有一個廣度和深度上可與之競爭的語言。最接近的也許是 JavaScript,依靠有閃電般速度的 Node.js 在服務器領域受到廣泛關注。而語言是開源且靈活多變,意味著 Java 程序繼續存在甚至更加興旺。
<span id="shareA4" class="fl">
</span>
</div>