24

什么是 Java 开发的最佳操作系统?Sun 的人正在推动 Solaris,是的,Solaris 本身包含一些额外的功能,例如(dTrace、性能调整 JVM 的可能性等。)。我的一些朋友将他们的应用程序移植到了 solaris 上,他们对我说性能非常出色。我不喜欢切换我的操作系统,而是使用 Solaris。

你的经历是什么?

4

14 回答 14

40

在我使用过的三个(Mac OS X、Linux、Windows)中,我认为 Linux 是进行 Java 开发的最佳场所。

我的主要个人机器是 Mac,我在那里做了很多 Java 开发并且对它很满意。然而,不幸的是,Apple 落后于官方 JDK 版本,而且您几乎受限于他们选择提供的少数几个版本。

我的雇主提供的机器是 HP 的旧 P4 板条箱,我主要用它来保暖。真正的工作发生在“Oberon”上,在 2.6 GHz 四核上以 32 位模式运行Ubuntu 8.04 [1]。与 Windows 相比,我日常注意到的两个优势是:

  1. 一个强大的命令行,它可以帮助我自动化无聊的小东西。
  2. 远超卓越的文件系统性能。(我目前正在使用 EXT3,因为我在晚年变得保守。我以前使用过 ReiserFS,对于通常在从 subversion 签出的大型工作空间上执行的各种操作来说,它甚至更快。)

您也可以从 mac 获得这些优势,但 Linux 提供了另一个不错的好处:

  • 远程 X11:在我的 $EMPLOYER 通过 Web 提供电子邮件和日历之前,我必须在 Windows 机器上阅读我的邮件和查看我的会议,所以我使用了 Cygwin 的 X11。这使我可以在 Linux 上运行这些东西,但可以在我的 Windows 桌面上显示它。

