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

4

我长期使用Visual Studio(VC++)和Windows API,并且非常熟悉Linux工具链,但是没有Mac OS X开发经验。

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

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

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


请求 Close Patrol 的宽限:请不要将此关闭为主观性! - Chris McCall
1
这绝对是主观的,存在争议的风险很大...而且缺乏答案的“正确性”指标也表明需要采用 CW(社区维基)的方式。 - dmckee --- ex-moderator kitten
@Chris McCall:嗯,我的只是一个意见,而且也没有近期投票。所以不要听我说——社区显然觉得这个问题没问题,所以如果你认为你的回答有用的话,我想你应该恢复它! - itowlson
@Chris:你的回答很容易被视为“主观和有争议性”,可能导致问题被关闭。我建议你将其删除,或编辑一下以尽量避免表达价值判断和无关信息。 - David Thornley
2
我不理解这个问题的是:你想要开发什么?通常,人们想要开发Windows、iPhone、Ubuntu、TI-89或其他应用程序,并询问针对目标平台的最佳开发平台是一个好问题。你的第6点似乎暗示着你无论是为Windows Mobile还是iPhone编程都无所谓,这至少看起来很奇怪。 - David Thornley
显示剩余3条评论
5个回答

1
1 - IDE:Visual Studio vs. xcode 或许不出所料,Visual Studio非常类似于Windows,而Xcode非常类似于Mac。 Xcode提供了一个非常简洁的界面,只有少量很大的按钮。Visual Studio中的代码自动补全功能优于Xcode,但我认为最新版本的Xcode已经显著缩小了这一差距。 Xcode非常擅长以一致的方式使用工具栏和辅助面板,因此如果您习惯于在Interface Builder中使用检查器面板,则在Pages、Numbers、Keynote、iWeb等中使用检查器面板时,您也会感到舒适。 Visual Studio往往非常混乱,即访问代码编辑器的设置与访问报告服务组件的设置不同,与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 vs. ??
苹果的文档干净、写得好、更新及时。几乎所有的类都会包含示例项目的链接。任何复杂类的文档都包含示例代码,最复杂的类和框架都有广泛的书面文档,总是用清晰易懂的英语编写。
命名空间使Objective-C成为更好的语言有很多原因,但我喜欢在苹果的文档中搜索“NSString”总是能返回我想要的页面。
最重要的是,在使用文档时,你不必浏览其他苹果产品的广告。:-D
4 - 工具支持:调试、分析、测试等。

我非常喜欢我使用过的苹果工具,但由于从未使用过微软的工具,我无法评论两者之间的任何区别。

5 - 知识库:当你遇到问题时,是否容易从任何人那里获得帮助?有很多书吗?(在Windows开发中,有Petzold、Richter等)

我在解决Visual Studio问题时遇到了很多麻烦。然而这并不是一个公平的比较,因为我们在工作中使用的是旧版本的VS。当我在Google上寻找VS问题的答案时,我通常会进入Experts-Exchange或一些古老的微软博客。当我在Google上寻求关于Xcode/OS X问题的帮助时,我通常会进入StackOverflow或其中许多写得很好且更新的Cocoa博客之一。毫不奇怪,我对我的OS X/Xcode体验更加满意。

此外,在进行OS X / iPhone开发时,我通常能够在谷歌帮助查询之间更长时间地工作。一致的类接口,精心编写的文档和解释你做错了什么以及如何修复错误的错误消息意味着我很少需要请求帮助来解决我遇到的问题。在Visual Studio中工作并非如此。请谨慎对待此事,因为我已经是OS X开发人员5年以上,并且在Visual Studio中工作不到1年。

6-移动应用程序:iPhone vs. Windows Mobile

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


1

我试图尽可能客观地保持答案,严格关注事实。

1 - IDE:Visual Studio vs. xcode

仅从功能集方面考虑,大多数开发工具功能现在都非常标准。基础功能,如代码高亮、调试器、分析器等,在每个平台上都可以使用。一些工具具有其他工具中没有的功能,但基本功能水平在两个平台之间相当稳定。

2 - API:Win32 API(包括本机基于C的Win32 API、MFC、C#)和Cocoa(主要是Objective-C)

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

3 - 文档:MSDN vs. ??

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

4 - 工具支持:调试、分析、测试等。
两个套件都包含了相应的工具,如调试器、分析器、测试框架等。
5 - 知识库:当你遇到问题时,是否容易从任何人那里获得帮助?有很多书吗?(在Windows开发中,有Petzold、Richter等)
总的来说,我猜测Windows开发世界的出版书数量超过Mac开发。尽管如此,仍然有一些非常好的Mac开发书籍。对于新手开发者来说,Aaron Hillegass的"Cocoa Programming for Mac OS X"被认为是主要参考资料之一。
6 - 移动应用程序:iPhone vs. Windows Mobile 我没有开发Windows Mobile的经验,但我认为两者的工具链相当相似,因为每个人都会“借鉴”彼此的想法。
所有这些都说了,Mac为开发Mac和iPhone平台提供了全面的开发环境,就像Windows为开发Windows和Windows Mobile平台提供了全面的开发环境一样。一个主要的区别是标准的Mac开发工具链已经随着你的Mac一起提供了。你不需要再购买其他东西(除非你要开发iPhone平台,那么你需要购买iPhone开发者计划订阅)。

0
  1. 工具支持

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


0

Mac OS X 胜过 Windows 的几个方面:

  • 性能工具(Shark、Instruments 等)- 在 Windows 上没有任何接近的工具(除了可能是英特尔的 VTune,但它远不如 Shark 功能强大)
  • 所有 Apple 工具都是免费的

0

继保罗所说的之后:

我使用Eclipse和偶尔的NetBeans进行跨平台开发 - 在Mac和PC上它们都(大多数情况下)工作相同。

由于OSX具有BSD后端,因此您可以通过终端访问通常的Unix工具集以运行shell脚本和其他好用的命令行工具。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接