当前位置: 首页 > 科技观察

哪个操作系统适合开发Java应用程序?

时间:2023-03-14 00:44:49 科技观察

Java在Windows、macOS和Linux发行版上运行良好。我在ChronicleSoftware工作,我们的大部分软件都是开源Java库,因此我们不——或者更确切地说,我们不能——要求我们的客户在特定操作系统上运行。听到我们也没有规定我们的员工应该使用哪种操作系统,您可能会感到惊讶。我们让他们使用摩擦最小的那个,他们使用的那个效率最高。当谈到开发Java应用程序的设置时,最重要的选择是集成开发环境(IDE)的选择,而不是操作系统的选择。选择一个好的IDE可以提高您的工作效率,但我们不会强制公司中的每个人都使用相同的IDE。也就是说,在过去8年里,我们聘用的每一位Java开发人员都选择了IntelliJ作为他们的首选IDE:JetBrains一定做对了。在使用IntelliJ之前,我曾经使用Eclipse。大约15年前我加入瑞银投资银行时,我被迫使用IntelliJ。起初,我不太喜欢IntelliJ:一切都没有像我预期的那样进行,感觉就像我的手被砍掉了,因为一切似乎都花了十倍的时间。随着时间的推移,我越来越喜欢它并欣赏它出色的代码重构。在考虑在哪个操作系统上进行开发时,值得考虑目标体系结构的操作系统。在我的公司,我们开发低延迟事件流消息传递软件。该软件被世界各地的许多投资银行和加密货币交易所使用。通常,投资银行在Windows上开发并部署到Linux。另一方面,加密公司通常在macOS上开发。但几乎每个组织都使用Linux进行生产。虽然您的开发操作系统和生产操作系统不必相同,但在选择开发操作系统时考虑您的生产操作系统是个好主意。FreeBSD支持macOS。这不是Linux,而是Unix,所以有一定程度的相似性,尤其是在命令、shell等方面。不过,在幕后,存在相当多的分歧:macOS不提供相同的细粒度控制。如果您打算进行低延迟开发,这会对您产生负面影响。例如,您想控制您的线程固定到哪些内核。对于大多数Java开发人员来说,缺乏细粒度控制通常不是问题,但如果真的很担心,您应该选择Linux。这里的要点是,如果您要将服务器端应用程序部署到Linux,那么选择Linux或macOS作为您的开发环境是有意义的。我过去使用过Ubuntu,但GUI没有macOS提供的集成度和流畅度。macOS以更酷、更漂亮和更好而著称,但它确实具有可以提高您的工作效率的真正好处。在我的公司,大约50%的开发人员使用macOS,50%使用Linux和/或Windows。最近有更多适用于Linux的应用程序,基于Web的应用程序(例如GoogleDocs)在此环境中运行良好,但值得检查一下您计划使用的所有应用程序是否都可以在Linux上运行。或者,您可以使用虚拟化,或者,如果您不必同时运行Windows和Linux应用程序,则可以双引导。Mac并不总是完美的。我的一位同事有一台2019款Intel16"MacBook。他经常要在冰袋上运行它。否则,它会过热。许多非Mac超极本也有这个问题。将热的Intel芯片放在那些薄壳中unibody是一个错误,但苹果现在已经用他们的新硅Mac解决了这个问题。最近,英特尔在其第12代架构中引入的新混合核心模型中改进了散热。AMD的热效率高于英特尔,但英特尔和英特尔都不是是。就每瓦性能而言,AMD目前可以与ARM或Apple竞争。无论开发环境如何,归根结底,软件需要在给定的目标操作系统上运行。开源Java库可以帮助抽象平台差异,为跨不同开发和目标操作系统的低级功能提供大致无缝的开发体验。(macOS和Linux不同的一些例子包括文件锁定和线程亲和性,这些库ies可以帮助规范两个平台之间的这些功能。)最终,为了提取最佳性能,需要仔细了解每个目标平台的细微差别。在部署、配置和调整低延迟软件堆栈时,目标操作系统会在开发阶段受到影响。一些知识和熟悉度可能是有益的。结论首先,对于开发,我推荐使用你最熟悉的操作系统。如果您对任何操作系统都没有太多经验,我建议您使用Windows或macOS。如果你的预算有限,Linux是一个更便宜的选择,但要小心检查你是否可以在Linux上运行你需要的所有代码。除非您想使用双引导或虚拟机,否则您可能不得不花一大笔钱购买第二台(或旧的)机器来运行Windows。如果您选择双启动,那么对于台式机,我建议您设置两张启动盘(每个操作系统一张)。这样,如果出现问题,您可以更换一个。另一方面,如果您正在编写低延迟代码并且您必须对操作系统子系统有良好的控制水平,那么请选择Linux。或者,我会选择macOS。关键是,选择Mac、Windows或Linux有点像政治或宗教:人们强烈地认为他们的选择是正确的,而且往往对不同的观点视而不见(我觉得这很有趣)。