[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 位安装。现在一切都恢复了,我很高兴。

于 2008-11-02T08:43:46.453 回答
12

随心所欲地发展。作为一名 Java 程序员,您可能希望避免使用 Mac OS X,主要是因为新功能似乎已经明显延迟,而且您会发现您不再拥有一台支持 Java 新版本的机器。话虽如此,我想象在 Mac OS X 上开发一定非常好(命令行界面、dtrace、nice OS)。

我使用 IntelliJ 7 在 Windows 上开发。没关系,但需要一些强大的硬件。然后我部署到 solaris/linux 上。除非您正在编写 GUI 或与 C++ 代码集成,否则您应该可以选择您喜欢的任何内容。

于 2008-11-01T22:10:59.087 回答
7

“发展” ?

我相信您应该坚持使用您最熟悉的操作系统,或者对于一大群(开发人员)来说最可用的操作系统,例如 Windows 上的一组 PC。

很少需要在开发平台上进行深度调优。

您可以将所有这些 dtrace 和其他性能调整保留到汇编平台(例如在 Linux 中),用于重新编译和单元测试所有内容的日常部署。

然后您可以设置一个特殊的 JVM(例如 IBM JRockit 而不是 Sun JRE)来对您的集成平台进行一些分析,您的所有系统都可以从前到后进行测试,包括压力和非回归测试

最后,在预生产平台(可以是昂贵的 F15K 或 SunFire880 或 V490 或...)上进行所有 UAT(用户验收测试),并在其中使用目标 JRE。

我的观点是:在开发和发布到生产之间需要考虑很多参数,因此在这么早的阶段切换操作系统可能证明是不必要的。

于 2008-11-01T22:07:46.677 回答
7

开发您满意的内容,并测试您部署的内容。

我开始在我的 Mac 上开发 Java,并在 Solaris 和 Linux 上进行部署。事实上,对于大部分任务,Java 可以以独立于操作系统的方式开发。对于服务器端开发尤其如此。

我一般喜欢在 Windows 机器上的 Unix 上进行开发,但这就是我。

于 2008-11-01T22:08:15.253 回答
7

我会说Mac OS X。

内置 Java 开发。您想要的所有 unix 命令行工具。盒子外面。蚂蚁和行家都在那里。不是最新版本,但这很容易升级。

是的,您可能没有最新版本的 JDK,但实际上,除非您需要为最新最好的 JDK 进行开发,否则这不会成为问题。

于 2008-11-01T23:23:00.330 回答
3

答案比您想象的要容易:使用您最喜欢的操作系统。对于Java,这是最好的答案。不是开发本身,而是您的舒适度将有助于您在您最喜欢的环境中取得成功、浏览文档等。

于 2008-11-02T00:44:21.103 回答
1

就个人而言,我不会打扰。我会使用最能支持您使用的开发工具和目标平台的平台。

为什么需要调整 JVM?这是一件非常不寻常的事情。用 C++ 这样的低级语言编写会更好吗?

Dtrace 可用于 OS X,也有一个 linux 端口。Solaris 在历史上一直以速度慢着称(因此有 Slowaris 的昵称)。我不确定这是否仍然正确。

于 2008-11-01T22:06:59.593 回答
1

我使用过 Linux、Windows 和 OS X。我支持 OS X 的最大理由是它是用户友好的操作系统(即,我可以运行 iTunes、大多数现代浏览器,并且不需要分配 50% 的时间在具有 unix 基础的笔记本电脑(如 linux)上维护它。由于我的大部分开发都是针对 Unix 系统的,这让生活变得更加富有成效。此外,这里的平台背后还有一个越来越活跃的开发社区。这些原因也适用于 Windows——而 cygwin 关闭了我对使用 unix 工具的一些要求——这与拥有真正的 unix 系统完全不同。

于 2008-11-04T06:16:38.077 回答
0

在使用 Eclipse 在 Windows 中进行 Java 开发之前,我已经取得了成功。听起来您也在询问部署/托管。无论哪种操作系统最适合运行您的应用程序,都不应真正预测您用于开发应用程序的操作系统。

于 2008-11-01T22:06:50.453 回答
0

正如 pmiller 建议的那样,Windows 和 Eclipse 运行良好。我还可以推荐带有 Eclipse 或 IntelliJ IDEA 的 OS X(后者也适用于 Windows)。

我只在 Solaris 上做过最基本的 Java 开发(大学里基本数据结构的编程实践),所以恐怕我无法提供任何真正的比较。不过,由于缺乏适当的工具(我认为我只能使用 nedit 或其他工具),我确实发现在 Solaris 上非常痛苦。

于 2008-11-01T22:09:25.703 回答
0

您必须考虑的一件事是您是否要开发可以在 Mac 上运行的应用程序。我喜欢 OS X,但好老 steve 确保我们总是落后于许多 JDK 版本。我们刚刚获得 Java 6。在 Mac 上开发至少可以确保您在尽可能低的 JDK 版本下工作。

于 2008-11-01T22:22:50.327 回答
0

您的开发环境必须与生产环境相同。

没有与您的生产环境不同的“最佳开发环境”。运行您在生产和开发中运行的内容。

也就是说,这并不意味着您不能在例如另一个操作系统上运行您的 IDE,只要您仍然在与生产相同的系统上进行开发(例如,在另一台机器或 VM 上)。

于 2008-11-04T06:57:58.867 回答
0

窗户很好。

Solaris 也是一个很棒的 Java 开发环境(我比 Windows 更喜欢它,但出于主观原因),但除非你在上面进行部署,否则它可能不值得切换。

Linux 对于 Java 开发来说有点笨拙,但可行。

我唯一不能推荐的是 Mac,因为它们在可用的 Java 版本上总是落后很多(Sun 不提供,Apple 自己提供)。

于 2008-12-26T17:40:05.607 回答
0

我最好的建议是在您的目标平台上进行开发。这样,当您在开发测试和单元测试期间运行它时,您就知道它也可以在目标平台上运行,而不会出现任何令人讨厌的意外。

如果你面向所有平台,那么你可能真的想在 Mac 上开发,因为你会在 Mac 上得到最令人讨厌的惊喜。就 Java 而言,在 Windows 和 Unix 上,“它可以正常工作”,但在 Mac 上则不然。Sun 为除 Mac 之外的所有操作系统开发 Java 运行时 (JRE)。Apple 开发了自己的 JRE。

如果您在 Mac 上进行开发,您很可能会针对最小公分母进行开发,因此在 Mac 上运行的应该可以在其他平台上运行。这就是我的经验。

除此之外,我始终建议您根据操作系统是否运行您的软件来选择操作系统。选择运行 IDE 的操作系统以及用于开发和测试的其他工具。如果不止一个操作系统运行您需要的工具,请选择运行最好的那个。

于 2009-09-04T20:56:24.403 回答