作者 | 言征
出品 | 51CTO技术栈(微信号:blog51cto)
在Java领域,微软气候已成!时至今日,它已经成长为Java巨无霸。
12月5日,微软官方发布了一个里程碑式的消息:Visual Studio Code 已经拥有超过250万开发人员的社区。
250 万是一个相当大的成就。根据WordPress的托管解决方案服务商Kinsta统计,全球的Java开发人员大约有 900 ~ 1000 万。
据微软此前披露的数据,2021年,VS Code的Java开发者数量150万(同时还有 200 万 Python 开发者、 100 多万 C++ 开发者),2022年,Java开发者数量是200万。发展速度可谓相当迅猛。
那么,微软这些年究竟对VS Code做了什么?
一、做大Java,VS Code的三大阶段
1.初始版本,基本齐全
早在7年前,2016年9月,微软就已经向Visual Studio Code市场发布了Java语言支持扩展的初始版本,当时这个版本具备一些通用而有趣的功能列表,比如Maven项目、代码补全、Javadoc 悬停、代码导航、代码参考、高亮等,吸引了一波Java开发者的加入。
图片
此后,微软团队保持着每月1-2次的发布周期。
2.里程碑:Red Hat加入,如虎添翼
2021年,VS Code迎来了一个新的里程碑事件: Language Support for Java™ by Red Hat 的1.0版本发布。RedHat开始进入微软的 Visual Studio Code,并发布了 Java 语言支持计划,为 Java 17 提供了官方支持。
微软开发部门高级项目经理Nick Zhu兴奋地在博客中写到:“我们相信这是Java对Visual Studio Code支持的一个重要里程碑,也是微软、Red Hat以及整个Visual Studio Code和Java社区多年合作的结果。”
图片
众所周知,VS Code对Java的支持来源于扩展 Extension Pack for Java,而Java™by Red Hat的语言支持是Java扩展包的一个基本部分,提供了Java代码编辑、完成、重构和导航等基本组件。
在过去的几年里,微软一直在与Red Hat密切合作,并为Java语言服务器添加新功能。并致力于提高语言服务器的稳定性。
此次1.0的发布,目标是在Visual StudioCode上提供最好的Java开发体验。
除了主要的Java17支持外,微软还基于语言服务器构建了各种Java扩展,并扩展了Visual Studio Code上的Java工具功能,包括项目管理、对Maven/Gradle的构建工具支持以及更好的测试支持。
3.微软发布自己的Java21
进入到2023年,微软继续加码Java,在10月发布了微软自己的Java21LTS版本。
图片
微软 Java 工程组首席 PM 经理Bruno Borges表示:微软版本的 Java 21包括语言和虚拟机规范的更改,包含一系列使Java 21与许多以前版本不同的功能,当中就包括LLM的功能接入。
同时,人们也将此版本看成微软拥抱开源的又一案例。有分析师评论道:“随着 OpenJDK 21 向社区开放,微软可以将其作为自己的 JDK 的一部分自由发布,并提供 21 版必须提供的所有新功能,并受到其自己的长期许可计划的支持。”
二、微软的Java野心未来6个月的路线图
背靠250万Java开发者,微软拥抱Java的力度进入了新阶段。为了纪念这一里程碑,这家软件巨头跟RedHat发布了未来六个月的路线图。
图片
首先在基础开发体验方面,该团队提出了对于Java 21的全面支持、增强的Java代码库导航、新的高级调试功能的几个方面,
除了 JDK 21的全面支持之外,VS Code还将致力于解决可靠性问题——据称,这是 Java 开发者最常提到的问题之一。Nick在博客中表示:“我们希望提高平台的稳定性,以便您可以专注于代码,而不必担心语言服务器故障或崩溃,或代码补齐故障。” 团队的目标是为用户构建稳定一致的编码体验。”
对于兼容性问题,VSCode将致力于改善 Gradle 开发人员体验并优化性能,比如项目导入成功率的问题。值得一提的是,微软刚在11月初宣布了开源项目Build Server for Gradle。Nick称将继续在此项目的基础上进行构建,以确保Visual Studio代码中的构建结果与运行Gradle命令获得的输出一致,这最终将提高可组合性。
增强的代码智能补齐也是一个值得期待的功能。这里,Copilot 终于在博客中出现了:
“在接下来的几个月中,我们将探索如何利用GitHub Copilot Chat来增强 Java 开发体验,无论是查找错误、编写单元测试、帮助调试代码、添加依赖项还是管理 Java 项目。”
图片
博客最后还提到了12月正式可用的Github Copilot Chat。Nick称,开发人员很快将能够与GitHub Copilot和GitHub Copilot Chat集成,以扩展他们的功能。“Visual Studio Code Java也不例外,在接下来的几个月里,我们将探讨如何利用GitHub Copilot Chat来增强您的Java开发体验,无论是发现错误、编写单元测试、帮助调试代码、添加依赖项还是管理Java项目。”
图片
三、Java在微软的进化史
微软与Java的恩怨历史非常有时代色彩,从微软与Sun之间的碰撞,再到如今的坐拥250万之众的Java开发者,我们看到了巨头越来越明显的开源生态取向的转变。不管是Linux还是Java,都表现得非常积极。
图片
2008年开始,微软就开始了对Java的投入,包括搜索引擎Bing和微软云Azure,并后续在2013年,Azure 成为了第一个拥有OenJDK商业支持的云平台。
在纳德拉领导下,Azure进一步加快了开放的步伐,拓展了Eclipse和Intellij的Toolkit支持。并跟VMware建立了伙伴关系,2016年微软还加入了Eclipse基金会。
接下来2019年,微软各种重磅的Java发布:比如Azure Spring Apps、Red Hat JBoss EAP支持,2021年发布 Microsoft Build of OpenJDK,
2022年,微软宣布在内部已经有超过200万JVM在产品上运行,并发布了针对Azure App的Java17支持。
正如微软集团首席工程经理Martijn Verbur所说,“微软对开源生态系统,特别是Java的积极态度,表明了他们帮助开发人员实现更多目标的无限热情。”
四、为什么微软可以做到
从上述Java在微软的进化史就可以看出,微软Bing和Azure的发展,是驱使该公司采纳和拥抱Java的客观原因。
同时,微软还通过与IBM、Oracle、Red Hat和VMware等行业领导者的战略合作伙伴关系对Java生态系统发起“猛攻”,作出了重要的贡献。
当然,最重要的是,这家软件巨头的研发实力始终在线,始终站在科技发展的最前沿,在重新定义Java的迁移、现代化和整体开发体验方面都处于领先地位,比如对PaaS服务、迁移工具的强大支持。再比如,生成式AI时代,微软与OpenAI、Meta、英伟达等多家头部企业的纵横捭阖,成功让Copilot技术向前迈进。
在今年11月的微软Ignite上,微软更是宣布:微软将通过生成式AI和Copilot技术彻底改变Java开发的方式!
五、彩蛋:Java排名跌了
11月,编程TIOBE排名出来了。Java的排名较去年相比,下滑了一名,C++迎头补上。
图片
细心的朋友可能会发现,Java近两年的TIOBE指数一直有下降的趋势。据流行的排行榜统计,Java 的TIOBE 指数从 2020 年的第1名下降到最新迭代的第4名。Python、C 和 C++ 已经跃居其上,而 C# 紧随其后。
图片
但微软并没有放松对于Java的投入,归根结底,还是Java作为编程领域的扛把子,拥有着大量充满热情的开发人员和丰富的开发生态,不能等闲视之。
不过令人吃惊的是,微软对于Java的野心,实现的速度之快,的确值得众多IDE深思。