作者|苏米\制作|CSDN(ID:CSDNnews)虽然微软的很多产品在很多层面上已经很长时间使用了Java语言,但最近在其官网的一篇文章《MicrosoftiscommittedtothesuccessofJavadevelopers》(MicrosoftiscommittedtothesuccessofJavadevelopers)公告正式吹响了微软全面拥抱Java的号角。对此,我们不禁疑惑,在构建了C#、.NET、TypeScript、VisualBASIC、JScript等语言之后,微软为何还要不遗余力地深入Java?在本文中,我们将从微软近年来的各种足迹中探寻原因。1.微软对Java的最新行动微软开发部门总裁JuliaLiuson在此次公告中表示,“作为一家公司,我们致力于让Java开发人员尽可能高效和多产。这一承诺意味着开发人员可以使用任何工具,任何操作系统上的框架和应用程序服务器。”为此,微软推出了一个新网站(developer.microsoft.com/java),专门介绍Java的一切,提供微软Java云开发团队的最新内容以及技术文档、工具、资源、教程、视频,和代码示例。此外,微软在工具方向也加入了很多对Java的支持,其中新版VSCode带来了更多Spring相关的新特性更新,比如:首先,增加了查看实时进度的能力SpringBean属性。如果没有IDE支持,开发人员将不得不编写代码来获取ApplicationContext并调用.getBeanDefinitionNames()以获得相同的结果。例如:System.out.println(Arrays.asList(applicationContext.getBeanDefinitionNames());加上这个函数后,VSCode可以显示Bean的属性信息,即是否是Singleton,prototype等,也可以用“defined”来标记自己的Bean,用来保留东西二是更好的Spring入门体验。通过让IDE自动加载Initializr的HELP.md文件,为使用SpringInitializr初始化的项目提供更好的启动体验。其实HELP.md里面包含了有用的信息,只是以往大部分开发者都忽略了它的存在,现在随着这个功能的完善,可以方便开发者上手。推荐一个开源免费的SpringBoot最全教程:https://github.com/javastacks/spring-boot-best-practice三、JavaProjectExplorer集成了Maven和Gradle,有点像Intellij。微软加强了VSCode,使访问POM或调用Maven等最频繁的构建操作变得更容易。同时,微软并没有将对Java和Spring的支持仅限于VSCode,还加强了对Intellij和Azure的支持。2、微软与Java的爱恨情仇当然,以上只是微软近期为拓展自身Java生态版图所做的部分工作。事实上,微软争取Java开发者的“野心”可不是一两天的事。如果说,曾经依靠Windows打造生态帝国的微软立于不败之地,从鄙视开源、厌恶Linux,到开源和数字化浪潮下的“微软爱Linux”,稳居榜首的开源贡献榜,那么对Java的态度影响很大,也有这样一个转变过程。在Java诞生的第二年,这门语言的潜力被一群敏锐的前瞻性人士发现,其中包括来自微软的专家。时任微软CEO的比尔·盖茨也评价说,“Java是很长一段时间以来最好的编程语言”。在此趋势下,微软与未被甲骨文收购的SunMicrosystems于1996年3月签署了Java许可协议。可以说,微软此次应用Java的举动,也极大地促进了Java本身的普及和发展。然而,好景不长。1996年9月的某一天,微软浏览器部门的负责人向时任微软CEO的比尔·盖茨详细解释了Java对微软的威胁,并语重心长地提醒:“Java不仅仅是一种语言,它是COM的替代品(COM即ComponetObjectModel,Windows广泛使用的编程模型)!随即,比尔·盖茨给时任微软CTO的NathanMyhrvold发了一封邮件,主题是“JavaRuntimeBecomesOperatingSystem”,并说“我很担心Java/Javabeans和运行时会变成什么样子,会有多少人兴奋关于。我真的为此失眠了,因为随着我们转向更多基于服务器的应用程序,它似乎让人们更容易使用我们竞争对手的操作系统。”为了减少这种焦虑,微软开发了一个Java集成开发环境,使用的语言是J++。J++在一定程度上可以看作是Java的一个变种,其语法、关键字等都与Java相似。这种“擦边球”的行为引起了孙某的重视。于是,1997年11月,Sun以违约为由对微软提起诉讼,指控微软分发了与Sun不兼容的Java版本。Sun于1998年5月修改了诉讼,增加了不正当竞争和侵犯版权的指控。当时,Sun在法庭上辩称,微软将Java的“一次编写,随处运行”特性视为对Windows的威胁,因为Java降低了软件开发人员为微软操作系统编写程序的积极性。根据Sun的说法,Microsoft发布了一个Java版本,可以更好地与其Windows软件配合使用。Sun的律师说,这样的举动威胁到Java提供跨平台开发环境的能力。微软坚决否认有任何不当行为,并坚称它遵守与Sun的许可协议。该公司争辩说,微软对Java所做的任何更改只会让开发人员利用Windows特定的功能。三年后,即2001年1月,两家公司达成和解,最终微软同意向SunMicrosystems支付2000万美元,并永久禁止在其产品上使用“Java兼容”商标。不过此时微软可以继续提供现有的使用Sun开发的Java技术的产品,不过这场官司也让微软有了另外的想法。今年7月,微软宣布在WindowsXP系统中不再支持Sun的JVM,从而支持自家的.NET平台,与Java展开竞争。3、为什么此时出现了对Java的攻势?然后问为什么微软现在又要拥抱Java了。根据微软官方的解释,“今天,越来越多的Java开发者正在考虑如何将现有的Java应用程序迁移到云端,或者如何构建新的应用程序。云原生应用程序。我们一直在努力使您能够更轻松地使用自己喜欢的工具和框架将Java应用程序迁移到云中。然后,您可以使用您已经了解和信任的相同应用程序服务器和开源技术以及扩展轻松地进行部署。”多年来,Java已经积累了庞大的开发人员基础,并被数以万计的设备所使用。在云时代,微软在产品研发过程中也加入了对Java的高度支持。最新Java教程:https://www.javastack.cn/java/除了上面提到的VSCode,微软还有IntellijIDEA、GitHub、Playwright、ApacheMaven、Gradle等工具,还有一些产品有Java数字就可以了。例如,微软在搜索引擎Bing中支持Windows开始菜单中的搜索功能,它使用Java来执行与索引相关的功能,而Bing在50,000多台服务器上拥有数十万个JVM。2019年8月,微软收购了jClarity,一家主营业务为Java性能优化的公司。2021年,时机有些巧合。当时,4月5日,美国最高法院在谷歌与甲骨文关于在Android中使用Java的诉讼中,最终裁定谷歌用于开发Android的JavaAPI代码是合理的。次日,与此事无关的科技巨头微软推出了自己的JDK项目版本,即MicrosoftBuildofOpenJDK。来源:https://cdn.graph.office.net/...综合来看,微软此举是为了在Java市场站稳脚跟。另一方面,根据官方的Java演进图,微软在自己的基础设施中大量使用Java,尤其是Azure生态系统(AzureSpringCloud、AzureAppService、AzureFunctions、AzureKubernetes),需要有自己统一的、常用的构建方式。此外,正如i-programmer评论的那样,“微软此举还有一个宣传动机,就是将Azure推向Java开发者。微软正试图吸引他们,甚至通过提供免费课程来帮助他们迁移应用程序。”不过,归根结底,这对开发者来说也是一个好消息。参考资料:\https://www.infoworld.com/art...\https://www.i-programmer.info...推荐近期文章:1.1,000+Java面试题及答案(2022最新版)2.劲爆!Java协程来了。..3.SpringBoot2.x教程,太全面了!4.不要用爆破爆满画面,试试装饰者模式,这才是优雅的方式!!5.《Java开发手册(嵩山版)》最新发布,赶快下载吧!感觉不错,别忘了点赞+转发!
