甲骨文:有史以來最偉大的 25 個 Java 應用程序

雲棲號資訊:【點擊查看更多行業資訊
在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!

摘要:從太空探索到基因組學,從反向編譯器到機器人控制器,Java 都是當今世界的核心。下面將介紹幾個從衆多 Java 應用程序中脫穎而出的優秀應用。

0e94a011fa56da9a7f9babc5da4aa928

Java 的故事始於 1991 年,當時 Sun Microsystems 試圖將其在計算機工作站市場的領先地位擴展到新興且發展迅速的個人電子產品市場。幾乎沒有人預料到 Sun 即將創建的編程語言會使計算大衆化,激發了一個全球範圍的社區,併成爲了一個由語言、運行時平臺、SDK、開源項目以及許多工具組成的持久軟件開發生態系統的平臺。經過 James Gosling 領導的數年祕密開發之後,Sun 於 1995 年發佈了具有里程碑意義的“一次編寫,隨處運行” 的 Java 平臺,並將重點從最初的交互式電視系統設計轉到了新興的萬維網應用程序上。在本世紀初,Java 就已經開始爲從智能卡到太空飛行器的一切製作動畫了。

如今,數以百萬計的開發人員在使用 Java 編程, Java 仍然在以越來越快的步伐向前發展。在 Java 誕生 25 週年之際,Java Magazine(Oracle 的雙月刊)聯合 Oracle Java 開發團隊,共同撰文回顧 Java 是如何塑造我們這個星球的。

以下是迄今爲止,最具創意和影響力的 25 個 Java 應用程序, 包含了從 Wikipedia Search 到美國國家安全局的 Ghidra 等。這些應用包羅萬象,覆蓋了包括:太空探索、視頻遊戲、機器學習、基因組學、汽車、網絡安全等不同領域。

這份清單沒有特定的順序,也還不夠詳盡,可能會有遺漏,如果你認爲文章中遺漏了哪個重要的 Java 應用,可以在文末給我們留言!

最後的邊界

e0e382fd8e38f97cc7582e202bf7bb6e

1、Maestro 火星探測器控制器。 2004 年,Java 成爲首個擴展人類星球影響力的編程語言。那年在三個月的時間裏,美國國家航空航天局(NASA)的科學家在位於加利福尼亞州帕薩迪納的噴氣推進實驗室(JPL)裏,使用了由 JPL 機器人接口實驗室建造的基於 Java 的 Maestro Science Activity Planner 來控制“勇氣號”火星探測器(Spirit Mars Exploration Rover )。在 JPL 裏,Java 試驗早在許多年前就開始,當時是爲 1995 年的“逗留者”火星車(Mars Sojourner)創建了一個命令和控制系統。 Java 創始人 James Gosling 爲 JPL 工作了很長時間,因此他成爲了顧問委員會的一名成員。

2、JavaFX 深空軌跡探測器。計劃進行一次太空飛行?您可能需要來自 a.i.solutions 的工具,a.i.solutions 是一家美國航空承包商,其產品和工程服務已經被國防公司和民用航天機構使用了 20 多年。

該公司的 JavaFX 深空軌道探測器(JavaFX Deep Space Trajectory Explorer)使軌跡設計人員可以計算深空三體系統的路徑和軌道。該應用程序可以爲任何行星 - 衛星系統或小行星生成多維視圖和模型,並能在密集的視覺搜索中過濾數百萬個點。

3、NASA WorldWind。NASA 發佈了開源的 WorldWind 軟件開發工具包,所有人都可以免費使用火箭科學家的工作成果。WorldWind 是一個虛擬地球 SDK,允許程序員將美國航天局的地理渲染引擎添加到自己的 Java、Web 或 Android 應用程序中。 WorldWind 的地理空間數據遠遠超過了谷歌地球(Google Earth),它是由 NASA 工程師通過高程模型和其他數據源可視化地形的方式生產的。其網站稱:“世界各地的組織都使用 WorldWind 監測天氣模式,可視化城市和地形,跟蹤車輛移動,分析地理空間數據以及對人類進行地球知識的教育。”

