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,因此无法发表评论。