原副标题:谷歌全力以赴亲吻 Java !
译者 | 苏宓
子公司出品 | CSDN(ID:CSDNnews)
尽管始终年来,谷歌的许多商品在许多微观都有采用 Java 词汇,但日前其官方网站上的一篇「Microsoft is committed to the success of Java developers」(谷歌致力 Java 合作开发者的获得成功)的报告书正式宣布前奏了谷歌全面性亲吻 Java 的前奏。
为此,他们也不由得疑惑,继构筑 C#、.NET、Type、Visual BASIC、J 等词汇以外,谷歌为什么要德博瓦桑县地再去深入细致 Java?在责任编辑中,他们将从近几年谷歌的诸多足印中追寻其原因。
谷歌对 Java 的新一代姿势
在这篇报告书中,谷歌合作开发者部副总裁潘正磊(Julia Liuson)则表示,“做为一间子公司,他们致力使 Java 合作开发者尽量地高效率和良种。而此允诺意味著合作开发者能在任何人作业系统上采用任何人辅助工具、架构和应用服务器。”
有鉴于此,谷歌面世了两个专门针对特别针对 Java 大部份有关文本的新中文网站(developer.microsoft.com/java),该中文网站提供更多了谷歌 Java 云合作开发项目组的新一代文本和控制技术文件格式、辅助工具、天然资源、讲义、音频和标识符实例。
除此以外,谷歌也在辅助工具路径减少了对 Java 的众多全力支持,当中,在新版本的VS Code 中增添了更多 Spring 有关的新功能预览, 例如:
一是,减少了查阅动态民主化中的 Spring Bean 特性。ApplicationContext 和调用 .getBeanDefinitionNames 才能得到同样的结果。比如说:
System.out.println(Arrays.asList(applicationContext.getBeanDefinitionNames);在添加了而此功能之后,VS Code 可以展现 Bean 的特性信息,即它们是否是 Singleton、prototype 等,同时还可以用“defined”来标记自己的 Bean,以保持事情的条理性。
其二,更好的 Spring 入门体验。通过让 IDE 自动加载 Initializr 的 HELP.md 文件,为采用 Spring Initializr 初始化的项目提供更多了更好的启动体验。事实上,HELP.md 包含了有用的信息,但过去大部分合作开发者都忽略了它的存在,如今随着而此功能的改进,方便合作开发者上手。
其三,Java Project Explorer 集成了 Maven 和 Gradle有点像 Intellij,谷歌加强了 VS Code,使其更容易访问最频繁的构筑操作,如访问访问 POM 或调用 Maven。
与此同时,谷歌并没有把对 Java 和 Spring 的全力支持局限于 VSCode,它还加强了对 Intellij 和 Azure 的全力支持。
谷歌与 Java 的爱恨情仇
当然,以上仅是谷歌近段时间为扩建自己的 Java 生态版图所做的一些工作。其实, 谷歌对拿下 Java 合作开发者的“野心”也非一两天之间才有的。
如果说曾经依靠 Windows 构筑起生态帝国的谷歌不可一世,从藐视开源、嫌弃 Linux,再到开源、数字化浪潮下的“谷歌爱 Linux”并稳居开源贡献榜单的 Top 之列,那么,它对 Java 的态度也有这样的两个转变过程。
在 Java 诞生的第二年,一群有敏锐的前瞻意识的人发现了这门词汇的潜力,当中就包括了来自谷歌的专家们。时任谷歌 CEO 的比尔·盖茨也曾评价道,“Java 是很长时间年来最优秀的程序设计词汇。”
在此趋势之下,谷歌在 1996 年 3 月与还没有被 Oracle 收购的 SunMicrosystems 签订了一份 Java 许可协议。可以说,谷歌应用 Java 的而此举措也极大地推动了 Java 自身的普及与发展。不过,好景并不长。
在 1996 年 9 月的某一天,谷歌浏览器部门主管向时任谷歌 CEO 的比尔·盖茨详细 解释了 Java 给谷歌增添的威胁 ,并恳切提醒道:“Java 绝不仅仅是一种词汇,它是 COM 的替代者(COM 即 Componet Object Model,在 Windows 中大量采用的编程模型)!”
随即,比尔·盖茨给当时身为谷歌 CTO 的 Nathan Myhrvold 发了一封主题为“Java 运行时成为作业系统”的邮件,并则表示“我很担心 Java/Javabean 和其运行时到底会发展成怎样、会让多少人兴奋。我真的在这个问题上失眠了,因为随着转向更多基于服务器的应用程序,似乎会让人们易于采用他们竞争对手的作业系统。”
为了降低这样的焦虑,谷歌研发了一款 Java 集成合作开发环境,采用的词汇是 J++。一定程度上可以将 J++ 视为是 Java 的两个变种,其语法、关键字等都与 Java 有异曲同工之处。
这样有些“擦边球”的行为,引发了 Sun 子公司的注意。于是,1997 年 11 月,Sun 子公司以违反合同为由对谷歌提起诉讼,指控谷歌分发了与 Sun 不兼容的 Java 版本。Sun 于 1998 年 5 月修改了其诉讼书,添加了不正当竞争和侵犯版权的指控。
彼时 Sun 在法庭上辩称,谷歌将 Java 的“一次编写,随处运行”功能视为对 Windows 的威胁,因为 Java 降低了软件合作开发者为谷歌作业系统编写程序的动力。据 Sun 子公司称,谷歌发布的 Java 版本与其 Windows 软件配合得更好。Sun 的律师则表示,这样的举动威胁到 Java 提供更多跨平台合作开发环境的能力。
谷歌强烈否认有任何人不当行为,并坚称它坚持与 Sun 签订的许可协议。该子公司辩称,谷歌对 Java 所做的任何人更改都只是允许合作开发者利用 Windows 特有的功能。
历经三年之后,在 2001 年 1 月,两家达成和解,最终以谷歌同意向 Sun Microsystems 支付 2000 万美元,并且永久禁止在其商品上采用“Java 兼容”商标。不过,此时的谷歌还可以继续提供更多采用 Sun 合作开发的 Java 控制技术的现有商品,但而此场官司也让谷歌有了其他的想法。
在而此年的 7 月,谷歌宣布开始在 Windows XP 系统中不再全力支持 Sun 的 JVM,从而扶持自家的 .NET 平台,与 Java 分庭抗礼。
为什么此时要对 Java 展开攻势?
那要问谷歌为什么要在时下再次亲吻 Java,根据谷歌官方的解释是,「如今,越来越多的 Java 合作开发者正在考虑如何将现有的 Java 应用程序迁移到云中,或者如何构筑新的云原生应用程序。他们始终在努力让您更轻松地采用您喜欢的辅助工具和架构将 Java 应用程序迁移到云中。然后,您可以采用您已经了解和信任的相同应用程序服务器和开源控制技术轻松部署和扩展。」
多年来,Java 已经积累了庞大的合作开发者群体,且有数以万计的设备采用 Java。在云时代下,谷歌在商品研发过程中也添加了对 Java 的高度全力支持。
除了在上文提到了的 VS Code 以外,谷歌在 Intellij IDEA、GitHub、Playwright、Apache Maven、Gradle 等辅助工具方面,和在某些商品上都有 Java 的身影。
如谷歌在搜索引擎 Bing 中的全力支持 Windows 开始菜单中的搜索功能,便是采用 Java 来执行与索引有关的功能,同时 Bing 横跨 50,000 多台服务器上有数十万个 JVM。
在 2019 年 8 月,谷歌收购了一间主营业务是 Java 性能优化的子公司——jClarity。2021 年,时间点有些巧合的是,彼时 4 月 5 日,美国最高法院在 Google 与 Oracle 之间关于在 Android 采用 Java 的诉讼案中,最终判定 Google 合作开发 Android 采用的 Java API 标识符合理。次日,与此事没有任何人关系的科技巨头谷歌便面世了自家的 JDK 项目 Microsoft Build of OpenJDK 版本。
microsoft.pdf?v={1/string}
整体而言,谷歌此举一方面是想要在 Java 的市场中站稳脚跟,另一方面根据官方发布的 Java 演进图显示,谷歌在 自己的基础设施中大量采用 Java,特别是它的 Azure 生态系统(Azure Spring Cloud、Azure App Service、Azure Functions、Azure Kubernetes),有鉴于此它需要有自己的统一和通用的构筑方式。
再者,正如 i-programmer 评价道,“谷歌此举还有将 Azure 推给 Java 合作开发者的宣传动机,谷歌试图引诱他们,甚至通过提供更多免费课程帮助他们迁移他们的应用程序。”
不过,归根究底,对合作开发者而言,也是两个不错的消息。
参考资料:
https://www.i-programmer.info/news/80-java/15701-microsoft-goes-all-out-on-java.html
☞ Node 之父斥责 Oracle:你们也不用,那请交出 Java 商标!
☞ 加码云原生,斩获 19000 Star 的开源国产数据库又上新
☞ Java 后端合作开发者必须跨的 10 道门槛!