從招聘信息你就可以知道叔汁,跟iOS相關(guān)的開發(fā)有2500個左右的招聘统求,Java則有17000多個。數(shù)據(jù)不一定能完美的衡量技術(shù)的價值据块,但是在不斷推陳出新的技術(shù)推廣壓力下码邻,Java職位是iOS的7倍之多可以說明問題。JAVA從出生到現(xiàn)在已經(jīng)23年了另假,應(yīng)用開發(fā)圈已經(jīng)開始繞著那些更有吸引力的新技術(shù)像屋。Java或許是Web時代的一個傳說。
在忘記Java在計算機行業(yè)里所扮演的角色和做出的那些卓越貢獻(xiàn)前边篮,小編整理了12個絕對的理由己莺,來告訴你Java不但不會和COBOL一樣被堙滅,并且在其后時代中更加壯大戈轿。換句話說:Java一直就在并且其地位無法撼動凌受。
1、Java成為編程初學(xué)者的語言
作為大學(xué)AP計算機課程凶杖,意味著在美國很多學(xué)生第一次接觸到的計算機語言就是Java胁艰。由于這個先入為主的原因,當(dāng)他們學(xué)習(xí)其他新的語言時智蝠,即便轉(zhuǎn)行學(xué)其他語言課程腾么,但是他們在思考的時仍會受到Java的影響。
Java作為一個教學(xué)語言是有它的原因的杈湾。聲明數(shù)據(jù)類型看上去可能比較抽象解虱,但是為了能讓初學(xué)者理解計算機的原理,聲明數(shù)據(jù)類型通過編譯器會告訴他們數(shù)據(jù)類型不匹配而無法編譯時漆撞,可以讓他們更好的理解計算機的底層原理殴泰。而一些新語言已經(jīng)摒棄了花括號于宙,維護麻煩使得新人有所厭倦,但是花括號對那些新手是非常有用的悍汛,因為能幫助他們理解嵌套的代碼塊捞魁。
2、Java在市場斗爭中不屈不撓
技術(shù)界從來沒認(rèn)為Java會成功离咐,盡管它的對手太多但依然繁榮發(fā)展起來谱俭。那些詫異Java仍然存在的人們并沒有真正去理解為什么Java會成功。微軟 Java第一個面對的強大對手宵蛀,因為那時MS-DOS提供了通用性昆著,而微軟看到Java是此通用性最具可能性的替代者。
此外术陶,蘋果Steve Jobs從來沒接收過Java凑懂,即使是在Mac被除了Adobe之外所有人忽視的年代。Java的兼容性可以帶來很多有用的代碼梧宫,但是Apple一直未把Java視作第一選擇接谨。
Java內(nèi)部的很多斗爭也給它帶來了巨大痛苦。IBM喜歡Java祟敛,但是一直在和Sun斗爭疤坝。IBM將其開發(fā)的優(yōu)秀的IDE工具稱為“Eclipse”的決定,一直沒被Sun的人員欣然接受馆铁。Sun也從來沒像IBM那樣深刻理解商業(yè)領(lǐng)域跑揉。
盡管這些原因,盡管Java創(chuàng)造者也在Java發(fā)展中有許多失策之處埠巨,Java依然快速壯大历谍,在服務(wù)器應(yīng)用領(lǐng)域如魚得水,在桌面應(yīng)用領(lǐng)域滿足基本業(yè)務(wù)需求辣垒。
3望侈、Java具有跨平臺兼容性
雖然Java并不是第一個提供跨平臺兼容能力的語言,但是Java已經(jīng)成為最受歡迎的跨平臺編程工具勋桶,Sun以及Oracle已經(jīng)為程序可以跨平臺使用提供支持脱衙。當(dāng)程序不能在多個平臺上使用時,導(dǎo)致問題的原因通常是可以解決的例驹。
Java程序員可以使用他們的桌面開發(fā)工具進(jìn)行編碼捐韩,并部署到目標(biāo)設(shè)備,可能是一臺手機或者一臺服務(wù)器鹃锈。如果編譯器包含了正確的庫并且使用了正確的版本荤胁,代碼就可以運行。
4屎债、Java虛擬機優(yōu)化線程的魔力
Java虛擬機的強項之一是多線程控制仅政。JVM針對大型多核機上數(shù)百線程的穩(wěn)定性做了極佳的優(yōu)化垢油。其他語言會為了能跑在JVM上面搞出交叉編譯器和模擬器。Java的這個能力同時也吸引了很多高流量的網(wǎng)站圆丹。他們可以在臺式機上搞開發(fā)然后丟到服務(wù)器上讓JVM發(fā)揮出多核的功效滩愁。
Ruby因為語法的簡潔和源碼可讀性好成為了Java目前的一個對手。但是當(dāng)性能成為瓶頸時辫封,Ruby開發(fā)人員轉(zhuǎn)到了JRuby惊楼,一個用Java模擬出來的Ruby環(huán)境并增強了高負(fù)載下的線程處理能力。
5秸讹、Java虛擬機讓編程更加的靈活
Java虛擬機是按照運行Javac編譯器產(chǎn)生的代碼源頭來設(shè)計和優(yōu)化,但開發(fā)者們意識到Java虛擬機也可以運行其他代碼雅倒。只要編譯器們產(chǎn)出標(biāo)準(zhǔn)的Java字節(jié)碼璃诀,Java虛擬機根本不關(guān)心是使用的那種編程語言。Haskell蔑匣、Scala和Clojure的開發(fā)者們設(shè)計編譯器就采用Java劣欢,而只是這個由Java虛擬機產(chǎn)生的。
另外裁良,Sun/Oracle為創(chuàng)建跨平臺環(huán)境而努力凿将,工程師們消除平臺間差異,并考慮兼容性問題价脾,然后所有人可以運行他們想運行的程序牧抵。微軟在創(chuàng)建C#時為大部分主要語言設(shè)計了編譯 器,使得C#虛擬機可以運行這些語言編寫的所有程序侨把。C#程序員可以用很多不同的語言編寫程序犀变,只要通過一個Windows盒子將其運行在一個虛擬機上即可。
6秋柄、Java在移動領(lǐng)域上的持續(xù)成功
Java也許并沒在大型應(yīng)用程序中有很好體現(xiàn)获枝,但它卻在移動領(lǐng)域的細(xì)分市場獲得快速發(fā)展。Android平臺從上到下都是基于Java構(gòu)建起來的骇笔,并且它如今的銷量輕易的超過了iPhone省店。JAVA ME作為精簡版的語言和VM已經(jīng)被廣泛應(yīng)用在智能手機上,而智能手機如今已經(jīng)遍布在全世界笨触。
7懦傍、Java讓花括號能優(yōu)化代碼工作
類似Ruby、Python或CoffeeScript等語言的開發(fā)者對于Java要求程序員們敲打花括號鍵來明確表達(dá)代碼段的開始和結(jié)束旭旭。括號谎脯、花括號、甚至方括號對于程序員略顯多余持寄。但是改變符號并不能消除復(fù)雜性源梭,使用像制表符等空白后你只能用直覺去感受那些無法看到的東西娱俺。如果if語句只引導(dǎo)了一行代碼,這樣不會有問題废麻,但是當(dāng)很多層嵌套時荠卷,就很難看明白。當(dāng)用Python編程時烛愧,并不意味著代碼像理解英文簡單油宜。
8、Java在藍(lán)光應(yīng)用取得突破
Java曾經(jīng)為機頂盒而設(shè)計的語言怜姿,Sun想在占據(jù)此市場慎冤,但是Java卻在另外領(lǐng)域中找到了合適的位置。藍(lán)光標(biāo)準(zhǔn)是圍繞Java建立沧卢,任何想在藍(lán)光光碟中添加額外內(nèi)容的人蚁堤,必須得到其Javac編譯器版本。藍(lán)光光碟不止限于存放視頻內(nèi)容但狭。那些額外特性和交互工具可以使用純Java代碼修改并增強披诗。壓縮后的視頻和壓縮后的Java字節(jié)碼的混合。
9立磁、Java動態(tài)類型語法工具Groovy
Java開發(fā)者必須要有一個帶有動態(tài)類型的語法呈队,可以使用Groovy一個帶有預(yù)處理器的工具,它能夠生成出Java字節(jié)碼來唱歧。這種語言也完全集成到了Java中宪摧,因此可以在Groovy中混入對Java庫的調(diào)用。就像是編寫Java代碼的縮略形式迈喉。
這一靈活性讓開發(fā)工程師得以找到問題的出路绍刮。在使用了動態(tài)方法調(diào)用時,開發(fā)者可以用Java來重寫重要的核心操作挨摸。
10孩革、Minecraft游戲中00后的情結(jié)
非主流們對Java嗤之以鼻,但是Java程序員們卻領(lǐng)先一步得运。在Ruby時尚團正聚集起自己的一群粉絲時膝蜈,Minecraft讓之后的一代人愛上了Java。它用Java編寫而成熔掺,要擴展該游戲就需學(xué)習(xí)Java來設(shè)計其插件饱搏,這保證下一代程序員首選是Java
11、NoSQL建立在Java之上
數(shù)據(jù)庫是保存信息并快速有效應(yīng)對查詢請求置逻。NoSQL的出現(xiàn)讓程序員們可以自己編寫數(shù)據(jù)庫推沸,并根據(jù)需求修剪其代碼。那些最重要NoSQL工具中很多都是用Java編寫。Cassandra鬓催、Lucene肺素、ElasticSearch、HBase和Neo4J只是一些經(jīng)常提到的NoSQL選擇宇驾。
據(jù)了解倍靡,工具通常是開源的。開發(fā)者將其獨立運行课舍,或?qū)⑺鼈兗稍谧约旱哪K中塌西,使得Java在數(shù)據(jù)庫層中成為通用語言,保證了Java開發(fā)者們擔(dān)心由于字符編碼和行結(jié)束符帶來的故障筝尾。這意味著Java開發(fā)者們可以享受由NoSQL革命帶來的豐碩果實捡需。
12、開源成就Java代碼廣泛的應(yīng)用
Sun一直是開源領(lǐng)域中的領(lǐng)導(dǎo)者之一筹淫,Java程序員們發(fā)布眾多開源許可的庫和項目栖忠。Apache項目一直都在使用一個沒要求太多回報的許可證來提供優(yōu)秀的Java代碼。07年完成在GPL許可下公開大部分代碼的工作贸街,這種開放的立場一直延續(xù)并保證Java平臺很大程度是開放和免費的。
由此狸相,Java有自己的問題薛匪,花括號增加混亂等缺點。但目前還沒有一個廣度和深度上可與之競爭的語言脓鹃。最接近的也許是JavaScript逸尖,依靠有閃電般速度的Node.js在服務(wù)器領(lǐng)域受到廣泛關(guān)注。而語言是開源且靈活多變瘸右,意味著Java程序繼續(xù)存在甚至更加興旺娇跟。
并且隨著社會信息的發(fā)展,Java技術(shù)已經(jīng)無處不在太颤,無論是手機軟件苞俘、手機Java游戲還是電腦軟件等,只要你使用到電子產(chǎn)品就會碰到和Java有關(guān)的東西龄章,更多的企業(yè)正采用Java語言開發(fā)網(wǎng)站吃谣,而在所有程序員中,Java開發(fā)工程師就占據(jù)20%的比例做裙,不可否認(rèn)岗憋,Java語言有著廣泛的行業(yè)發(fā)展前景,它在行業(yè)中的影響力已是不可避免的锚贱。