4、JMARS 和 JMoon。 Java 任務 - 遙感計劃和分析(JMARS)是一個地理空間信息系統,由亞利桑那州立大學火星空間飛行設施人員編寫,自 2003 年開始公開發行,至今仍爲 NASA 科學家所使用。 月球 JMARS (月球科學家稱之 JMoon)可以分析月球勘測軌道飛行器(Lunar Reconnaissance Orbiter,LOR)拍攝的廣角圖像,它是一種自動航天器,自 2009 年發射以來,一直在 50 至 200 公里的月球軌道上運行,並能將觀測結果發送給 NASA 的行星數據系統(Planetary Data System)。

5、小體映射工具( Small Body Mapping Tool ,SBMT)。 SBMT 在太空科學家中很受歡迎,是由約翰霍普金斯大學應用物理實驗室開發的,它使用來自航天器的任務數據以 3D 的形式可視化小行星、彗星和小衛星等不規則天體。 SBMT 是用 Java 編寫的,並使用了用於 Java 3D 圖形處理的開源可視化工具包(VTK)。“黎明“號(Dawn)、“羅塞塔”號(Rosetta)、“奧西里斯 - 雷克斯”號(OSIRIS-REx)和“隼鳥二號”(Hayabusa2)飛行任務團隊在探索彗星、小行星和矮行星時都使用了 SBMT。

數據的強度

d0f57f2a6c5ff22176c9ed2b09be7ba0

6、Wikipedia Search。一部大衆百科全書應該運行在開源軟件上,並且具有一個由 Java 驅動的搜索引擎,這是再合適不過的了。 Lucene 是由 Doug Cutting 於 1999 年編寫,並以他妻子的中間名命名的,它實際上是 Cutting 開發的第五個搜索引擎。他作爲工程師先後爲 Xerox PARC(施樂帕克研究中心)、Apple 和 Excite 創建了其他的引擎。 2014 年,Wikipedia 用 Elasticsearch 代替了 Lucene 引擎,Elasticsearch 是一個分佈式的、支持 REST 的搜索引擎,也是用 Java 編寫的。

7、Hadoop。 Lucene 並不是唯一一個進入我們這個榜單的 Cutting 創建的作品。2003 年,Google 在一篇研究論文中描述了在大型商用計算機集羣上處理數據的 MapReduce 算法,受該論文的啓發,Cutting 用 Java 編寫了一個 MapReduce 操作開源框架,並以他兒子的玩具大象命名,稱爲 Hadoop 。 Hadoop 1.0 於 2006 年發佈,催生了大數據趨勢,並激發了許多公司開始收集“數據湖”(data lakes),制定挖掘“數據排放”(data exhaust)的策略,並將數據描述爲“新石油”(the new oil)。到 2008 年,Yahoo(當時的 Cutting 曾在該公司工作)宣稱他們的 Search Webmap 運行在 10,000 個內核的 Linux 羣集上,是現有的最大的產線 Hadoop 應用程序。到 2012 年,Facebook 聲稱在全球最大的 Hadoop 集羣上擁有超過 100 PB 的數據。

8、並行圖形分析(Parallel Graph AnalytiX,PGX)。圖形分析是有關理解數據中的關係和連接的。根據基準測試, PGX 是世界上速度最快的圖形分析引擎之一。 PGX 是用 Java 編寫的,由 Oracle Labs 研究員 Sungpack Hong 領導的團隊於 2014 年首次發佈,PGX 允許用戶加載圖形數據並運行分析算法,比如,社區發現(Community Detection)、聚類、路徑查找、頁面排名、影響因素分析、異常檢測、路徑分析和模式匹配等算法。在健康、安全、零售和金融領域,它的用例比比皆是。

9、H2O.ai。機器學習(ML)的曲線非常陡峭,這可能會阻止領域專家實現偉大的 ML 想法。自動化 ML(AutoML)可以通過推斷 ML 流程中的某些步驟(例如特徵工程、模型訓練和調整以及轉譯等)來提供一些幫助。 由 Java 冠軍 Cliff Click 創建的基於 Java 的開源 H2O.ai 平臺,旨在實現 AI 的大衆化,並能爲那些剛入門的人們充當虛擬數據科學家,同時能幫助 ML 專家提高效率。

有趣的世界

362d839b76871615eeb6ff82fce782b3

