为什么说Java仍将是未来的主导语言

Java是一门通用型编程语言,由Sun微系统公司(后被甲骨文收购)于1995年推出。尽管Java已经25岁了,但仍然“宝刀未老”。

在Stack Overflow 2019年流行编程语言调查报告中,Java位居第5位,有41%的受调开发者认为Java仍然是一门受欢迎的编程语言。

使用Java的公司

stackshare.io的数据显示,大概有9028家公司在使用Java,其中包括:

  • 谷歌;
  • Uber;
  • Airbnb;
  • 亚马逊;
  • Pinterest;
  • Slack;
  • Instagram;
  • Netflix;
  • Spotify。

为何Java如此流行?

这得益于Java的关键特性:

  • 简单性:Java为开发者和最终用户提供了简单易用的用户体验。与其他面向对象编程语言相比,Java的设计和生态库具有巨大的优势。
  • 可移植性:Java可以随时随地运行在任意的硬件上,有很多软硬件都在使用Java。
  • 资源分配:堆栈分配、垃圾回收和自动内存管理,这些特性让Java与其他编程语言区别开来。
  • 分布式:Java在网络上极具优势,通常可以自由地发送和接收文件。
  • 安全性:Java的安全编程模型提供了很高的安全性。

Java会继续流行下去吗?

相比于ASP.NET、PHP、Python等编程语言,使用Java开发的应用程序更多,从移动应用到Web应用,再到运行在可穿戴设备上的应用。

Java在大数据领域的应用

与Python一样,Java也在大数据领域占据主导地位。各种用于处理大规模数据的框架都是用Java开发的。

Apache Hadoop

Hadoop是一个使用Java开发的框架,用于在分布式环境中处理大规模数据集。Hadoop采用了主副架构模式,其中主节点负责控制整个分布式计算栈。Hadoop在需要处理和分析大规模数据的公司当中很流行。

使用Hadoop的公司包括:IBM、亚马逊、英特尔等。

Apache Spark

Spark是另一个主要使用Java开发的大数据处理框架。Spark是一个集群计算框架,可以运行在数千台机器(分布式集群)上。Spark被用在大型的ETL、预测分析和报表应用程序中。

使用Spark的公司包括:Uber、Slack、Hubspot、Shopify等。

Apache Mahout

Mahout是一个使用Java开发的机器学习库和大数据工具,用于执行机器学习操作,比如分类、聚类和推荐。

使用Mahout的公司包括:Adobe、Facebook、LinkedIn、Foursquare、Twitter、雅虎等等。

Java JFreechart

JFreechart是一个流行的开源大数据工具,用于可视化数据,可以用它制作各种图表,比如饼图、柱状图、线图、散点图、盒状图、直方图等等。

Deeplearning4j

Deeplearning4j是一个深度学习Java库,用于构建各种类型的神经网络。Deeplearning4j可以与Spark集成,运行在GPU上。

使用Deeplearning4j的公司包括:JPMorgan Chase、Wells Fargo、Interactive Brokers等等。

Apache Storm

Storm是一个开源的分布式实时计算框架,用于处理实时数据流。一个Storm节点可以在秒级处理数百万个作业。

Storm在真实世界中的案例:

  • Twitter:Storm为Twitter的很多系统提供了支持,例如实时分析、搜索、收益优化等。
  • Groupon:Storm为Groupon的实时集成系统提供支持,在低延迟和高吞吐的情况下实现数据的分析、清理、规范化和处理大量不同的数据点。
  • Weather:weather.com的Weather Channel使用Storm来收集和持久化天气数据。

Java在物联网(IOT)领域的应用

甲骨文公司表示,灵活性和流行度是IOT程序员选择Java的主要原因。

Java提供了大量的API库,可以很容易被应用到嵌入式应用程序中,所以Java适合用来进行IOT编程。相比其他编程语言,比如C语言,Java在切换平台时更加顺畅,不容易出错。从Java被用在PDA设备和早期的手机上,它就已经成为嵌入式设备的一部分。Java在可穿戴设备、电视、移动设备和其他电子设备上应用,这让它成为IOT编程的不二之选。

Android应用程序

Java借助Android应用程序组件统治了移动应用市场,通过谷歌应用商店安装的移动应用超过了73%。超过45万个移动应用是用Java开发的,包括YouTube、Tiktok等等。

