偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Java最大的優(yōu)勢真的在于跨平臺(tái)嗎?

開發(fā) 后端
以下討論只針對PC端和移動(dòng)端。Java最大的優(yōu)勢真的在于跨平臺(tái)嗎?以前是,但現(xiàn)在已經(jīng)不是了。
以下討論只針對PC端和移動(dòng)端。

Java最大的優(yōu)勢真的在于跨平臺(tái)嗎?以前是,但現(xiàn)在已經(jīng)不是了。

Java最大的優(yōu)勢真的在于跨平臺(tái)嗎?

有跨平臺(tái)需求的僅僅是客戶端應(yīng)用,而不是服務(wù)端。例如桌面應(yīng)用,你的客戶可能是Windows用戶,也可能是Linux用戶,這時(shí)候如果不想多投入成本對各個(gè)平臺(tái)進(jìn)行適配,那么Java所謂的”Write once, run everywhere”就顯得異常光彩。然而今天,整個(gè)軟件世界都在向B/S應(yīng)用傾倒(嵌入式除外),即使要做客戶端跨平臺(tái),QT等第三方框架遠(yuǎn)遠(yuǎn)比Swing更強(qiáng)大,Java在桌面應(yīng)用領(lǐng)域基本被淘汰已經(jīng)是不爭的事實(shí)了,而當(dāng)初Java引以為豪的Applet也早已銷聲匿跡。如果說客戶端Java還有一點(diǎn)優(yōu)秀的話,那只有Android了。Android最初確實(shí)靠JVM屏蔽了不同硬件設(shè)備之間的區(qū)別并取得了巨大的成功,但在今天,Android L中ART模式的出現(xiàn)也即將顛覆這一情況,況且Google還可能會(huì)想用自家的Go語言取代Java成為Android平臺(tái)的第一語言。所以在客戶端,Java幾乎完敗。

服務(wù)端應(yīng)用不需要跨平臺(tái)。做一個(gè)Web服務(wù)器,我想沒有哪家公司今天用Linux,下個(gè)月就換Windows吧?如果僅僅是更換Linux發(fā)行版,如從Debian到Fedora,本質(zhì)上講其Linux內(nèi)核是不變的,因此像C++這樣純編譯類型的語言已經(jīng)沒什么問題。如果做游戲服務(wù)器,我想幾乎都會(huì)選擇Linux而不是Win平臺(tái)。Java的跨平臺(tái)優(yōu)勢的實(shí)用性其實(shí)已經(jīng)被大大弱化了,可以說在實(shí)際應(yīng)用中并不明顯,在一般情況下幾乎感知不出Java還能跨平臺(tái)這個(gè)特性。作為三大商用JVM之一的JRockets是只有編譯器的JVM,即應(yīng)用啟動(dòng)時(shí)會(huì)將字節(jié)碼全部編譯為本地機(jī)器碼,這其實(shí)就很大程度上摒棄了跨平臺(tái),而追求性能。

今天,Java最大的優(yōu)勢在于其龐大而完善的生態(tài)系統(tǒng)。 一門編程語言是否能流行,主要是由其生態(tài)系統(tǒng)決定的。Java生態(tài)系統(tǒng)的完善性主要體現(xiàn)在以下幾個(gè)方面:

Java擁有世界上數(shù)量最多的程序員。你說他們是農(nóng)民也好,但數(shù)量放在那里,最明顯的效果就是公司招人的時(shí)候會(huì)比較容易地招到Java程序員。試想如果你想要做一套軟件,你有一個(gè)很棒的技術(shù)方案需要用C++,Scala或Ruby等語言實(shí)現(xiàn),但招不到足夠的人手,那么計(jì)劃多半泡湯。這時(shí)候你的應(yīng)用Java也能做到,并且很輕松就能招到足夠的人,那么你選擇Java的可能性就要大一些。
Java擁有大量的第三方類庫。假如你想解析HTML,用C/C++這類語言恐怕多半只能自己編寫解析算法庫了,而如果是Java,你可以非常輕松地在Github上找到JSoup,使用Maven導(dǎo)入依賴后分分鐘就搞定HTML。為此還有一句諷刺Java的話是:“我們不生產(chǎn)代碼,我們只是Github的搬運(yùn)工。”這句話從字面上看是很有道理的,但卻忽略了對軟件生產(chǎn)效率的提升所帶來的巨大價(jià)值。對于軟件的開發(fā),公司的唯一成本其實(shí)就是“人頭費(fèi)”,每減少一個(gè)月開發(fā)時(shí)間,就能幫助公司節(jié)省幾十萬幾千萬的研發(fā)成本。
Java擁有功能強(qiáng)大的IDE。 Eclipse,通過插件幾乎可以滿足你開發(fā)的任何需求。它雖然有些慢,但你可以通過JVM調(diào)優(yōu)來提高程序的流暢度,千萬不要使用默認(rèn)的JVM參數(shù)。不過,IntelliJ Idea已經(jīng)完全超越Eclipse了,Idea的智能程度幾乎可以媲美Win平臺(tái)下的VS。我是那類離了Vim就活不下去的人,在這兩款I(lǐng)DE中都有Vim插件從而讓我愉快地存活下去。
Java擁有很多殺手級(jí)應(yīng)用。 不必多說,Spring, Struts, Hibernate, Hadoop, Tomcat, JBoss等等。
Java的語法特性很少。對,這也是一項(xiàng)優(yōu)點(diǎn)。C++相比C添加了大量特性,學(xué)起來費(fèi)事不說,用起來還會(huì)降低代碼可讀性,其實(shí)是費(fèi)了工夫不討好。當(dāng)今世界對編程語言的要求是語法簡單,代碼可讀,對性能已經(jīng)是退而求其次了,因此才誕生了Python, Ruby這樣的編程語言。有很多人批評(píng)Java語法寫起來很臃腫,我承認(rèn)這一點(diǎn),但事實(shí)是,編程語言從來都不是因?yàn)檎Z法臃腫而被淘汰的,決定其生死的是生態(tài)系統(tǒng)。對于批評(píng)者,引用知乎的一句話:”動(dòng)態(tài)類型一時(shí)爽,代碼重構(gòu)火葬場”

Java的性能已經(jīng)足夠高了。 Sun/Oracle的HotSpot JVM內(nèi)置的JIT編譯器在運(yùn)行時(shí)對字節(jié)碼已經(jīng)做出了非常大的優(yōu)化努力,服務(wù)端應(yīng)用啟動(dòng)后對JVM進(jìn)行足夠的”預(yù)熱”,并給出合理的啟動(dòng)參數(shù)即可。如果不是對性能十分敏感的系統(tǒng)類應(yīng)用,Java已經(jīng)足夠快了。有一種簡單可行的方法可以形象地看出這點(diǎn),在JVM啟動(dòng)參數(shù)中添加+XX:PrintCompilation可以看到JIT編譯器的忙碌。當(dāng)今世界對軟件的需求量越來越大,在性能可接受的情況下,開發(fā)效率才是第一位的,這也是Python這類動(dòng)態(tài)腳本語言流行的主要原因。

以上僅做客觀分析,并不想引起語言戰(zhàn)爭。畢竟,沒有最好的語言,只有最適合某種項(xiàng)目的語言。引用黑格爾的一句話:”存在即合理。”

責(zé)任編輯:王雪燕 來源: Linux社區(qū)
相關(guān)推薦

2021-04-08 14:45:57

Java語言計(jì)算機(jī)

2023-12-25 09:51:13

性能測試

2010-03-02 10:26:32

Android系統(tǒng)平臺(tái)

2023-04-10 08:28:35

CharVarchar

2021-04-07 19:44:27

JavaStringHashMap

2018-05-14 16:04:39

GDPR個(gè)人數(shù)據(jù)PII

2010-09-25 14:01:11

Java跨平臺(tái)

2018-10-29 06:01:54

物聯(lián)網(wǎng)平臺(tái)物聯(lián)網(wǎng)IOT

2019-10-28 16:14:01

云計(jì)算物聯(lián)網(wǎng)平臺(tái)物聯(lián)網(wǎng)

2017-12-22 15:34:49

AI美圖

2018-09-16 16:26:39

LiFiWiFi無線通信技術(shù)

2020-06-04 14:15:55

Java中BigDecimal函數(shù)

2018-09-29 15:34:34

JavaList接口

2023-11-01 13:48:00

反射java

2020-12-01 16:07:03

數(shù)字貨幣數(shù)字人民幣

2019-03-12 21:00:15

WindowsEmacsShell

2025-03-18 12:30:00

RubyJava語言

2010-06-21 10:09:47

Java

2011-12-03 19:59:11

HTML 5Titanium

2020-01-07 11:04:02

JavaJSP前端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)