10、 Minecraft。該遊戲的和平環境是由生物羣落、人以及自己用積木搭建的住所組成的,它對世界各地的兒童和成人都有着持久的吸引力,這使得它成爲歷史上最受歡迎的視頻遊戲。 Minecraft 及其 3D 宇宙是由 Markus “Notch” Persson 用 Java 開發的,並於 2009 年以 Alpha 版本發佈,它是永無止境的創造力之源,因爲沒有兩個衍生的世界是一樣的。該視頻遊戲對 Java 的使用也可以讓在家和學校的程序員創建自己的模塊。

11、Jitter 機器人和 leJOS。在自動吸塵器 Roomba 出現之前,就已經有 Jitter 。Jitter 是一個用來吸取國際空間站(ISS)中漂浮顆粒的原型機器人,它能夠在失重狀態下導航,在牆壁上彈跳,並能使用迴轉儀進行自我定位。據報告稱,俄羅斯宇航員發現該機器人的 x、y、z 旋轉操作令人印象深刻,能讓人聯想到國際空間站自身是如何控制其方向的。Jitter 是 leJOS 最出類拔萃的原型,leJOS 是 Lego Mindstorms 的 Java 虛擬機,是 Lego 的硬件軟件環境,可用於從積木玩具中開發可編程的機器人。玩具 OS 可以追溯到 1999 年由 José Solorzano 發起的 TinyVM 項目,該項目後來演變成 leJOS,由 Brian Bagnall、JürgenStuber 和 Paul Andrews 領導。這個功能齊全的環境具有許多特定於機器人編程的類,這些類使用 Java 的面向對象特性進行了簡化,使得任何人都可以利用其高級控制器和行爲算法。

12、Java 小程序。根據牛津英語詞典,小程序(applet)一詞最早出現在 1990 年的 PC Magazine(計算機雜誌)上。但是直到 1995 年 Java 出現後,小程序才真正騰飛。Java 小程序可以在網頁(Frame、新窗口、Sun 的 AppletViewer 或測試工具)中啓動,並能運行在於瀏覽器相獨立的 JVM 上。一些人將 Minecraft 的早期成功歸功於這樣一個事實:玩家可以通過 Java 小程序在 Web 瀏覽器中玩遊戲,而不必下載並安裝遊戲。儘管 Java 小程序自 Java 9 以來就不被推薦,並且在 2018 年也被從 Java SE 11 中剔除掉了,但它們一度是最快的遊戲。一個有趣的事實是:Java 小程序還可以訪問 3D 硬件加速,這使得它們在科學可視化方面很受歡迎。

榮譽代碼

FA323029_9B87_4679_BF91_34CF79917D85

13、NetBeans 和 Eclipse IDE。最早進入 Java 集成開發環境世界的是 NetBeans ,NetBeans 於 1996 年在布拉格的查爾斯大學(以 Xelfi 的名義)創立,並於 1997 年由企業家 Roman Staněk 創立的同名公司進行商業化。 Sun 在 1999 年購買了支持所有 Java 應用程序類型的模塊化 IDE,並於次年將其開源。 2016 年,Oracle 將整個 NetBeans 項目捐贈給了 Apache 軟件基金會(Apache Software Foundation)。

另一個流行的基於 Java 的集成開發環境是開源的 Eclipse IDE,它不僅可以用於 Java 編碼,還可用於從 Ada 到 Scala 的其他語言的編碼。 Eclipse SDK 由 IBM 於 2001 年推出,是基於 IBM VisualAge 的,它是面向 Java 開發人員的,但是可以通過插件進行擴展。 Eclipse IDE 於 2004 年從 IBM 分離出來並加入 Eclipse 基金會,它目前仍然是可用的頂級 I​​DE 之一。

14、 IntelliJ IDEA。IDE 有很多,但 IntelliJ IDEA 在 2001 年推出後就成爲了人們的最愛。如今,IntelliJ IDEA 已成爲許多 IDE 的框架,這些 IDE 適用於 Python、Ruby 和 Go 等多種語言。 IntelliJ IDEA 及其相關的 JetBrains IDE 套件是使用 Java 編寫的,可以提高許多開發人員所依賴的生產力和導航功能。其中包括代碼索引、重構、代碼完成(這要早於智能手機上的文本自動完成)以及發現錯誤的動態分析(類似於拼寫檢查器)。 “ IntelliJ IDEA 幫助克服了在某個框架下管理和調試基於 Java 和 JVM 的複雜應用程序的挑戰,”駐英自由軟件和數據工程師、Java 冠軍 Mani Sarkar 說。 “它們讓開發人員在使用它們的工具時,感到高效、多產,最重要的是能感到快樂。”

