從太空探索到基因組學(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)。