infoq_Java InfoQ趋势报告-2019年7月

infoq

重要要点

  • 在我们的Java和JVM趋势图中,即将推出的Java 13(非LTS)和最近发布的Java 12(非LTS)已被添加到采用创新的阶段。
  • Java 11(LTS版本)已移至早期采用者(EA),而Java 8(已于2019年1月被标记为商业用途的报废)已移至多数(LM)。
  • 随着OpenJ9迁移到EA,非热点JVM的采用率不断提高,并且在我们的采用率图表中增加了Graal。 我们认为,云计算的日益普及和重要性正在推动组织利用Java运行时环境(JRE),这些环境包含“云原生”原则,例如快速启动时间和低内存占用。
  • 对于常规开发人员而言,Graal本身可能并不太有趣,但是将Java应用程序编译为本地二进制文件的能力以及多语种语言的支持,确保了我们对该项目保持密切关注。
  • Java微服务框架已经出现了洗牌,Spring Boot和Spring Cloud进入了后期,因为它们是在企业内部创建Java微服务的可靠选择。 Helidon已加入EA内的Microprofile,并且我们认为vert.x不会超越EA阶段,因为它具有相对较小的吸引力。

infoq_Java InfoQ趋势报告-2019年7月本文提供了有关InfoQ编辑团队当前如何看待Java领域内技术的采用和新兴趋势的摘要,该摘要不仅关注Java语言,还关注Kotlin和Scala,Java虚拟机(JVM)等相关语言,以及基于Java的框架和实用程序。 我们讨论了核心Java的趋势,例如Java 11和12的采用,以及基于Web的框架(如Spring Boot和MicroProfile)的演变。

本报告旨在帮助技术领导者制定中长期技术投资决策,并帮助个人开发人员选择将宝贵的时间和资源用于学习和技能开发的地方。 这是我们首次发布的Java趋势报告,尽管自2006年InfoQ推出以来,该主题已经得到了广泛的报道,而且我们多年来一直在内部跟踪Java和JVM的趋势。

InfoQ和QCon都专注于我们认为属于“创新者,早期采用者和早期多数阶段”的主题。 我们试图做的事情就是找出适合杰弗里·摩尔(Geoffrey Moore) 所谓的早期市场的想法,在该市场中,“客户群是由技术发烧友和有远见的人组成的,他们渴望抢先机遇或迫在眉睫的问题”。 我们也在寻找可能会“跨越鸿沟”而被广泛采用的想法。 在这种情况下,也许值得一说的是,技术在采用曲线上的确切位置可能会有所不同。 例如,此时Java 11可能在旧金山湾区公司中被广泛采用,但在其他地方可能不那么被广泛采用。

自从我们减少了2018年内部Java趋势报告以来的显着变化是,在采用的创新阶段增加了Java 13(非LTS版本)。 这导致了Java版本沿着采用曲线移动的级联效应,Java 11(LTS版本)移至了早期采用者(EA),而Java 8(现已正式标记为报废,获得了来自以下方面的商业支持)Oracle(Oracle)。

我们看到越来越多的非Hotspot JVM被采用,我们相信OpenJ9现在处于早期采用者阶段,并且我们还将Graal引入了图表。 我们认为,在所有类型的组织中越来越多地采用云技术正在推动对JRE的需求,这些JRE包含相关的“云原生”原则,例如启动时间短,内存占用少。 Graal本身可能并不过分有趣,但是将Java应用程序编译为本地二进制文件的能力以及多语种语言的支持,确保了我们对该项目保持密切关注。

Java微服务框架已经出现了洗牌,Spring Boot和Spring Cloud进入了后期。 值得记住的是,这意味着采用率正在放缓(由于市场饱和),而不是表示开发人员正在远离框架。 Helidon已加入EA内的MicroProfile,我们认为vert.x不会超越EA阶段,因为相对利基的吸引力。

对于上下文,这是我们的内部主题图在2018年下半年的样子。2019年版本位于文章的顶部。

infoq_Java InfoQ趋势报告-2019年7月

Java 2018

以下是几个InfoQ Java编辑器之间相应的内部电子邮件对话的轻松编辑和汇总的摘要,它为我们建议的采用图表提供了更多上下文。