15、Byte Buddy。開源 Java 庫 Byte Buddy 的創建者,來自奧斯陸(挪威 Oslo)的軟件工程師 Rafael Winterhalter 坦承,他的一生(有時令人發狂)專注於小衆市場。儘管如此,他的貢獻還是大受歡迎:Winterhalter 說,用於 Hibernate 和 Mockito 等 Java 工具的 Byte Buddy 運行時代碼生成和操作庫每月下載量高達 2000 萬次。

16、Jenkins。 Jenkins 由 Sun Microsystems 工程師 Kohsuke Kawaguchi 於 2004 年創建,是一個功能強大的開源的持續集成服務器。 Jenkins 用 Java 編寫,可幫助我們快速自動地構建、測試和部署應用程序。它通常被認爲是使“基礎設施即代碼”(Infrastructure As Code,Iac)成爲可能的早期 DevOps 工具之一。 Jenkins 及其 1500 多個由社區貢獻的插件可以處理各種各樣的部署和測試任務,從與 GitHub 合作,到支持色盲開發人員,再到提供 MySQL Connector JAR 文件。

17、GraalVM。由 Oracle Labs 的 Thomas Wuerthinger 領導的一個蘇黎世(Zurich)研究團隊,花費了多年的時間來磨練三個想法:我們是否可以用 Java 編寫編譯器(原始 JVM 是用 C 編寫的)呢?它是否可以運行以任何語言編寫的程序呢?它是否夠高效呢?在發表了 60 篇研究論文之後, GraalVM 最終勝出,併成爲了一個商業產品。 Twitter 是這項技術的狂熱愛好者之一,它使用 GraalVM 來提高服務的速度和計算效率。

18、Micronaut。爲雲編寫代碼的開發人員需要仔細考慮其應用程序使用了多少內存,以及應用程序如何使用這些內存。 Micronaut 的創建者 Graeme Rocher 說: “您必須使應用程序對重啓、故障自動切換、停機再恢復非常敏感,並在啓動時間和內存消耗方面進行優化,” 。Micronau 是一個用於微服務的 Java 框架,該微服務需使用註解元數據,以便 JVM 能夠有效地編譯應用程序的字節碼。

19、WebLogic Tengah。 1997 年, WebLogic Tengah 成爲企業級 Java 服務器的首個實質性實現。 “它早於 Java 2 企業版,併成爲 BEA 的主要產品,最終導致了 Oracle 收購 BEA Systems,”Java Magazine 和 Dr. Dobb’s Journal 的前主編 Andrew Binstock 說。 與此同時,IBM 在業務對象框架 San Francisco Project 上的成功,“使 Java 真正從酷孩子們正在玩的一個有趣的新事物中脫穎而出,併成爲一種嚴肅的業務工具,”Binstock 說。如今,Oracle WebLogic Server 仍然是領先的 Java 應用程序服務器。然而,另一種選擇仍在蓬勃發展:開源應用程序服務器 GlassFish ,它於 2005 年由 Sun 創建,於 2018 年捐贈給 Eclipse 基金會。

20、Eclipse Collections。工作在投資銀行、證券交易所和其他金融服務公司的許多高薪開發人員都需要強大的 Java 技能,這是有原因的:Java 編程語言擅長處理併發,即管理高頻交易和其他大規模金融事務中常見的多個執行線程。 Eclipse Collections 最初稱爲 Goldman Sachs Collections,後來捐贈給了 Eclipse 基金會,它擴展了原生 Java 的性能密集型特性,“具有優化的數據結構和豐富的、功能強大的、流暢的 API”,Java 冠軍 Mani Sarkar 說。 Sarkar 指出,Eclipse Collections 包含緩存、原語支持、併發庫、通用註解、字符串處理、輸入 / 輸出等等。

