从太空探索到基因组学,从反向编译器到机器人控制器,Java都是当今世界的核心编程语言。
Java编程故事始于1991年,当时Sun Microsystems试图将其在计算机工作站市场的领先地位扩展到迅速发展的个人电子产品市场。几乎没有人知道Sun即将创建的编程语言将使计算民主化,激发世界范围的社区,并成为持久的软件开发生态系统的平台,该生态系统包含语言,运行时平台,SDK,开源项目以及许多工具。经过詹姆斯·高斯林(James Gosling)领导的java开发过程几年中,核心意义是“编写一次,随处运行” Java平台,将其范围从最初的交互式电视设计重新定位为新兴的World Wide Web应用程序。
让我们介绍一下25个最伟大的Java应用程序:
1. Maestro Mars Rover控制器。2004年,Java成为第一种扩展类编程语言。当年位于加利福尼亚州帕萨迪纳的喷气推进实验室(JPL)的NASA科学家使用了由JPL机器人接口实验室建造的基于Java的Maestro科学活动计划器来控制“精神火星”探索漫游者在探索红色星球时的行为。通过在1995年为Mars Sojourner创建命令和控制系统,在JPL上就开始了Java的试验。
2. JavaFX太空轨迹探测器。计划进行太空飞行?你可能需要aisolutions的工具,aisolutions是一家美国航空承包商,其产品和工程服务已被国防公司和民用航天机构使用20多年。
该公司的 JavaFX深空轨迹浏览器使轨迹设计人员可以计算深空三体系统的路径和轨道。该应用程序可以为任何行星月球系统或小行星生成多维视图和模型,并在密集的视觉搜索中过滤数百万个点。
3. NASA WorldWind。NASA发布了开源的WorldWind,这是一个虚拟地球的SDK ,所有人可以免费使用,该程序可以使程序员将美国航天局的地理渲染引擎添加到自己的Java,Web或Android应用程序中。WorldWind的地理空间数据远不止Google Earth,它是由NASA工程师生成的,他们可以从高程模型和其他数据源中可视化地形。
4. JMARS和JMoon。Java遥感任务计划和分析(JMARS)自2003年开始公开使用,至今仍为NASA科学家所使用,它是由亚利桑那州立大学火星太空飞行设施的人们编写的地理空间信息系统。
5.SBMT。SBMT在太空科学家中很受欢迎,并且是在约翰霍普金斯大学应用物理实验室开发的,它使用航天器任务中的数据以3D形式显示小行星,彗星和小卫星等不规则物体。SBMT用Java编写,并使用Java 3D图形的开源可视化工具包(VTK)。
6.维基百科搜索。2014年,Wikipedia用Elasticsearch取代了Lucene引擎,Elasticsearch是一个分布式的,支持REST的搜索引擎,也用Java编写。
7. Hadoop。2008年,雅虎声称他们的Search Webmap运行在10,000个内核的Linux集群上,是现有的比较大的生产Hadoop应用程序。到2012年,Facebook声称在全球比较大的Hadoop集群上拥有100 PB的数据。
8.平行图分析(PGX)。图分析是关于理解数据中的关系和连接的。根据基准测试,PGX是世界上最快的图形分析引擎之一。PGX 用Java编写,由Oracle Labs研究人员Sungpack Hong领导的团队于2014年首次发布,PGX使用户可以加载图形数据并运行分析算法。
9.H2O.ai。自动化ML(AutoML)有助于推断ML流程中的某些步骤,例如特征工程,模型训练和调整以及解释。由Java Champion Cliff Click创建的基于Java的开源H2O.ai平台旨在使AI民主化,并为刚起步的人们充当虚拟数据科学家,并帮助ML专家提高效率。
10. Minecraft。Minecraft及其3D宇宙是Markus“ Notch” Persson用Java开发的,并于2009年以Alpha发行。
11.抖动机器人和leJOS。在自主的Roomba吸尘器出现之前,有个抖动。吉特(Jitter)是一个原型机器人,旨在吸收国际空间站(ISS)中漂浮的粒子,能够在零重力下导航,弹跳墙壁并使用陀螺仪进行自我定位
12. Java小程序。根据牛津英语词典的记载,小程序这个词最早出现在1990年的“ PC Magazine”中。JavaApplet是可以在网页中启动的小程序(在一个框架中,在一个新窗口中,Sun的AppletViewer,或测试工具)并在与浏览器分开的JVM上运行。
13. NetBeans和Eclipse IDE。最早进入Java世界的集成开发环境是NetBeans,NetBeans于1996年在布拉格的查尔斯大学成立(名称为Xelfi),并于1997年由企业家RomanStaněk创立的一家同名公司进行了商业化。Sun于1999年购买了支持所有Java应用程序类型的模块化IDE,并于次年将其开源。2016年,Oracle将整个NetBeans项目捐赠给了Apache Software Foundation。
另一个流行的基于Java的集成开发环境是开源Eclipse IDE,它不仅可以用于Java编码,还可以用于从Ada到Scala的其他编程语言。Eclipse SDK由IBM于2001年推出,基于IBM VisualAge,适用于Java开发人员,但可以通过插件进行扩展。Eclipse IDE于2004年从IBM分离出来并进入Eclipse Foundation,它仍然是可用的优秀IDE之一。
14. IntelliJ IDEA。有很多IDE,但是IntelliJ IDEA在2001年推出后就成为人们的最爱。如今,IntelliJ IDEA已成为许多IDE的框架,这些IDE适用于Python,Ruby和Go等多种语言。
15.字节好友。开源Java库Byte Buddy的创建者,Winterhalter说,用于Java工具(例如Hibernate和Mockito)的Byte Buddy运行时代码生成和操作库每月被下载2000万次。
16.Jenkins。Jenkins由Sun Microsystems工程师Kohsawa Kawaguchi于2004年创建,它是功能强大的开源持续集成服务器。Jenkins用Java编写,可帮助快速,自动地构建,测试和部署应用程序。
17. GraalVM。Twitter是该技术的狂热爱好者,它使用GraalVM来提高其服务的速度和计算效率。
18.Micronaut。为云编码的开发人员需要仔细考虑其应用程序使用了多少内存,以及应用程序如何使用该内存。
19. WebLogic Tengah。1997年,WebLogic Tengah 成为企业Java服务器的第一个实质性实现。
20. Eclipse集合。这是有原因的,在投资银行,证券交易所和其他金融服务公司中,许多开发人员工作都需要强大的Java技能:编程语言擅长处理并发,高频交易中常见的多个执行线程的管理以及其他大型事务。
21. NSA Ghidra。在2019年旧金山举行的RSA大会上,美国国家安全局推出了一种基于Java的开源工具Ghidra,安全研究人员和从业人员现在使用该工具来了解恶意软件的工作原理并检查其自身代码的弱点。这个逆向工程平台可以将软件从机器语言反编译回源代码(例如Java等语言)。
22.集成基因组浏览器。绘制人类基因组图谱的竞赛始于1990年,并在13年后结束。当时,医学研究人员成功地对生物技术专家Craig Venter的30亿个DNA碱基对进行了测序,这是一项耗时30年,涉及3,000人,耗资30亿美元的工作。序列完成后,科学家们很想深入研究我们物种的源代码,但是怎么做呢?进入基于Java的基因组浏览器,这是一个由包括生物信息学教授Ann Loraine在内的团队开发的可视化工具,用于探索基础数据集和参考基因注释。开源集成基因组浏览器使研究人员可以放大,平移和绘制基因组数据图,以识别和注释遗传特征。为了配合这一全球努力,加利福尼亚大学圣克鲁斯大学以吉姆·肯特(Jim Kent)管理的基因组浏览器的形式提供了类似的工具。
23.BioJava。BioJava于2000年推出,并且至今仍然很强大是用于处理生物数据的开放源代码库,该领域称为生物信息学。
24.VisibleTesla。这款基于Java的应用程序由特斯拉汽车爱好者Joe Pasqua于2013年创建,是一个免费程序,用于监视和控制他的特斯拉ModelS。
25. SmartThings。由SmartThings开发的物联网(IoT)应用程序由Alex Hawkinson于2012年共同创立,后来在Kickstarter上筹集了120万美元,可让你控制和自动化从家用照明,锁,咖啡机,恒温器和收音机到家的一切安全系统。