作为一门长青的编程语言,如何看待Java发展趋势?
作者:互联网
Java 作为一门长青的编程语言,在比较长的发展时间里,时常会有唱衰的声音。但Java一直在不断向前发展,受欢迎程度也一直很高,TIOBE榜单常年保持在Top 2,未来Java将如何发展呢?本文小编搜集了一些国外开发者和相关从业人员的看法。
最Hot的Java应用场景
在纷繁复杂的编程语言中,Java一直是深受开发者和企业欢迎的编程语言。从2001年起,Java在TIOBE榜单中几乎排在首位,偶尔排在第二位。受欢迎程度如此高、使用广泛的编程语言肯定会有一些需要掌握的特定技能。
CVCompiler从AngelList,StackOverflow,LinkedIn等网站收集了300个Java招聘需求,并从这300个招聘需求中统计出了企业想要Java程序员掌握的技能。
除了需要掌握的技能,哪些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相关技能。
一、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在创新者阶段。”
以上就是我整理的国外开发人员对Java发展局势的一些看法,希望对大家入门Java领域有所帮助。随着互联网经济的高速发展,让学习Java编程成为最佳的选择。如果你想学习Java,就抓紧时间吧!
标签:Java,编程语言,框架,编程,长青,移掉,技能 来源: https://blog.csdn.net/xiaoxijing/article/details/99866051