写点什么

开发者如何看 Java 发展趋势?

2019 年 8 月 06 日

开发者如何看Java发展趋势?

Java 作为一门长青的编程语言,在比较长的发展时间里,时常会有唱衰的声音。但 Java 一直在不断向前发展,受欢迎程度也一直很高,TIOBE 榜单常年保持在 Top 2,未来 Java 将如何发展呢?本文搜集了一些国外开发者和相关从业人员的看法。


最 Hot 的 Java 应用场景

在纷繁复杂的编程语言中,Java 一直是深受开发者和企业欢迎的编程语言。从 2001 年起,Java 在 TIOBE 榜单中几乎排在首位,偶尔排在第二位。受欢迎程度如此高、使用广泛的编程语言肯定会有一些需要掌握的特定技能。


CV Compiler从 AngelList,StackOverflow,LinkedIn 等网站收集了 300 个 Java 招聘需求,并从这 300 个招聘需求中统计出了企业想要 Java 程序员掌握的技能。



除了需要掌握的技能,哪些 Java 使用场景最受欢迎呢?


用于 Web 编程

大多数企业都喜欢使用 Spring MVC 构建 Web 应用程序的后端,使用 Angular 或 React.js 前端框架来构建应用程序的前端。这意味着,Java 程序员虽然不需要完全掌握 JavaScript 前端框架的知识,但是需要了解 Java 代码如何与前端框架进行交互。


最受欢迎的 Java 后端框架是 Apache Struts。与 Spring 一样,Apache Struts 自 5 年前发布以来,一直在跟随 Java 的更新步伐,不同的是,Spring MVC 只是复杂解决方案的一部分,而 Apache Struts 可以处理应用程序的多个方面,例如测试或数据访问。


数据处理

很多人都认为大数据并不是 Java 擅长的应用场景,但是 CV Compiler 的调查结果显示 Java 在大数据方面的应用正在崛起,甚至 CV Compiler 认为在数据科学的市场,Java 可能会与 Python 相提并论。


很多企业招聘人员都希望 Java 应聘者能够熟悉 Apache Kafka、Hadoop、Azure 以及 Spark 等与大数据相关的解决方案。


微服务

很多经验丰富的开发人员都认为 Java 是微服务开发的最佳编程语言,Java 本身也在积极支持微服务,例如 2019 年,Jakarta EE 社区的优先级就是支持微服务。


Java 微服务框架也经历了大洗牌,Spring Boot 和 Spring Cloud 进入晚期大众阶段,它们已经成为企业信任的 Java 微服务开发框架。Helidon 和 Microprofile 进入早期采用者阶段,不过 vert.x 可能会因为相对利基的市场无法跨过早期采用者阶段。


数据库和 Web 服务器

提到 Java 在数据库方面的使用场景,相信很多人都会想到目前比较流行的 NoSQL 数据库 Cassandra 和 MongoDB。而在 Web 服务器方面,Tomcat 和 Apache 也绝对是领导者的角色。


国外开发者如何看待 Java 的发展趋势

从上文中我们可以看到,时至今日,Java 仍然在众多使用场景中占据着举足轻重的位置。那么,Java 未来将如何发展呢?我们搜集了一些国外开发者对 Java 的趋势判断,以及他们认为现阶段需要掌握的 Java 相关技能。


RedMonk 创始人 James Governor


在不久的将来,我们可能会看到 Quarkus(Kubernetes Native Java 框架)等 Java 框架及其相关技术会越来越受到关注。例如,它可能是 Vert .x,因为 Java 正在积极响应和参与容器革命。


Java Champion,JavaOne Rockstar Consultant Adam Bien


有一个现象有点让我惊讶,那就是与 Spring 相比,Spring Boot 的受欢迎程度居然较低。另外,JPA (Java Persistence API),Java EE API 之一,被列为独立项目,加上对 SQL 技能的强烈需求,都表明了 Java 市场对关系数据库的持续兴趣。