独立技术顾问,Datawire产品架构师和InfoQ新闻经理Daniel Bryant

因此,该更新Java趋势图了! 我热衷于探讨我们内部2018跟踪器中的所有主题是否位于正确的采用阶段,并且还确定要删除或添加的任何主题。

对于十个人的入门者,我建议更改创新者:

  • Java 11-> Java 12/13
  • 将OpenJ9移至早期采用者(EA)
  • 添加采用模块化
  • 添加Quarkus

在EA中:

  • 将Spock移至后期采用者(LA)
  • 除了Lagom和MicroProfile,将微服务框架移至LA吗?
  • 添加Helidon

我很高兴看到后期采用和落后阶段保持不变。

Erik Costlow ,软件架构师,专注于安全性和Java:

这是我的看法:

  • 将Java 8移至落后者。 它于2014年发布,Oracle终止了公共支持。
  • 我认为LTS Java(JDK11)仍是早期采用者
  • 非LTS(JDK 13?)是创新者,可以旋转任何电流。
  • 感恩本身并不是关键。 人们真的想要两件事:
    • 静态编译的本机Java应用程序(native_image)
    • 多语言Java(例如Ruby Truffle)
    • 如果Graal native_image是Java,或者其他供应商是否可以对静态编译使用相同的封闭世界假设,则存在一个悬而未决的问题。 问题是native_image没有通过TCK。 关键问题是是否允许其他JVM供应商执行此操作,或者如果这样做,会发生什么情况?
  • Graal和OpenJ9应该只成为非Hotspot JVM,因为我们有Excelsior,Azul,Liberica,Corretto,Alibaba Dragon,AdoptOpenJDK,RedHat等。
  • JVM上的节点已死。
  • 将测试框架移至早期多数
  • 将Spring Boot移入多数后期,否则我会看到很多,这是一个安全的选择。
  • 添加“将Java EE迁移到Jakarta EE”作为创新者。 这将很有趣,我希望它会有所发展。

目前,Java发行版和发行版过多。 我希望看到一个创新者谈论有关大规模管理此问题的内容,或者人们如何真正做到这一点以在团队,系统以及其他一些应用程序或服务发生变化而其他应用程序或服务没有变化的事物之间进行操作。 如果应用程序是本机编译的,谁负责打补丁“ JRE”,这是什么意思?

Dustin Schultz ,首席软件工程师,Pluralsight的作者,以及技术推广者:

对您对创新者的所有建议+1(技术上Quarkus是vert.x和MicroProfile,但我同意这是创新者。)

就个人而言,我认为Spock从未(或将永远)超越EA。 我还没有看到大量的采用。

我将从EA中删除除Vertx之外的所有其他微服务框架...可能会离开Lagom。 不确定这两者是否都能通过。

Groovy相当平稳,可能值得将Groovy移至多数,并且可能会下降。

InfoQ的总编辑Charles Humble

同意大部分。 “采用模块化”很有趣。 我敢肯定,OSGI人士对于将其纳入创新者还有话要说,但实际上这可能是正确的。

我认为我们应该将Clojure移至多数席位。 当然,它仍然被使用,但是我感觉它的使用量正在下降,而且它一直是相当利基的。

我将删除锡兰。 它从来没有受到太大的吸引,而且我认为迁移到Eclipse并没有太大帮助。 据我所知,该项目上几乎没有活动- 在过去6个月中大约有10次提交

在目前的测试框架中,有了测试框架,我的情况还是相当稳定的。 我们应该放弃它吗? 我大致按顺序排列:Junit,TestNG / Cucumber,最后是Spock,在使用/采用方面,但我认为它的变化不大吗?

SmartBear最近收购了Cucumber ,这可能会有所助益 ,但即使如此,我还是倾向于放弃跟踪这些。

JVM上的节点是否引起很多兴趣? 我认为我会删除它。

我很想将Kotlin转移到早期多数党。 这似乎是我最近听到的最多的JVM语言,这主要归功于我认为它在Android开发中的普及程度,我认为它已经跨越了鸿沟,尽管我认为它落后于Groovy之类的东西,或者例如Swift或Go。

我认为Scala可以留在大多数人的后期-使用率会下降,但是非常缓慢。

