什么是 Java 开发的最佳操作系统?Sun 的人正在推动 Solaris,是的,Solaris 本身包含一些额外的功能,例如(dTrace、性能调整 JVM 的可能性等。)。我的一些朋友将他们的应用程序移植到了 solaris 上,他们对我说性能非常出色。我不喜欢切换我的操作系统,而是使用 Solaris。
你的经历是什么?
什么是 Java 开发的最佳操作系统?Sun 的人正在推动 Solaris,是的,Solaris 本身包含一些额外的功能,例如(dTrace、性能调整 JVM 的可能性等。)。我的一些朋友将他们的应用程序移植到了 solaris 上,他们对我说性能非常出色。我不喜欢切换我的操作系统,而是使用 Solaris。
你的经历是什么?
在我使用过的三个(Mac OS X、Linux、Windows)中,我认为 Linux 是进行 Java 开发的最佳场所。
我的主要个人机器是 Mac,我在那里做了很多 Java 开发并且对它很满意。然而,不幸的是,Apple 落后于官方 JDK 版本,而且您几乎受限于他们选择提供的少数几个版本。
我的雇主提供的机器是 HP 的旧 P4 板条箱,我主要用它来保暖。真正的工作发生在“Oberon”上,在 2.6 GHz 四核上以 32 位模式运行Ubuntu 8.04 [1]。与 Windows 相比,我日常注意到的两个优势是:
您也可以从 mac 获得这些优势,但 Linux 提供了另一个不错的好处:
[1] 我曾经在 64 位模式下运行 Ubuntu,但我遇到了无穷无尽的麻烦。(混合 64 位和 32 位是 Mac OS X 做得更好的东西。) 7.04 在 64 位内核上运行 32 位应用程序运行良好。7.10 打破了linux32
脚本和安装新的 32 位应用程序的能力,尽管旧的应用程序继续(大部分)运行。8.04 使 32 位 JVM 无法连接到网络,从而杀死了 32 位 java(Eclipse 不再更新)。运行 Eclipse 64 位运行不可靠。当时当前版本的 oXygen 只能(勉强地)在 IBM 64 位 VM 下运行,该 VM 可以运行大约 10 分钟,直到它停止接收键盘事件。我终于沮丧地放弃了,使用了我的 Mac 几个月,直到我有足够的空闲时间在 linux 机器上进行 8.04 的 32 位安装。现在一切都恢复了,我很高兴。
随心所欲地发展。作为一名 Java 程序员,您可能希望避免使用 Mac OS X,主要是因为新功能似乎已经明显延迟,而且您会发现您不再拥有一台支持 Java 新版本的机器。话虽如此,我想象在 Mac OS X 上开发一定非常好(命令行界面、dtrace、nice OS)。
我使用 IntelliJ 7 在 Windows 上开发。没关系,但需要一些强大的硬件。然后我部署到 solaris/linux 上。除非您正在编写 GUI 或与 C++ 代码集成,否则您应该可以选择您喜欢的任何内容。
“发展” ?
我相信您应该坚持使用您最熟悉的操作系统,或者对于一大群(开发人员)来说最可用的操作系统,例如 Windows 上的一组 PC。
很少需要在开发平台上进行深度调优。
您可以将所有这些 dtrace 和其他性能调整保留到汇编平台(例如在 Linux 中),用于重新编译和单元测试所有内容的日常部署。
然后您可以设置一个特殊的 JVM(例如 IBM JRockit 而不是 Sun JRE)来对您的集成平台进行一些分析,您的所有系统都可以从前到后进行测试,包括压力和非回归测试
最后,在预生产平台(可以是昂贵的 F15K 或 SunFire880 或 V490 或...)上进行所有 UAT(用户验收测试),并在其中使用目标 JRE。
我的观点是:在开发和发布到生产之间需要考虑很多参数,因此在这么早的阶段切换操作系统可能证明是不必要的。
开发您满意的内容,并测试您部署的内容。
我开始在我的 Mac 上开发 Java,并在 Solaris 和 Linux 上进行部署。事实上,对于大部分任务,Java 可以以独立于操作系统的方式开发。对于服务器端开发尤其如此。
我一般喜欢在 Windows 机器上的 Unix 上进行开发,但这就是我。
我会说Mac OS X。
内置 Java 开发。您想要的所有 unix 命令行工具。盒子外面。蚂蚁和行家都在那里。不是最新版本,但这很容易升级。
是的,您可能没有最新版本的 JDK,但实际上,除非您需要为最新最好的 JDK 进行开发,否则这不会成为问题。
答案比您想象的要容易:使用您最喜欢的操作系统。对于Java,这是最好的答案。不是开发本身,而是您的舒适度将有助于您在您最喜欢的环境中取得成功、浏览文档等。
就个人而言,我不会打扰。我会使用最能支持您使用的开发工具和目标平台的平台。
为什么需要调整 JVM?这是一件非常不寻常的事情。用 C++ 这样的低级语言编写会更好吗?
Dtrace 可用于 OS X,也有一个 linux 端口。Solaris 在历史上一直以速度慢着称(因此有 Slowaris 的昵称)。我不确定这是否仍然正确。
我使用过 Linux、Windows 和 OS X。我支持 OS X 的最大理由是它是用户友好的操作系统(即,我可以运行 iTunes、大多数现代浏览器,并且不需要分配 50% 的时间在具有 unix 基础的笔记本电脑(如 linux)上维护它。由于我的大部分开发都是针对 Unix 系统的,这让生活变得更加富有成效。此外,这里的平台背后还有一个越来越活跃的开发社区。这些原因也适用于 Windows——而 cygwin 关闭了我对使用 unix 工具的一些要求——这与拥有真正的 unix 系统完全不同。
在使用 Eclipse 在 Windows 中进行 Java 开发之前,我已经取得了成功。听起来您也在询问部署/托管。无论哪种操作系统最适合运行您的应用程序,都不应真正预测您用于开发应用程序的操作系统。
正如 pmiller 建议的那样,Windows 和 Eclipse 运行良好。我还可以推荐带有 Eclipse 或 IntelliJ IDEA 的 OS X(后者也适用于 Windows)。
我只在 Solaris 上做过最基本的 Java 开发(大学里基本数据结构的编程实践),所以恐怕我无法提供任何真正的比较。不过,由于缺乏适当的工具(我认为我只能使用 nedit 或其他工具),我确实发现在 Solaris 上非常痛苦。
您必须考虑的一件事是您是否要开发可以在 Mac 上运行的应用程序。我喜欢 OS X,但好老 steve 确保我们总是落后于许多 JDK 版本。我们刚刚获得 Java 6。在 Mac 上开发至少可以确保您在尽可能低的 JDK 版本下工作。
您的开发环境必须与生产环境相同。
没有与您的生产环境不同的“最佳开发环境”。运行您在生产和开发中运行的内容。
也就是说,这并不意味着您不能在例如另一个操作系统上运行您的 IDE,只要您仍然在与生产相同的系统上进行开发(例如,在另一台机器或 VM 上)。
窗户很好。
Solaris 也是一个很棒的 Java 开发环境(我比 Windows 更喜欢它,但出于主观原因),但除非你在上面进行部署,否则它可能不值得切换。
Linux 对于 Java 开发来说有点笨拙,但可行。
我唯一不能推荐的是 Mac,因为它们在可用的 Java 版本上总是落后很多(Sun 不提供,Apple 自己提供)。
我最好的建议是在您的目标平台上进行开发。这样,当您在开发测试和单元测试期间运行它时,您就知道它也可以在目标平台上运行,而不会出现任何令人讨厌的意外。
如果你面向所有平台,那么你可能真的想在 Mac 上开发,因为你会在 Mac 上得到最令人讨厌的惊喜。就 Java 而言,在 Windows 和 Unix 上,“它可以正常工作”,但在 Mac 上则不然。Sun 为除 Mac 之外的所有操作系统开发 Java 运行时 (JRE)。Apple 开发了自己的 JRE。
如果您在 Mac 上进行开发,您很可能会针对最小公分母进行开发,因此在 Mac 上运行的应该可以在其他平台上运行。这就是我的经验。
除此之外,我始终建议您根据操作系统是否运行您的软件来选择操作系统。选择运行 IDE 的操作系统以及用于开发和测试的其他工具。如果不止一个操作系统运行您需要的工具,请选择运行最好的那个。