Java編程地位不可動(dòng)搖的12大原因

Java編程地位不可動(dòng)搖的12大原因

深圳達(dá)內(nèi)教育      2022-05-04 20:14:01     48

Java編程地位不可動(dòng)搖的12大原因,  如今,面對(duì)曾經(jīng)在程序員中被各種新技術(shù)掩蓋直至堙滅的技術(shù)值得懷念。猶如COBOL這當(dāng)年被老程序員們尊為神器的語(yǔ)言如今也基本

課程價(jià)格 請(qǐng)咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹

  如今,面對(duì)曾經(jīng)在程序員中被各種新技術(shù)掩蓋直至堙滅的技術(shù)值得懷念。猶如COBOL這當(dāng)年被老程序員們尊為神器的語(yǔ)言如今也基本沒(méi)有價(jià)值。而Java作為現(xiàn)代程序員的中堅(jiān)力量在這點(diǎn)上或許會(huì)成為下一個(gè)

  有關(guān)Java的技術(shù)賣(mài)出多少本書(shū)已經(jīng)是一個(gè)很久遠(yuǎn)的記憶了?,F(xiàn)處中年時(shí)期的Java語(yǔ)言的用途已經(jīng)不再出現(xiàn)在各種雜志的封面上了。Java從出生到現(xiàn)在已經(jīng)19年了,應(yīng)用開(kāi)發(fā)圈已經(jīng)開(kāi)始繞著那些更有吸引力的新技術(shù)。Java或許是Web1.0時(shí)代的一個(gè)傳說(shuō)。

  從招聘信息你就可以知道,跟iOS相關(guān)的開(kāi)發(fā)有2500左右的招聘,Java則有17000多個(gè)。數(shù)據(jù)不一定能完美的衡量技術(shù)的價(jià)值,但是在不斷推陳出新的技術(shù)推廣壓力下,Java職位是iOS的7倍之多可以說(shuō)明問(wèn)題。

  在忘記Java在計(jì)算機(jī)行業(yè)里所扮演的角色和做出的那些卓越貢獻(xiàn)前,有12個(gè)絕對(duì)的理由來(lái)告訴你Java不但不會(huì)和COBOL一樣被堙滅,并且在其后時(shí)代中更加壯大。換句話說(shuō):Java一直就在并且其地位無(wú)法撼動(dòng)。

  1、Java在市場(chǎng)斗爭(zhēng)中不屈不撓

  技術(shù)界從來(lái)沒(méi)認(rèn)為Java會(huì)成功,盡管它的對(duì)手太多但依然繁榮發(fā)展起來(lái)。那些詫異Java仍然存在的人們并沒(méi)有真正去理解為什么Java會(huì)成功。微軟是Java第一個(gè)面對(duì)的強(qiáng)大對(duì)手,因?yàn)槟菚r(shí)MS-DOS提供了通用性,而微軟看到Java是此通用性最具可能性的替代者。

  此外,蘋(píng)果SteveJobs從來(lái)沒(méi)接收過(guò)Java,即使是在Mac被除了Adobe之外所有人忽視的年代。Java的兼容性可以帶來(lái)很多有用的代碼,但是Apple一直未把Java視作第一選擇。

  Java內(nèi)部的很多斗爭(zhēng)也給它帶來(lái)了巨大痛苦。IBM喜歡Java,但是一直在和Sun斗爭(zhēng)。IBM將其開(kāi)發(fā)的優(yōu)秀的IDE工具稱為“Eclipse”的決定,一直沒(méi)被Sun的人員欣然接受。Sun也從來(lái)沒(méi)像IBM那樣深刻理解商業(yè)領(lǐng)域。

  盡管這些原因,盡管Java創(chuàng)造者也在Java發(fā)展中有許多失策之處,Java依然快速壯大,在服務(wù)器應(yīng)用領(lǐng)域如魚(yú)得水,在桌面應(yīng)用領(lǐng)域滿足基本業(yè)務(wù)需求。

  2、Java虛擬機(jī)優(yōu)化線程的魔力

  Java虛擬機(jī)的強(qiáng)項(xiàng)之一是多線程控制。JVM針對(duì)大型多核機(jī)上數(shù)百線程的穩(wěn)定性做了極佳的優(yōu)化。其他語(yǔ)言會(huì)為了能跑在JVM上面搞出交叉編譯器和模擬器。Java的這個(gè)能力同時(shí)也吸引了很多高流量的網(wǎng)站。他們可以在臺(tái)式機(jī)上搞開(kāi)發(fā)然后丟到服務(wù)器上讓JVM發(fā)揮出多核的功效。

  Ruby因?yàn)檎Z(yǔ)法的簡(jiǎn)潔和源碼可讀性好成為了Java目前的一個(gè)對(duì)手。但是當(dāng)性能成為瓶頸時(shí),Ruby開(kāi)發(fā)人員轉(zhuǎn)到了JRuby,一個(gè)用Java模擬出來(lái)的Ruby環(huán)境并增強(qiáng)了高負(fù)載下的線程處理能力。

  3、Java成為編程初學(xué)者的語(yǔ)言

  作為大學(xué)AP計(jì)算機(jī)課程,意味著在美國(guó)很多學(xué)生第一次接觸到的計(jì)算機(jī)語(yǔ)言就是Java。由于這個(gè)先入為主的原因,當(dāng)他們學(xué)習(xí)其他新的語(yǔ)言時(shí),即便轉(zhuǎn)行學(xué)其他語(yǔ)言課程,但是他們?cè)谒伎嫉臅r(shí)仍會(huì)受到Java的影響。

  Java作為一個(gè)教學(xué)語(yǔ)言是有它的原因的。聲明數(shù)據(jù)類型看上去可能比較抽象,但是為了能讓初學(xué)者理解計(jì)算機(jī)的原理,聲明數(shù)據(jù)類型通過(guò)編譯器會(huì)告訴他們數(shù)據(jù)類型不匹配而無(wú)法編譯時(shí),可以讓他們更好的理解計(jì)算機(jī)的底層原理。而一些新語(yǔ)言已經(jīng)摒棄了花括號(hào),維護(hù)麻煩使得新人有所厭倦,但是花括號(hào)對(duì)那些新手是非常有用的,因?yàn)槟軒椭麄兝斫馇短椎拇a塊。

  4、Java具有跨平臺(tái)兼容性

  雖然Java并不是第一個(gè)提供跨平臺(tái)兼容能力的語(yǔ)言,但是Java已經(jīng)成為最受歡迎的跨平臺(tái)編程工具,Sun以及Oracle已經(jīng)為程序可以跨平臺(tái)使用提供支持。當(dāng)程序不能在多個(gè)平臺(tái)上使用時(shí),導(dǎo)致問(wèn)題的原因通常是可以解決的。

  Java程序員可以使用他們的桌面開(kāi)發(fā)工具進(jìn)行編碼,并部署到目標(biāo)設(shè)備,可能是一臺(tái)手機(jī)或者一臺(tái)服務(wù)器。如果編譯器包含了正確的庫(kù)并且使用了正確的版本,代碼就可以運(yùn)行。

  5、Java在移動(dòng)領(lǐng)域上的持續(xù)成功

  Java也許并沒(méi)在大型應(yīng)用程序中有很好體現(xiàn),但它卻在移動(dòng)領(lǐng)域的細(xì)分市場(chǎng)獲得快速發(fā)展。Android平臺(tái)從上到下都是基于Java構(gòu)建起來(lái)的,并且它如今的銷(xiāo)量輕易的超過(guò)了iPhone。JavaME作為精簡(jiǎn)版的語(yǔ)言和VM已經(jīng)被廣泛應(yīng)用在智能手機(jī)上,而智能手機(jī)如今已經(jīng)遍布在全世界。

  6、Java在藍(lán)光應(yīng)用取得突破

  Java曾經(jīng)為機(jī)頂盒而設(shè)計(jì)的語(yǔ)言,Sun想在占據(jù)此市場(chǎng),但是Java卻在另外領(lǐng)域中找到了合適的位置。藍(lán)光標(biāo)準(zhǔn)是圍繞Java建立,任何想在藍(lán)光光碟中添加額外內(nèi)容的人,必須得到其Javac編譯器版本。藍(lán)光光碟不止限于存放視頻內(nèi)容。那些額外特性和交互工具可以使用純Java代碼修改并增強(qiáng)。壓縮后的視頻和壓縮后的Java字節(jié)碼的混合。

  7、Java讓花括號(hào)能優(yōu)化代碼工作

  類似Ruby、Python或Coffeescript等語(yǔ)言的開(kāi)發(fā)者對(duì)于Java要求程序員們敲打花括號(hào)鍵來(lái)明確表達(dá)代碼段的開(kāi)始和結(jié)束。括號(hào)、花括號(hào)、甚至方括號(hào)對(duì)于程序員略顯多余。但是改變符號(hào)并不能消除復(fù)雜性,使用像制表符等空白后你只能用直覺(jué)去感受那些無(wú)法看到的東西。如果if語(yǔ)句只引導(dǎo)了一行代碼,這樣不會(huì)有問(wèn)題,但是當(dāng)很多層嵌套時(shí),就很難看明白。當(dāng)用Python編程時(shí),并不意味著代碼像理解英文簡(jiǎn)單。

  8、Java動(dòng)態(tài)類型語(yǔ)法工具Groovy

  Java開(kāi)發(fā)者必須要有一個(gè)帶有動(dòng)態(tài)類型的語(yǔ)法,可以使用Groovy一個(gè)帶有預(yù)處理器的工具,它能夠生成出Java字節(jié)碼來(lái)。這種語(yǔ)言也完全集成到了Java中,因此可以在Groovy中混入對(duì)Java庫(kù)的調(diào)用。就像是編寫(xiě)Java代碼的縮略形式。

  這一靈活性讓開(kāi)發(fā)工程師得以找到問(wèn)題的出路。在使用了動(dòng)態(tài)方法調(diào)用時(shí),開(kāi)發(fā)者可以用Java來(lái)重寫(xiě)重要的核心操作。

  9、Java虛擬機(jī)讓編程更加的靈活

  Java虛擬機(jī)是按照運(yùn)行Javac編譯器產(chǎn)生的代碼源頭來(lái)設(shè)計(jì)和優(yōu)化,但開(kāi)發(fā)者們意識(shí)到Java虛擬機(jī)也可以運(yùn)行其他代碼。只要編譯器們產(chǎn)出標(biāo)準(zhǔn)的Java字節(jié)碼,Java虛擬機(jī)根本不關(guān)心是使用的那種編程語(yǔ)言。Haskell、Scala和Clojure的開(kāi)發(fā)者們?cè)O(shè)計(jì)編譯器就采用Java,而只是這個(gè)由Java虛擬機(jī)產(chǎn)生的。

  另外,Sun/Oracle為創(chuàng)建跨平臺(tái)環(huán)境而努力,工程師們消除平臺(tái)間差異,并考慮兼容性問(wèn)題,然后所有人可以運(yùn)行他們想運(yùn)行的程序。微軟在創(chuàng)建C#時(shí)為大部分主要語(yǔ)言設(shè)計(jì)了編譯器,使得C#虛擬機(jī)可以運(yùn)行這些語(yǔ)言編寫(xiě)的所有程序。C#程序員可以用很多不同的語(yǔ)言編寫(xiě)程序,只要通過(guò)一個(gè)Windows盒子將其運(yùn)行在一個(gè)虛擬機(jī)上即可。

  10、NoSQL建立在Java之上

  數(shù)據(jù)庫(kù)是保存信息并快速有效應(yīng)對(duì)查詢請(qǐng)求。NoSQL的出現(xiàn)讓程序員們可以自己編寫(xiě)數(shù)據(jù)庫(kù),并根據(jù)需求修剪其代碼。那些最重要NoSQL工具中很多都是用Java編寫(xiě)。Cassandra、Lucene、ElasticSearch、Hbase和Neo4J只是一些經(jīng)常提到的NoSQL選擇。

  據(jù)了解,工具通常是開(kāi)源的。開(kāi)發(fā)者將其獨(dú)立運(yùn)行,或?qū)⑺鼈兗稍谧约旱哪K中,使得Java在數(shù)據(jù)庫(kù)層中成為通用語(yǔ)言,保證了Java開(kāi)發(fā)者們擔(dān)心由于字符編碼和行結(jié)束符帶來(lái)的故障。這意味著Java開(kāi)發(fā)者們可以享受由NoSQL革命帶來(lái)的豐碩果實(shí)。

  11、Minecraft游戲中00后的情結(jié)

  非主流們對(duì)Java嗤之以鼻,但是Java程序員們卻領(lǐng)先一步。在Ruby時(shí)尚團(tuán)正聚集起自己的一群粉絲時(shí),Minecraft讓之后的一代人愛(ài)上了Java。它用Java編寫(xiě)而成,要擴(kuò)展該游戲就需學(xué)習(xí)Java來(lái)設(shè)計(jì)其插件,這保證下一代程序員首選是Java

  12、開(kāi)源成就Java代碼廣泛的應(yīng)用

  Sun一直是開(kāi)源領(lǐng)域中的領(lǐng)導(dǎo)者之一,Java程序員們發(fā)布眾多開(kāi)源許可的庫(kù)和項(xiàng)目。Apache項(xiàng)目一直都在使用一個(gè)沒(méi)要求太多回報(bào)的許可證來(lái)提供優(yōu)秀的Java代碼。07年完成在GPL許可下公開(kāi)大部分代碼的工作,這種開(kāi)放的立場(chǎng)一直延續(xù)并保證Java平臺(tái)很大程度是開(kāi)放和免費(fèi)的。

  由此,Java有自己的問(wèn)題,花括號(hào)增加混亂等缺點(diǎn)。但目前還沒(méi)有一個(gè)廣度和深度上可與之競(jìng)爭(zhēng)的語(yǔ)言。最接近的也許是Javascript,依靠有閃電般速度的Node.js在服務(wù)器領(lǐng)域受到廣泛關(guān)注。而語(yǔ)言是開(kāi)源且靈活多變,意味著Java程序繼續(xù)存在甚至更加興旺。

  關(guān)注“深圳達(dá)內(nèi)教育Java學(xué)院”微信公眾號(hào),獲取更多相關(guān)資訊。


  


培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過(guò)大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。