我不太确定如何处理Java版本的情况。 我的阅读是,非LTS发行版的采用率非常有限,并且可能全部存在于创新者中,但是当其中的一些版本也是EOL时,这很奇怪。 不过,就图形化而言,我猜Java 8仍占大多数,EA中的Java 11和创新者中的Java 13?

New Relic,Inc . 首席工程师兼JVM技术架构师Ben Evans

完全同意Java的非LTS版本。 我看到的来自生产部署的数据在Java 11部署中稳定且增长了5%以上,因此对我来说感觉像EA。

绝对要移开锡兰-从来没有足够的牵引力,而且午餐基本上是Kotlin吃的。

Java 8应该留在多数列中-它仍在编写大量新服务,并且仍然存在与* any *后8版本不兼容的主要库(例如Cassandra)。 我们还没有看到主要的库放弃Java 8支持(我相信ElasticSearch将是第一个)。

关于作者

infoq_Java InfoQ趋势报告-2019年7月Ben Evans是JVM性能优化公司jClarity的联合创始人。 他是LJC(伦敦的JUG)的组织者和JCP执行委员会的成员,帮助定义Java生态系统的标准。 Ben是Java冠军; 3次JavaOne Rockstar扬声器; 他是《全面开发Java开发人员》,《简而言之Java》和《优化Java》新版的作者。他是Java平台,性能,体系结构,并发性,启动和相关主题的定期发言人。 Ben有时可以进行口语,教学,写作和咨询服务-请联系以获取详细信息。

Erik Costlow是一位具有丰富Java经验的软件安全专家。 他负责管理Contrast Security和Public Community Edition的开发人员关系。 对比将传感器编织到应用程序中,使它们能够根据应用程序如何使用其数据来检测安全威胁。 Erik是Oracle的首席产品经理,专注于Java 8的安全性,在受到黑客攻击的高度加入,并在两年没有出现零日漏洞之后退出。 在此期间,他在公司/商业和社区级别学习了Java的详细信息。 他还协助Turbonomic的产品管理团队在数据中心/云性能自动化方面实现了1亿美元的年收入。 Erik还负责Fortify静态代码分析器的产品管理,该工具可帮助开发人员查找和修复自定义源代码中的漏洞。 Erik还通过Packt Publishing发布了一些有关数据分析,统计和密码学的开发人员课程。

infoq_Java InfoQ趋势报告-2019年7月Dustin Schultz是首席软件工程师,是Pluralsight的作者,也是核心的技术传播者。 他拥有计算机科学学士学位和硕士学位,并且从事软件开发已有15年以上。 达斯汀(Dustin)热爱技术,您经常会发现他喜欢最新技术。 他还喜欢学习,并且一直想知道一切如何运作,以至于小时候,他妈妈给他买了一本关于“事情如何运作”的书,因为她已经厌倦了他所有的问题。

于2014年3月接任InfoQ.com的主编,指导我们的内容创建,包括新闻,文章,书籍,视频演示和采访。 在InfoQ担任专职之前,Charles领导Java事务,并担任薪酬研究公司PRPi Consulting的首席技术官,该公司于2012年7月被普华永道(PwC)收购。对于PRPi,他全面负责所有业务的开发。公司内部使用的自定义软件。 他在企业软件领域工作了大约20年,担任过开发人员,架构师和开发经理。 在业余时间里,他写音乐的时候是总部位于伦敦的环境技术乐队Twofish的 1/3,该乐队的首张专辑于2014年2月发行,历经14年与昂贵玩具的纠缠,并花了尽可能多的时间陪伴妻子和妻子。年轻的家庭。

在Datawire担任独立技术顾问和产品架构师。 他的技术专长集中于“ DevOps”工具,云/容器平台和微服务实现。 Daniel是Java冠军,并且为多个开源项目做出了贡献。 他还为InfoQ,O'Reilly和TheNewStack撰写文章,并定期在OSCON,QCon和JavaOne等国际会议上发表演讲。 在他的大量业余时间中,他喜欢跑步,读书和旅行。

翻译自: https://www.infoq.com/articles/java-jvm-trends-2019/?topicPageSponsorship=c1246725-b0a7-43a6-9ef9-68102c8d48e1

infoq