Java在金融服务领域的应用

聊天机器人

因为可移植性、可维护性、调试、可视化等诸多方面的因素,Java成了开发聊天机器人最好的工具。

IBM Watson Conversation Service、api.ai、pandorabots都使用了Java。

欺诈检测和管理

银行和金融公司使用AI工具进行金融欺诈和信用卡欺诈检测。Java被用来开发这些AI工具,而AI工具为欺诈检测和风险管理带来了可不预知的见解、模式和预测模型。在开发AI工具时,Java的安全性提供了额外的好处,因为它可以帮助AI系统更好地做出判断。

一些主要的银行和金融机构在欺诈检测系统中使用了Spark。

交易系统

根据甲骨文网站对Java的描述,Java为快速开发、测试和部署提供了一个平台,是开发电子交易系统的一个很好的选择。超过80%的电子交易系统是用Java开发的,包括大部分FIX引擎。

Java虚拟机提供的动态运行时编译优化在很多情况下比编译型语言(如C++)具有更好的性能。官方JVM和JRockit Real Time(JRRT)虚拟机提供了很低的延迟,让交易系统运行得更顺畅。

Enlyft网站的数据显示,有500多家公司在使用JRRT,其中7%用在金融服务(比如交易系统)领域。

移动钱包

基于AI和Java算法开发的移动钱包,可以帮助用户在花钱时做出更智能的决策。

Java在Web应用程序中的应用

w3tech网站的数据显示,3.7%的网站使用Java作为服务器端编程语言。

使用Java开发的主要网站:

  • Aliexpress.com
  • Tianya.cn
  • Linkedin.com
  • Booking.com
  • Caijing.com.cn
  • China.com.cn
  • Amazonaws.com
  • Rednet.cn
  • Onlinesbi.com
  • Salesforce.com

用于Web开发的流行框架:

  • Spring MVC:最古老但也是最好的Web开发框架。它灵活多变,提供了很高的安全性。它的代码干净简洁,有一个强大的社区在提供支持。
  • Google Web Toolkit:完善的文档和支持,易学易用,可用于开发高度响应的应用程序。
  • JavaServer Faces:由甲骨文提供支持,提供了完善的文档、丰富的开发库。
  • Hibernate:高质量、可修改、可配置、非常方便、速度快,提供了多种数据库驱动,具有非常好的可伸缩性。
  • Struts:是Web应用程序的基础,减少了开发和测试时间,简化了测试工作。
  • Selenium:很多公司使用Selenium进行测试自动化和质量控制。一些主要的公司和机构(如MIT、Hubspot、Intuit等)在使用Selenium。

科学应用和高端技术

Nasa World Wind

World Wind是Nasa使用Java开发的一款工具,可以从卫星角度放大世界的任何一个地方。

World Wind利用了Landsat卫星图像和航天飞机雷达侦测到的地形数据,用户可以以3D的视觉体验“游览”地球。

Sun SPOT

Sun SPOT完全使用Java开发,是一个小型、无线、由电池提供动力的试验性平台,用于开发原先需要使用特定嵌入式系统的项目。

JPC(模拟器)

JPC是一个完全使用Java开发的x86模拟器,可以运行在任何支持Java虚拟机的平台上。它让用户可以更好地控制软件的运行环境,不管他们使用了怎样的硬件或操作系统。JPC的多层安全性为运行非安全软件提供了最安全的解决方案,是电脑病毒归档、保护机器免受恶意软件攻击或运行非稳定软件的理想选择。

嵌入式软件系统

据甲骨文网站透露,100%的蓝光播放器和1亿2千5百万台电视机设备使用了嵌入式Java。

Java在其他方面的应用

Java还被广泛应用在其他方面。很多基于云的应用程序提供了PaaS服务,比如Heroku、Google App Engine。Java(AWT、Swing和JavaFX)也被广泛应用于开发桌面GUI应用程序。Java是企业软件(包括网络应用程序和Web服务)的主要开发语言,甲骨文宣称Java正运行在97%的企业计算机上。

延伸阅读:

https://www.xamnation.com/why-java-will-remain-a-dominant-language-of-the-future/

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/REWy4yBCxNR2E3FBOWSD
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券