java开发的最佳操作系统? [关闭]

Posted

技术标签:

【中文标题】java开发的最佳操作系统? [关闭]【英文标题】:Best OS for java development? [closed] 【发布时间】:2010-09-20 08:21:10 【问题描述】:

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

你的经历是什么?

【问题讨论】:

【参考方案1】:

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

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

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

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

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

Remote 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 下运行,这将工作大约 10 分钟,直到它停止接收键盘事件。我终于沮丧地放弃了,并使用了我的 Mac 几个月,直到我有足够的空闲时间在 linux 机器上进行 8.04 的 32 位安装。现在一切都恢复了,我很高兴。

【讨论】:

我想补充一点,我使用的是 ubuntu 8.10,有时我会发现一些“错误”。例如,不支持 SystemTray,这似乎是一个已知问题。我在 scool 有一个项目,我们将在 UDP 上建立一个可靠的传输协议,但我在发送 Windows 和 OSX 用户没有得到的数据包(段)时遇到了一些问题......:S Ubuntu 特别适合任何类型的开发,尤其是 Java 开发。如果您不喜欢 Microsoft 特定的技术,那么 Ruby、Python、C#、Groovy、Erlang、Perl、D、C/C++ 和其他所有东西都可以在那里使用。 我个人的 IDE 是 Netbeans。从 J2ME 到 Servlets 等等等等。这是一个处理所有问题的包。甚至我一直在为 Ruby、C++ (Qt) 和 Java 使用 Netbeans 6.7。 必须指出的是,Mac 不再落后于 Java 版本,就像任何东西一样最新。【参考方案2】:

开发任何你喜欢的东西。作为一名 Java 程序员,您可能希望避免使用 Mac OS X,主要是因为新功能似乎已被显着延迟,并且还因为您会发现您不再拥有支持 Java 新版本的机器。说了这么多,我想在 Mac OS X 上开发一定很不错(命令行界面,dtrace,不错的 OS)。

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

【讨论】:

一次写入,到处运行的隐喻怎么样?我们的客户大多使用 windows,有些使用 mac os x,所以我们的应用程序试图在任一操作系统上看起来像一个原生的...... 当然,对于服务器来说没问题。但对于 GUI,它可能看起来很原生,但有一些细微之处会影响它们的实际执行方式。例如焦点。【参考方案3】:

“发展”?

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

开发平台很少需要深入调优。

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

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

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

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

【讨论】:

除非您正在编写 GUI,在这种情况下,您希望在用户使用的操作系统上。 是的,但是,在这个问题的上下文中...... Solaris ?如果你有数百个用户,我怀疑他们都会有一个 Solaris 盒子;-)【参考方案4】:

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

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

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

【讨论】:

【参考方案5】:

我会说 Mac OS X。

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

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

【讨论】:

+1 通常你不会在最新的 JDK 上开发一些严肃的东西 你没有提供任何与 linux 相比的优点/缺点【参考方案6】:

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

【讨论】:

【参考方案7】:

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

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

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

【讨论】:

Sparc 是 Solaris 比更快的 Pentium + 处理器慢一点的原因。既然 Solaris 在英特尔处理器上运行得一样好,那么 Solaris 与任何其他操作系统一样快/慢。 YMMV。【参考方案8】:

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

【讨论】:

【参考方案9】:

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

【讨论】:

这里没有讨论部署/托管,可能上下文与我的意思不符,但我的朋友将他们的应用程序移植到 Solaris 上只是为了测试。 软件是什么?提供更多上下文。将应用程序迁移到特定操作系统进行测试似乎很奇怪,因为大多数工具都是独立于平台的。 swing 应用程序如何在 Solaris 上更快 好的,如果您的 GUI 应用程序在 Solaris 上速度更快,这可能有几个原因。您的用户是否一直在使用 Solaris?如果不是,那么是否值得弄清楚为什么它在 Solaris 上更快?您是否有一些用户使用 Solaris,而一些用户使用其他操作系统?【参考方案10】:

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

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

【讨论】:

【参考方案11】:

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

【讨论】:

【参考方案12】:

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

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

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

【讨论】:

【参考方案13】:

Windows 很好。

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

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

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

【讨论】:

Linux 对 Java 开发人员来说“笨拙”的原因是什么? @Xepoch 可能是因为它的 ui 与 win 或 mac 相比显得笨拙。 @JohnS...谁需要 UI 进行开发? :) vi 一路走来。【参考方案14】:

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

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

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

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

【讨论】:

以上是关于java开发的最佳操作系统? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

最佳分割算法[关闭]

如何快速学习 Java RMI [关闭]

有没有文件可以告诉我关于 iphone 的最佳信息? [关闭]

Gradle vs. Maven:哪一个是 Android 开发的最佳选择 [关闭]

哪个是 Spring 框架的最佳 Java IDE? [关闭]

使用 Java 构建插件系统的最佳方法