從太空探索到基因組學(xué),從反向編譯器到機(jī)器人控制器满粗,Java都是當(dāng)今世界的核心編程語(yǔ)言。
Java編程故事始于1991年,當(dāng)時(shí)Sun Microsystems試圖將其在計(jì)算機(jī)工作站市場(chǎng)的領(lǐng)先地位擴(kuò)展到迅速發(fā)展的個(gè)人電子產(chǎn)品市場(chǎng)青扔。幾乎沒(méi)有人知道Sun即將創(chuàng)建的編程語(yǔ)言將使計(jì)算民主化,激發(fā)世界范圍的社區(qū)翩伪,并成為持久的軟件開(kāi)發(fā)生態(tài)系統(tǒng)的平臺(tái)微猖,該生態(tài)系統(tǒng)包含語(yǔ)言,運(yùn)行時(shí)平臺(tái)缘屹,SDK凛剥,開(kāi)源項(xiàng)目以及許多工具。經(jīng)過(guò)詹姆斯·高斯林(James Gosling)領(lǐng)導(dǎo)的java開(kāi)發(fā)過(guò)程幾年中轻姿,核心意義是“編寫(xiě)一次犁珠,隨處運(yùn)行” Java平臺(tái)逻炊,將其范圍從最初的交互式電視設(shè)計(jì)重新定位為新興的World Wide Web應(yīng)用程序。
讓我們介紹一下25個(gè)最偉大的Java應(yīng)用程序:
1. Maestro Mars Rover控制器犁享。2004年余素,Java成為第一種擴(kuò)展類(lèi)編程語(yǔ)言。當(dāng)年位于加利福尼亞州帕薩迪納的噴氣推進(jìn)實(shí)驗(yàn)室(JPL)的NASA科學(xué)家使用了由JPL機(jī)器人接口實(shí)驗(yàn)室建造的基于Java的Maestro科學(xué)活動(dòng)計(jì)劃器來(lái)控制“精神火星”探索漫游者在探索紅色星球時(shí)的行為炊昆。通過(guò)在1995年為Mars Sojourner創(chuàng)建命令和控制系統(tǒng)溺森,在JPL上就開(kāi)始了Java的試驗(yàn)。
2. JavaFX太空軌跡探測(cè)器窑眯。計(jì)劃進(jìn)行太空飛行屏积?你可能需要aisolutions的工具,aisolutions是一家美國(guó)航空承包商磅甩,其產(chǎn)品和工程服務(wù)已被國(guó)防公司和民用航天機(jī)構(gòu)使用20多年炊林。
該公司的 JavaFX深空軌跡瀏覽器使軌跡設(shè)計(jì)人員可以計(jì)算深空三體系統(tǒng)的路徑和軌道。該應(yīng)用程序可以為任何行星月球系統(tǒng)或小行星生成多維視圖和模型卷要,并在密集的視覺(jué)搜索中過(guò)濾數(shù)百萬(wàn)個(gè)點(diǎn)渣聚。
3. NASA WorldWind。NASA發(fā)布了開(kāi)源的WorldWind僧叉,這是一個(gè)虛擬地球的SDK 奕枝,所有人可以免費(fèi)使用,該程序可以使程序員將美國(guó)航天局的地理渲染引擎添加到自己的Java瓶堕,Web或Android應(yīng)用程序中隘道。WorldWind的地理空間數(shù)據(jù)遠(yuǎn)不止Google Earth,它是由NASA工程師生成的郎笆,他們可以從高程模型和其他數(shù)據(jù)源中可視化地形谭梗。
4. JMARS和JMoon。Java遙感任務(wù)計(jì)劃和分析(JMARS)自2003年開(kāi)始公開(kāi)使用宛蚓,至今仍為NASA科學(xué)家所使用激捏,它是由亞利桑那州立大學(xué)火星太空飛行設(shè)施的人們編寫(xiě)的地理空間信息系統(tǒng)。
5.SBMT凄吏。SBMT在太空科學(xué)家中很受歡迎远舅,并且是在約翰霍普金斯大學(xué)應(yīng)用物理實(shí)驗(yàn)室開(kāi)發(fā)的,它使用航天器任務(wù)中的數(shù)據(jù)以3D形式顯示小行星痕钢,彗星和小衛(wèi)星等不規(guī)則物體图柏。SBMT用Java編寫(xiě),并使用Java 3D圖形的開(kāi)源可視化工具包(VTK)盖喷。
6.維基百科搜索爆办。2014年,Wikipedia用Elasticsearch取代了Lucene引擎课梳,Elasticsearch是一個(gè)分布式的距辆,支持REST的搜索引擎余佃,也用Java編寫(xiě)。
7. Hadoop跨算。2008年爆土,雅虎聲稱(chēng)他們的Search Webmap運(yùn)行在10,000個(gè)內(nèi)核的Linux集群上,是現(xiàn)有的最大的生產(chǎn)Hadoop應(yīng)用程序诸蚕。到2012年步势,F(xiàn)acebook聲稱(chēng)在全球最大的Hadoop集群上擁有100 PB的數(shù)據(jù)。
8.平行圖分析(PGX)背犯。圖分析是關(guān)于理解數(shù)據(jù)中的關(guān)系和連接的坏瘩。根據(jù)基準(zhǔn)測(cè)試,PGX是世界上最快的圖形分析引擎之一漠魏。PGX 用Java編寫(xiě)舔株,由Oracle Labs研究人員Sungpack Hong領(lǐng)導(dǎo)的團(tuán)隊(duì)于2014年首次發(fā)布篙骡,PGX使用戶(hù)可以加載圖形數(shù)據(jù)并運(yùn)行分析算法竟坛。
9.H2O.ai灾测。自動(dòng)化ML(AutoML)有助于推斷ML流程中的某些步驟,例如特征工程禁熏,模型訓(xùn)練和調(diào)整以及解釋壤巷。由Java Champion Cliff Click創(chuàng)建的基于Java的開(kāi)源H2O.ai平臺(tái)旨在使AI民主化,并為剛起步的人們充當(dāng)虛擬數(shù)據(jù)科學(xué)家瞧毙,并幫助ML專(zhuān)家提高效率胧华。
10. Minecraft。Minecraft及其3D宇宙是Markus“ Notch” Persson用Java開(kāi)發(fā)的升筏,并于2009年以Alpha發(fā)行撑柔。
11.抖動(dòng)機(jī)器人和leJOS瘸爽。在自主的Roomba吸塵器出現(xiàn)之前您访,有個(gè)抖動(dòng)。吉特(Jitter)是一個(gè)原型機(jī)器人剪决,旨在吸收國(guó)際空間站(ISS)中漂浮的粒子灵汪,能夠在零重力下導(dǎo)航,彈跳墻壁并使用陀螺儀進(jìn)行自我定位
12. Java小程序柑潦。根據(jù)牛津英語(yǔ)詞典的記載享言,小程序這個(gè)詞最早出現(xiàn)在1990年的“PC Magazine”中。JavaApplet是可以在網(wǎng)頁(yè)中啟動(dòng)的小程序(在一個(gè)框架中渗鬼,在一個(gè)新窗口中览露,Sun的AppletViewer,或測(cè)試工具)并在與瀏覽器分開(kāi)的JVM上運(yùn)行譬胎。
13. NetBeans和Eclipse IDE差牛。最早進(jìn)入Java世界的集成開(kāi)發(fā)環(huán)境是NetBeans命锄,NetBeans于1996年在布拉格的查爾斯大學(xué)成立(名稱(chēng)為Xelfi),并于1997年由企業(yè)家RomanStaněk創(chuàng)立的一家同名公司進(jìn)行了商業(yè)化偏化。Sun于1999年購(gòu)買(mǎi)了支持所有Java應(yīng)用程序類(lèi)型的模塊化IDE脐恩,并于次年將其開(kāi)源。2016年侦讨,Oracle將整個(gè)NetBeans項(xiàng)目捐贈(zèng)給了Apache Software Foundation驶冒。
另一個(gè)流行的基于Java的集成開(kāi)發(fā)環(huán)境是開(kāi)源Eclipse IDE,它不僅可以用于Java編碼韵卤,還可以用于從Ada到Scala的其他編程語(yǔ)言骗污。Eclipse SDK由IBM于2001年推出,基于IBM VisualAge沈条,適用于Java開(kāi)發(fā)人員身堡,但可以通過(guò)插件進(jìn)行擴(kuò)展。Eclipse IDE于2004年從IBM分離出來(lái)并進(jìn)入Eclipse Foundation拍鲤,它仍然是可用的頂級(jí)IDE之一贴谎。
14. IntelliJ IDEA。有很多IDE季稳,但是IntelliJ IDEA在2001年推出后就成為人們的最?lèi)?ài)擅这。如今,IntelliJ IDEA已成為許多IDE的框架景鼠,這些IDE適用于Python仲翎,Ruby和Go等多種語(yǔ)言。
15.字節(jié)好友铛漓。開(kāi)源Java庫(kù)Byte Buddy的創(chuàng)建者溯香,Winterhalter說(shuō),用于Java工具(例如Hibernate和Mockito)的Byte Buddy運(yùn)行時(shí)代碼生成和操作庫(kù)每月被下載2000萬(wàn)次浓恶。
16.Jenkins玫坛。Jenkins由Sun Microsystems工程師Kohsawa Kawaguchi于2004年創(chuàng)建,它是功能強(qiáng)大的開(kāi)源持續(xù)集成服務(wù)器包晰。Jenkins用Java編寫(xiě)湿镀,可幫助快速,自動(dòng)地構(gòu)建伐憾,測(cè)試和部署應(yīng)用程序勉痴。
17. GraalVM。Twitter是該技術(shù)的狂熱愛(ài)好者树肃,它使用GraalVM來(lái)提高其服務(wù)的速度和計(jì)算效率蒸矛。
18.Micronaut。為云編碼的開(kāi)發(fā)人員需要仔細(xì)考慮其應(yīng)用程序使用了多少內(nèi)存,以及應(yīng)用程序如何使用該內(nèi)存雏掠。
19. WebLogic Tengah廓脆。1997年,WebLogic Tengah? 成為企業(yè)Java服務(wù)器的第一個(gè)實(shí)質(zhì)性實(shí)現(xiàn)磁玉。
20. Eclipse集合停忿。這是有原因的,在投資銀行蚊伞,證券交易所和其他金融服務(wù)公司中席赂,許多開(kāi)發(fā)人員工作都需要強(qiáng)大的Java技能:編程語(yǔ)言擅長(zhǎng)處理并發(fā),高頻交易中常見(jiàn)的多個(gè)執(zhí)行線程的管理以及其他大型事務(wù)时迫。
21. NSA Ghidra颅停。在2019年舊金山舉行的RSA大會(huì)上,美國(guó)國(guó)家安全局推出了一種基于Java的開(kāi)源工具Ghidra掠拳,安全研究人員和從業(yè)人員現(xiàn)在使用該工具來(lái)了解惡意軟件的工作原理并檢查其自身代碼的弱點(diǎn)癞揉。這個(gè)逆向工程平臺(tái)可以將軟件從機(jī)器語(yǔ)言反編譯回源代碼(例如Java等語(yǔ)言)。
22.集成基因組瀏覽器溺欧。繪制人類(lèi)基因組圖譜的競(jìng)賽始于1990年喊熟,并在13年后結(jié)束。當(dāng)時(shí)姐刁,醫(yī)學(xué)研究人員成功地對(duì)生物技術(shù)專(zhuān)家Craig Venter的30億個(gè)DNA堿基對(duì)進(jìn)行了測(cè)序芥牌,這是一項(xiàng)耗時(shí)30年,涉及3,000人聂使,耗資30億美元的工作壁拉。序列完成后,科學(xué)家們很想深入研究我們物種的源代碼柏靶,但是怎么做呢弃理?進(jìn)入基于Java的基因組瀏覽器,這是一個(gè)由包括生物信息學(xué)教授Ann Loraine在內(nèi)的團(tuán)隊(duì)開(kāi)發(fā)的可視化工具屎蜓,用于探索基礎(chǔ)數(shù)據(jù)集和參考基因注釋痘昌。開(kāi)源集成基因組瀏覽器使研究人員可以放大,平移和繪制基因組數(shù)據(jù)圖梆靖,以識(shí)別和注釋遺傳特征控汉。為了配合這一全球努力,加利福尼亞大學(xué)圣克魯斯大學(xué)以吉姆·肯特(Jim Kent)管理的基因組瀏覽器的形式提供了類(lèi)似的工具返吻。
23.BioJava。BioJava于2000年推出乎婿,并且至今仍然很強(qiáng)大是用于處理生物數(shù)據(jù)的開(kāi)放源代碼庫(kù)测僵,該領(lǐng)域稱(chēng)為生物信息學(xué)。
24.VisibleTesla。這款基于Java的應(yīng)用程序由特斯拉汽車(chē)愛(ài)好者Joe Pasqua于2013年創(chuàng)建捍靠,是一個(gè)免費(fèi)程序沐旨,用于監(jiān)視和控制他的特斯拉ModelS。
25. SmartThings榨婆。由SmartThings開(kāi)發(fā)的物聯(lián)網(wǎng)(IoT)應(yīng)用程序由Alex Hawkinson于2012年共同創(chuàng)立磁携,后來(lái)在Kickstarter上籌集了120萬(wàn)美元,可讓你控制和自動(dòng)化從家用照明良风,鎖谊迄,咖啡機(jī),恒溫器和收音機(jī)到家的一切安全系統(tǒng)烟央。