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

时间:2010-01-29 20:12:42

标签: windows visual-studio cocoa xcode macos

我已经使用Visual Studio(VC ++)和Windows API很长一段时间了,并且非常熟悉Linux工具链,但没有Mac OS X开发经验。

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

  1. IDE:Visual Studio与xcode
  2. API:Win32 API(包括基于C的本机Win32 API,MFC,C#)和Cocoa(主要是Objective-C)
  3. 文档:MSDN vs. ??
  4. 工具支持:调试,分析,测试等
  5. 知识库:当您遇到问题时,是否可以轻松获得任何人的帮助?有很多书吗? (在Windows开发中,有Petzold,Richter,......)
  6. 移动应用:iPhone与Windows Mobile
  7. 我担心这个话题会引起争议。但是,我想知道Mac与Windows相比如何提供开发环境。

5 个答案:

答案 0 :(得分:1)

我试图尽可能保持非主观的答案,严格关注事实。

  

1 - IDE:Visual Studio与xcode

仅仅查看功能集,大多数开发人员工具功能现在非常标准。每个都提供基础知识,代码突出显示,调试器,分析器等。有些工具具有其他工具所没有的功能,但功能的基本级别在两个平台上相当稳定。

  

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

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

  

3 - 文档:MSDN vs. ??

Apple也有自己的文档集。这是Apple参考库。 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与Windows Mobile

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

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

答案 1 :(得分:1)

  

1 - IDE:Visual Studio与xcode

也许不足为奇的是,Visual Studio非常像Windows,Xcode非常像Mac。 Xcode提供了一个非常干净的界面,只需极少量的非常大的按钮。 Visual Studio中的代码自动完成优于Xcode,但我相信最新版本的Xcode已经大大缩小了这一差距。 Xcode非常适合以一致的方式使用工具栏和附件面板,因此如果您习惯使用Interface Builder中的检查器面板,您也可以使用Pages,Numbers,Keynote,iWeb等中的检查器面板。 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. ??

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

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

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

  

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

我对我使用的Apple工具非常满意,但从未使用过微软的工具,我无法评论两者之间的任何差异。

  

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

我在获取有关Visual Studio问题的帮助方面遇到了很多麻烦。不过,这不是一个公平的比较,因为我们正在使用我工作的旧版VS.当我谷歌在VS问题上给出答案时,我通常会在专家交流或一些古老的MS博客上结束。当我在Google上寻求Xcode / OS X问题的帮助时,我通常最终会使用StackOverflow或其中一个编写良好且最新的Cocoa博客。我对OS X / Xcode体验感到非常满意并不奇怪。

此外,在进行OS X / iPhone开发时,我通常能够在Google-help-queries之间工作更长时间。一致的类接口,编写良好的文档和错误消息,解释你做错了什么以及如何解决它意味着我很少需要帮助来找出我遇到的问题。这不是我在Visual Studio中工作的经验。以此为基础,因为我已经成为OS X开发人员已有5年多,并且一直在使用Visual Studio for< 1.

  

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

从未接触过Windows Mobile,所以我无法发表评论。

答案 2 :(得分:0)

Mac OS X获胜的几个领域:

  • 性能工具(鲨鱼,乐器等) - 在Windows上甚至没有任何东西(除了英特尔的VTune之外,它远没有鲨鱼那么实用)
  • 所有Apple工具都是免费的

答案 3 :(得分:0)

再加上保罗说的话:

我使用Eclipse& amp;进行跨平台开发。偶尔NetBeans - 并且在Mac上与PC一样(大多数)都是相同的。

具有BSD后端的OSX使您可以访问通常的unix工具集,其中包含用于运行shell脚本和其他良好命令行的终端。

答案 4 :(得分:0)

  
      
  1. 工具支持
  2.   

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