另外,Maven 作为领先的构建工具,市场体现出了对 Maven 技能的强烈需求,而 Apache Kafka 虽然非常流行,但是并不是适用于所有项目的通用架构,所以市场需求反响不是很强烈。


作为一名 Java EE 开发人员,如果想要在市场中具备强劲的竞争力,那么他需要掌握以下技能,JPA、SQL、JMS (Kafka 也是一种 JMS 实现)、JAX-RS (REST)、Maven (Java EE 中的缺省值)、Git(事实上的标准)。


Netflix 的高级软件工程师 Alex Borysov


如今,Spring 框架和微服务体系结构实际上已经成为 Java 世界中的标准。但是,不断发展的行业要求软件工程师在掌握现有 Java 技能的基础上,还要开发新的 Java 技能。Service Mesh 和 service proxy 正在改变微服务的开发方式,所以 Java 程序员也要积极学习 Istio、Linkerd2 或 Envoy。另外,随着越来越多的公司转向公有云和混合云,拥有亚马逊 AWS、谷歌云平台或微软 Azure 的经验非常重要。


Java 领域中,反应式编程处于上升趋势,虽然我认为它不会取代传统的命令式编程,但是我们需要了解什么是反应式编程,反应式编程如何改变 Java 生态,以及一些反应式框架,例如 Project Reactor、RxJava、Spring WebFlux 等。


在数据存储方面,NoSQL 和多语言持久性是当今工程师必备的 Java 技能。NewSQL 的发展同样值得期待,例如 Google Spanner 就是作为服务在生产环境中应用的一个最佳案例。


Java Champion,Sebastian Daschner


在企业 Java 项目中,我已经不太看得到 SOA 的需求,而 Spring 和 Spring Boot 在实际应用中经常同时使用,所以这时探究两者的区别就不是特别有意义了。另外,我看到大家对各种云原生技术的兴趣越来越大,如果这种趋势继续发展下去,相信未来几年,Java 也会变得更加有趣。


除了以上开发者,InfoQ 首席编辑 Charles Humble 也针对 Java 的未来发展趋势发表了自己的看法,他认为:


  • Java 模块化系统采用也是一个很有趣的话题。我敢肯定 OSGI 拥护者对于将它放在创新者阶段会有意见,但这样做可能是对的。

  • 我想可以将 Clojure 移到晚期大众阶段。当然,人们还在用它,但我感觉到它的使用量在下降,而且它本身面向的就是利基市场。

  • 我会将 Ceylon 移掉。它一直以来都没有获得太多关注,而且我不认为进入 Eclipse 会给它带来多大帮助。这个项目的活跃度很低,过去 6 个月只有 10 个代码提交。

  • 测试框架的趋势看起来相当稳定。我们要把它移掉吗?从采用率来看,我给它们排个顺序:JUnit、TestNG/Cucumber、Spock,但似乎变化不大?

  • SmartBear 最近收购了 Cucumber,可能会促进它的发展,但即使是这样,我仍然倾向于把它们移掉。

  • 人们似乎对 JVM 上的 Node 不感兴趣?我想可以把它移掉。

  • 我很想把 Kotlin 移到早期大众阶段,它是我近来最经常听到的一门 JVM 编程语言,这要得益于 Android 开发的流行。可以说,它已经越过了鸿沟,但仍然落后于其他编程语言,比如 Groovy、Swift 或 Go 语言。

  • 我觉得 Scala 可以留在晚期大众阶段,人们会逐步弃用它。


针对不同版本的 Java,Charles Humble 认为:“ Java 8 仍然处在晚期大众阶段,Java 11 在早期采用者阶段,Java 11 在创新者阶段。”


参考链接:


https://cvcompiler.com/blog/what-java-skills-do-you-need-to-boost-your-developer-career-in-2019/?hackernews


2019 年 8 月 06 日 15:225197
用户头像
田晓旭 InfoQ 编辑

发布了 491 篇内容, 共 227.7 次阅读, 收获喜欢 1567 次。

关注

