美国上市公司,专注Java培训21年

开发者如何看Java发展趋势


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

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

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

一、用于Web编程

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

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

二、数据处理

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

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

三、微服务

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

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

四、数据库和Web服务器

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

开发者如何看Java发展趋势

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

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

一、RedMonk创始人JamesGovernor

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

二、JavaChampion,JavaOneRockstarConsultantAdamBien

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

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

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

三、Netflix的高级软件工程师AlexBorysov

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

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

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

四、JavaChampion,SebastianDaschner

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

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

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

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

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

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

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

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

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

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

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

免责声明:内容来源于网络,若涉及侵权联系尽快删除!


【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,如涉及作品内容、版权和其它问题,请在30日内与我们联系,我们会予以重改或删除相关文章,以保证您的权益!

Java开发高端课程免费试学

大咖讲师+项目实战全面提升你的职场竞争力

  • 海量实战教程
  • 1V1答疑解惑
  • 行业动态分析
  • 大神学习路径图

相关推荐

更多
  • Java高级工程师岗位要求
    Java高级工程师岗位要求
    Java高级工程师岗位要求,Java高级工程师是企业中非常关键的技术岗位,主要负责软件的设计、开发、测试和维护工作。具体岗位要求可能因企业的规模、行业、产品和技术栈的不同而有所差异,但通常包括以下几个方面: 详情>>

    2024-03-05

  • 面试Java开发工程师一般问什么问题?
    面试Java开发工程师一般问什么问题?
    面试Java开发工程师一般问什么问题?面试Java开发工程师时,面试官通常会从多个角度评估应聘者的技能和经验,包括基础知识、编程能力、项目经验、问题解决能力、沟通能力以及对Java技术的理解。以下是一些常见的面试问题: 详情>>

    2024-02-29

  • 如何用Java开发游戏?
    如何用Java开发游戏?
    如何用Java开发游戏?使用Java开发游戏可以分为几个步骤,下面是一些基础的指导: 详情>>

    2024-02-29

  • Java编程的工作怎么样?
    Java编程的工作怎么样?
    Java编程的工作怎么样?Java编程的工作在软件开发领域是非常广泛和需求的。以下是关于Java编程工作的一些信息: 详情>>

    2024-02-23

  • Java开班时间

    收起