选择Windows over Unix作为开发平台的好处

时间:2009-02-01 00:15:42

标签: operating-system platform

通过Linux或Solaris等Unix方言开发时,Windows / Microsoft作为平台使用是否有任何技术优势?

我知道公司有时会选择微软,因为根本没有足够的程序员可以了解Unix,或者这些程序员的聘用成本要高得多。

因此,假设所有开发人员都非常了解Unix和Microsoft,那么是否仍有一些情况下您最好在Windows中开发?

10 个答案:

答案 0 :(得分:9)

我不在乎:

  • .NET(即使单声道真的很棒)
  • Visual Studio - 可能是最好的IDE
  • 优秀的文档(在我看来,MSDN Library比开发人员更友好)
  • 庞大的用户群(这更像是商业用途,但仍然是一个非常重要的因素)
  • 二进制兼容性(支持4-5内核和标准C库版本比在Linux发行版中找到的无限数量的组合容易得多)

答案 1 :(得分:9)

对我来说,使用Windows作为开发平台只有两个论点:

  1. 你必须这样做,因为你正在做.Net / Windows开发(或者因为公司根本不给你选择);或
  2. 应用程序,特别是Microsoft Office / Exchange。对不起,但与Word / Excel相比,OpenOffice非常糟糕。
  3. 除了imho Linux还有其他所有优势,包括:

    • 更快的文件系统(在处理大量小文件时尤其重要)。去年我通过这个开关(相同代码库的ant构建)从8-10分钟的构建时间变为2-3;
    • 通常,您的开发环境会匹配您的生产环境(如果您的生产环境是Windows,那么您的开发环境几乎可以保证Windows),这可能很有用。由于JBoss在Windows和Linux之间的差异,我们遇到了Java类路径可见性的问题;和
    • 一套更好的命令行工具(是的,我知道你可以使用Cygwin等,但它不是很好)。

    这就是为什么我发现Mac作为我的下一个开发工作站如此令人赞叹的一个原因:你可以把它看成是带有应用程序的Unix(即Office)或带有不错的文件系统的Windows(如果/当OSX时会更好)采用ZFS),无论哪种方式都是胜利。真正让我失望的唯一一件事就是Apple做了愚蠢的事情,例如推迟Java 6发布一年,这样他们就可以把Leopard外观和感觉放进去了。

答案 2 :(得分:5)

您可以做的最好的事情之一就是保持您的选择。切割平台独立技术,您将能够拥有任何操作系统或实施的软件。从技术角度来看,这既有意义,也有商业意义。

至于Windows平台的特定技术优势,除了大型开发人员社区和开发信息存储以及像Visual Studio这样广泛支持的IDE之外,我会说你很难找到它。即使在那里,Eclipse也可以通过平台独立技术做得很好。

答案 3 :(得分:3)

微软系统往往在不同部分之间有更好的集成 - 如果你使用的是二进制软件(x86和comctl3d比* nix运行的所有东西都要容易得多),那么异构性要少得多。

Windows上的学习曲线很浅,但总体距离较长。在Unix / Linux上,开始是一场斗争,但是当OS的内部工作开始变得有意义时,完成任务变得更容易。

至少那是我与他们的经历。 Windows可以快速获得回报,如果你要做更长期的事情,可以使用Linux。如果您无法决定虚拟机:)

答案 4 :(得分:2)

我们拥有Windows开发平台的一个原因(即使我们的产品是在Linux或Solaris上)是所有人的共同环境

这意味着参与实现软件的所有不同人群:

  • 并非所有开发者(业务,功能人员也关注工作环境)
  • 都在同一平台上(Windows)
  • 使用所有相同的工具进行编写/沟通(如Word,PowerPoint)
  • 可以在笔记本电脑上拥有相同的环境

简而言之:所有人(开发人员和非开发人员)的环境一致。


另一个原因是折旧:很容易管理PC的折旧,其中服务比全尺寸Unix服务器(如Sun Fire,F15K或F50K,......)更轻。 。):后者需要一些昂贵的援助服务合同(如“青铜”,“银”或“金”,视所需水平而定)。 PC更容易修复/替换,并且不像开发人员“搞砸”它并彻底崩溃那样严重;)

话虽如此,这样做的缺点是你不会每天都改变PC:这意味着要管理大量的台式机,你不能仅仅决定升级那样(这也适用于Os)。

所以其他答案都是关于“虚拟机”,而你的PC是从2003年开始的,只有40Go的硬盘和1,可能是2Go的内存......,你意识到“虚拟化”不是总是一个明显的解决方案 因此,开发人员需要一些Unix“集成”服务器才能在更接近目标的环境中测试他们的产品。在某种程度上,这是更好的,因为这些集成服务器是以统一的方式管理,避免了“它适用于我 TM ”的综合症,而不是虚拟机,每个开发人员都是自己的一个人自己的小世界/服务器的root /管理员;)。

答案 5 :(得分:2)

我认为这个问题存在错误的二分法。没有理由你必须选择windows而不是unix,反之亦然。虚拟化是免费且简单的。这是两全其美的!

答案 6 :(得分:0)

我可以给你一个Windows人员可能会提出的共同论点,尽管不是我必须同意的。

  • 人们有时会认为生产时的Windows机箱更易于维护和部署。这是因为管理员可以使用很多可视化工具。因此,他们更喜欢.Net或Windows特定的开发语言,以便于集成。

  • 如果您的客户或内部客户使用所有Windows桌面计算机,有些人会认为使用Windows服务器的工作量较少。这包括Microsoft Office文档共享(即sharepoint)或Windows文件共享的内容。显然,编写.Net应用程序以处理此类特定于Microsoft的约束更容易。

我真的不能想到任何其他原因。后者可能是最有效的 - 除非您使用MSFT开发工具,否则可能会有一些特定于微软的技术难以集成。

答案 7 :(得分:0)

某些特定发展的外围原因:

  • 你需要了解firefox和explorer中的内容。
  • 你正在使用flash(你无法在Linux上开发AFAIK,玩家很糟糕)。
  • 您正在开展涉及MS Office集成的项目
  • 你的办公室里有一些神圣的邮件或笔记系统,你无法以任何其他方式登录。对于一些vpn设置同样如此。

我认为所有这些事情都令人遗憾。

答案 8 :(得分:0)

为什么不同时使用?

在任何一种情况下,您都可以在Windows或Linux / Unix中使用虚拟机,基本上不使用Virtual Box或Vmware播放器。或者您可以从开发框远程桌面/ vnc到另一个平台。如果你在.net中开发,你可能会在Windows上开发更好。如果您为LAMP开发,Windows / * nix就可以了。

答案 9 :(得分:-1)

给我apache mysql(ok's postgres in a pinch)php和eclipse ..谁关心操作系统..