评论

发布
暂无评论
发现更多内容

是我太菜,美团四面+蚂蚁金服四面全部凉凉,太难了!!!

Java成神之路

Java 程序员 架构 面试 编程语言

阿里Java性能优化最佳实践指南全新发布!(编程、多线程、JVM、设计模式、数据库优化全都有)

程序员小毕

Java 面试 性能优化 JVM 数据库调优

为什么这么一道iOS小题目,这么多面试者搞不定?

Geek_24a3d9

面试题 技术交流 面试官 ios开发

数学,离一个程序员有多近?

小傅哥

程序员数学 谷歌公司数学面试题

七面阿里成功offer,入职就是25k*16薪,还原我的大厂面经

云流

Java 程序员 面试

我国首个自主可控区块链软硬件技术体系发布

CECBC区块链专委会

区块链

深扒!用6部分讲完Java性能调优:多线程+设计模式+数据库

996小迁

数据库 JVM 设计模式 多线程 性能调优

2年5个月13天,从外包到拿下阿里offer,没想到屌丝也能有今天

周老师

Java 编程 程序员 架构 面试

Flink + Iceberg 全场景实时数仓的建设实践

Apache Flink

flink

「产品经理训练营」第三章作业

Sòrγy_じò ぴé

产品经理训练营 极客大学产品经理训练营 产品训练营

IntelliJ IDEA 20周岁啦,为期2天的周年庆活动对开发者免费开放

YourBatman

eclipse ide IDEA IntelliJ IDEA

DjangoRestFramework框架简介及基本使用

行者AI

RESTful

推荐给所有程序员!这份“Netty最强宝典”你不服不行(实战+权威指南+项目+面试题库)

Java成神之路

Java 程序员 架构 面试 编程语言

Android JNI模板与读取系统属性笔记

Changing Lin

android

程序员必知的几种限流方案

Java架构师迁哥

“删库跑路”,这背后的数据安全你悟到了吗?

CloudQuery社区

数据库 大数据 数据安全 数据库管理工具 删库

Spring Security 实战干货:分布式对象SharedObject

云流

Java spring 分布式

Elastic开源协议改了,用户怎么办?

星环科技

技术资讯 | 百度智能云拿下MTCS最高安全评级

百度开发者中心

行业资讯

【Mysql-InnoDB 系列】幻读、死锁与事务调度

程序员架构进阶

MySQL 架构 innodb 事务 28天写作

首发10万字Mysql实战文档,几乎涵盖你需要的所有操作|超清PDF

Crud的程序员

MySQL 数据库

try-catch-finally中的4个大坑,不小心就栽进去了!

王磊

Java 异常处理 try finally

个人信息严控的时代,AI如何实现“安全”的智能营销?

星环科技

大数据

IDEA Malformed argument has embedded quote

会飞的猪

IDEA

产业区块链蓬勃发展 联盟链成为落地应用最大杀器

CECBC区块链专委会

区块链

android开发面试准备!Android高级工程师进阶学习,已开源

欢喜学安卓

android 程序员 面试 移动开发

安卓驱动开发!系统盘点Android开发者必须掌握的知识点,搞懂这些直接来阿里入职

欢喜学安卓

android 程序员 面试 移动开发

十年运维经验总结出的智能运维系统落地方案

小术晓术

人工智能 运维 企业信息化 运维自动化 信息化

百度信息流和搜索业务中的弹性近线计算探索与应用 | 文末送福利

百度Geek说

Java 前端工程 算法工程师 技术宅

Maintainer 聚光灯:KubeEdge 和 Volcano 的王泽锋

华为云原生团队

开源 边缘计算 开源项目 华为云 批量计算

京东资深架构师推荐学习6本实战文档:多线程+Redis+Nginx+MySQL+JVM....

Java成神之路

Java 程序员 架构 面试 编程语言

「中国技术开放日·长沙站」现场直播

「中国技术开放日·长沙站」现场直播

开发者如何看Java发展趋势?-InfoQ