比较 Windows 和 Mac OS X 作为开发环境

Posted

技术标签:

【中文标题】比较 Windows 和 Mac OS X 作为开发环境【英文标题】:Comparisons Windows and Mac OS X as development environment 【发布时间】:2010-01-29 20:12:42 【问题描述】:

本人长期使用Visual Studio (VC++)和Windows API,对Linux工具链比较熟悉,但没有Mac OS X开发经验。

我想听听您对 Windows 和 Mac 作为开发环境的优缺点的看法。但是,由于这可能是主观的,如果您能列举一些事实,而不是简单地说“A 比 B 好”,我将不胜感激。我特别想听听以下内容:

    IDE:Visual Studio 与 xcode API:Win32 API(包括基于 C 的原生 Win32 API、MFC、C#)和 Cocoa(主要是 Objective-C) 文档:MSDN 与 ?? 工具支持:调试、分析、测试等 知识库:当您遇到问题时,是否容易得到任何人的帮助?书多吗? (在 Windows 开发中,有 Petzold、Richter...) 移动应用:iPhone 与 Windows Mobile

恐怕这个话题会引起争议。但是,我想知道 Mac 与 Windows 相比如何提供开发环境。

【问题讨论】:

恳求关闭巡逻队的宽恕:请不要主观地关闭这个! 绝对是主观的,并且有很大的争论风险......并且缺乏答案的“正确性”指标表明CW也是有序的。 Chris:但它很大程度上是主观的。例如,Visual Studio 与 XCode——嗯,我发现 VS 比 XCode 更容易使用(并且可以写出一长串原因),但其他人无疑会反过来说。为了提高问题的出现几率,您可能需要对其进行编辑,使其更具体、更客观地“回答问题”。 @itowlson- 很好,你又赢了...答案已删除。也许博客是此内容的最佳位置 我不明白这个问题:你想开发什么?通常,人们想要开发 Windows、iPhone、Ubuntu、TI-89 或其他一些应用程序,并且询问目标平台的最佳开发平台是一个很好的问题。你的#6 似乎暗示你是为 Windows Mobile 还是 iPhone 编程的,这似乎很奇怪。 【参考方案1】:

我试图让答案尽可能不主观,严格关注事实。

1 - IDE:Visual Studio 与 xcode

仅从功能集来看,如今大多数开发人员工具功能都非常标准。每个都有基础知识、代码高亮显示、调试器、分析器等。有些工具具有其他工具所没有的功能,但基本功能水平在两个平台上相当稳定。

2 - API:Win32 API(包括基于原生 C 语言的 Win32 API、MFC、C#)和 Cocoa (主要是 Objective-C)

它们是不同的,但执行相同的功能。两者都为各自的开发人员提供了构建块,以创建适合平台指定风格的应用程序。两者都允许开发人员偏离“标准”风格建议。

3 - 文档:MSDN 与 ??

Apple 也有自己的文档集。这是 Apple 参考库。 http://developer.apple.com/mac/library/navigation/index.html

4 - 工具支持:调试、分析、测试等。

同样,两个套件都包含等价物。调试器、分析器、测试工具等。

5 - 知识库:当您遇到问题时,是否容易得到任何人的帮助?书多吗? (在Windows开发中,有Petzold,Richter,...)

根据已出版书籍的总字数,我大胆猜测 Windows 开发世界的速度超过了 Mac 开发。也就是说,那里有一些非常好的 Mac 开发书籍。对于新开发人员来说,Aaron Hillegass 的“Mac OS X 的 Cocoa 编程”被认为是主要来源之一。

6 - 移动应用:iPhone 与 Windows Mobile

我没有任何为 Windows Mobile 开发的经验,但我认为两者都有相当相似的工具链,因为每个人都“借鉴”彼此的想法。

总而言之,Mac 为 Mac 和 iPhone 平台的开发提供了一个综合开发环境,就像 Windows 为 Windows 和 Windows Mobile 平台开发提供了一个综合开发环境一样。一个主要区别是标准的 Mac 开发工具链随您的 Mac 一起提供。您无需购买任何其他东西(如果您为该平台开发,则订阅 iPhone 开发者计划除外)。

【讨论】:

【参考方案2】:

1 - IDE:Visual Studio 与 xcode

也许不出所料,Visual Studio 非常类似于 Windows,而 Xcode 非常类似于 Mac。 Xcode 提供了一个非常干净的界面,其中包含最少数量的非常大的按钮。 Visual Studio 中的代码自动完成优于 Xcode,但我相信最新版本的 Xcode 已经大大缩小了这一差距。 Xcode 非常擅长以一致的方式使用工具栏和附件面板,因此,如果您习惯使用 Interface Builder 中的检查器面板,那么您也会习惯使用 Pages、Numbers、Keynote、iWeb 等中的检查器面板。 Studio 往往非常混乱,即访问代码编辑器的设置不同于访问 Reporting Services 组件的设置,后者不同于 TFS 组件等。

OS X 还提供了非常有用的菜单搜索栏,这使得在 Xcode 中找到打开断点窗口的命令几乎与记住组合键一样容易。

OS X 的 UNIX 基础,加上对 Ruby、Applescript 和 Automator 的支持,让您可以轻松地以任何您喜欢的语言编写 Xcode 脚本。非常适合在构建或自动移动文件或您拥有的东西上自动化 SCM 流程。

2 - API:Win32 API(包括基于原生 C 语言的 Win32 API、MFC、C#)和 Cocoa (主要是 Objective-C)

因为我几乎没有使用过 Windows API,所以我不能说它们,但 Cocoa 很棒。撇开人们对 Objective-C 的任何反对意见不谈,很少听到关于 API 的贬低评论,它们功能强大、易于使用并提供令人难以置信的一致接口,这使得选择新的 Apple 框架非常容易。

3 - 文档:MSDN 与 ??

Apple 的文档干净、编写良好、最新。几乎所有课程都包含指向示例项目的链接。大多数任何复杂性的类文档都包括示例代码,最复杂的类和框架将具有大量的书面文档,始终以清晰易懂的英文编写。

命名空间使 Objective-C 成为更好的语言有很多原因,但我喜欢在 Apple 文档中搜索“NSString”总是会返回我正在寻找的页面。

最重要的是,您不必在尝试使用文档时浏览其他 Apple 产品的广告。 :-D

4 - 工具支持:调试、分析、测试等。

我对自己使用过的 Apple 工具感到非常满意,但从未使用过 Microsoft 的工具,因此我无法评论两者之间的任何差异。

5 - 知识库:当您遇到问题时,是否容易得到任何人的帮助?书多吗? (在Windows开发中,有Petzold,Richter,...)

我在获取有关 Visual Studio 问题的帮助时遇到了很多麻烦。但是,这不是一个公平的比较,因为我们在我工作的地方使用的是旧版本的 VS。当我在谷歌上寻找 VS 问题的答案时,我通常会在 Experts-Exchange 或一些古老的 MS 博客上找到答案。当我在 Google 上寻求有关 Xcode/OS X 问题的帮助时,我通常会在 *** 或许多编写良好且最新的 Cocoa 博客中找到一个。毫不奇怪,我对自己的 OS X/Xcode 体验感到更加满意。

此外,在进行 OS X/iPhone 开发时,我通常能够在 Google 帮助查询之间工作更长的时间。一致的类接口、编写良好的文档和错误消息可以解释你做错了什么以及如何解决它,这意味着我很少需要寻求帮助来找出我遇到的问题。这不是我在 Visual Studio 中工作的经验。对此持保留态度,因为我作为 OS X 开发人员已有 5 年以上,并且一直在 Visual Studio 中工作

6 - 移动应用:iPhone 与 Windows Mobile

从未接触过 Windows Mobile,因此无法发表评论。

【讨论】:

【参考方案3】:

Mac OS X 胜出的几个方面:

性能工具(Shark、Instruments 等)- 在 Windows 上什至没有什么可以接近的(除了可能是 Intel 的 VTune,它的功能远不及 Shark) 所有 Apple 工具都是免费的

【讨论】:

【参考方案4】:

补充保罗所说的:

我使用 Eclipse 和偶尔使用 NetBeans 进行跨平台开发 - 两者在 Mac 上的工作(大部分)与 PC 相同。

具有 BSD 后端的 OSX 让您可以访问带有终端的常用 unix 工具集,用于运行 shell 脚本和其他漂亮的命令行内容。

【讨论】:

【参考方案5】:
    工具支持

我更喜欢 OSX,因为通过 Macports,我有数以千计的库 + 源 + 依赖项可用。它比 cygwin 更集成。 OS X 也有一个适当的终端和内置的 X。我不知道为什么 windows 仍然具有与 windows 3.1 相同的终端。

【讨论】:

以上是关于比较 Windows 和 Mac OS X 作为开发环境的主要内容,如果未能解决你的问题,请参考以下文章

安装windows、mac os X、Linux fedora 三系统在同一台pc上,如何操作???

Mac Os X 中类似 Windows 的 Qt4 菜单栏

从安装Mac OS X虚拟机到第一个IOS程序

Mac OS X 开启Http Ftp服务

如何配置Mac OS X 与 Windows之间共享网络

Mac OS X 下的 _wfopen 等效项