21、NSA Ghidra。在舊金山舉行的 2019 年 RSA 大會上,美國國家安全局( U.S. National Security Agency)推出了一款基於 Java 的開源工具 Ghidra ,安全研究人員和從業者現在可以使用它來了解惡意軟件的工作原理,並檢查自己的代碼是否存在漏洞。這個逆向工程平臺可以將軟件從機器語言反編譯回源代碼(例如 Java 語言)。該工具有一個故事,即使不是聲名狼藉,也是傳奇:2017 年 3 月,維基解密(WikiLeaks)將其存在公之於衆。

繪製基因組圖譜

2E03E213_FED9_48c6_B788_CC21443177C2

22、集成基因組瀏覽器( Integrated Genome Browser,IGB)。繪製人類基因組圖譜的競賽始於 1990 年,並在 13 年後結束。當時,醫學研究人員成功地對生物技術專家 Craig Venter 的 30 億個 DNA 鹼基對進行了測序,這項工作歷時 10 年,涉及 3,000 人,耗資 30 億美元。測序完成後,科學家們很想深入研究我們這個物種的源代碼,但是怎麼做呢?進入基於 Java 的基因組瀏覽器,這是一個由包括生物信息學教授 Ann Loraine 在內的團隊開發的可視化工具,可用於探索基礎數據集和參考基因註解。開源的集成基因組瀏覽器(Integrated Genome Browser )允許研究人員放大、平移和繪製基因組數據,以便識別和註解遺傳特徵。爲了配合這一全球努力,加州大學聖克魯茲分校(University of California Santa Cruz)提供了一個類似的工具,即由 Jim Kent 管理的基因組瀏覽器(Genome Browser)。

23、BioJava。 BioJava 於 2000 年啓動,至今仍很強大,它是一個用於處理生物數據的開源庫,生物數據領域也被稱爲生物信息學。科學家使用該庫可以處理蛋白質和核苷酸序列,並可以研究有關基因到蛋白質翻譯、基因組學、系統發育和大分子結構的數據。該項目得到了開放生物信息學基金會(Open Bioinformatics Foundation,OBF)的支持,其全球範圍的貢獻者得到了各種製藥、醫學和基因組學領域的資助。 “BioJava 是方法論和軟件開發的一個熱門選擇,這要歸功於 Java 的可用工具及其跨平臺的可移植性,” Aleix Lafita 及其同事在 2019 年發表的一篇題爲“ BioJava 5:社區驅動的開源生物信息庫”的論文中寫道。該論文進一步指出,自 2009 年以來,BioJava 已經接受了 65 個不同開發人員的貢獻,並且在過去的一年中,它已在 GitHub 上累積了 224 個 fork 和 270 個 star,並且下載次數超過了 19,000 次。

最喜歡的“東西”

72A83FDB_79F4_4348_AFA3_5072C489A56B

24、VisibleTesla。這款基於 Java 的應用程序是由特斯拉(Tesla)汽車愛好者 Joe Pasqua 於 2013 年創建的,它是一個免費程序,可用於監視和控制他的特斯拉 Model S。 VisibleTesla 的靈感來自於特斯拉汽車俱樂部社區,它提供與電動汽車製造商官方移動應用程序類似的功能。用戶可以爲諸如解鎖的門或充電狀態之類的東西設置地理圍欄和通知,以及收集和處理行程數據。該項目的開源代碼託管在 GitHub 上。

25、SmartThings。該物聯網(IoT)應用程序是由 SmartThings 開發的(SmartThings 是由 Alex Hawkinson 於 2012 年聯合創立的,後來在 Kickstarter 上籌集了 120 萬美元的資金),可以讓我們通過智能手機或平板電腦控制和自動化所有的東西,從家用照明、鎖、咖啡機、恆溫器以及收音機到全部家用安全系統。該應用程序使用基於 Java 的 Micronaut 框架(請參閱#18),因此它基於雲的服務可以以亞秒級的速度運行。該公司於 2014 年被三星電子(Samsung Electronics)以 2 億美元的高價收購。

【雲棲號在線課堂】每天都有產品技術專家分享!
課程地址:https://yqh.aliyun.com/zhibo

立即加入社羣,與專家面對面,及時瞭解課程最新動態!
【雲棲號在線課堂 社羣】https://c.tb.cn/F3.Z8gvnK

原文發佈時間:2020-07-13
本文作者:Alexa Morales
本文來自:“InfoQ”,瞭解相關信息可以關注“InfoQ

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章