我已经向几位有 Windows 经验的程序员教授 Cocoa 编程。您可能会发现以前有关该主题的帖子很有用。
Cocoa 是一种与 MFC 及其同类产品截然不同的思维方式。如果你花时间学习 Cocoa 如何处理事物并适应它的思维方式,而不是试图找到最快的方法来在 ObjC 中实现你当前的思维方式,你会做得更好。可以为 Mac 编写 MFC 风格的代码,但如果你这样做了,你将永远与框架作斗争。我看到很多 Windows 开发人员都在为此苦苦挣扎。
学习 Cocoa 最好的书是Cocoa Programming for Mac OS X。假设您是具有扎实 OOP 背景的 C++ 开发人员,这本书就是您的入门书籍。如果您的面向对象背景有限,请从Programming Objective-C 2.0开始。
一旦你理解了这些模式,你会惊讶于 Objective-C 编码的速度有多快。根据我的经验,与 C++ 相比,它确实令人惊叹。有更多类似 RAD 的系统,例如 REALbasic,您现在可以使用 Ruby 开发 Cocoa 应用程序,这会更快一些。但在 Mac 市场上确实没有 ObjC 的替代品。如果不使用 Mac 框架,很难制作出像 Mac 应用程序一样工作的应用程序,而且 Mac 用户往往比 Windows 用户对这些事情更挑剔。
我没有 LispWorks 的背景,但 LISP 似乎是一种糟糕的语言,用于开发 Mac 应用程序所熟知的那种丰富的 UI。我喜欢 LISP(实际上非常喜欢),但函数式编程的“无副作用”理念似乎与大多数丰富的 UI 目标不一致(尤其是随着 Mac UI 变得越来越以动画为中心)。如果有的话,Mac 编程正在朝着声明式编程而不是函数式编程发展(Core Animation 和 Grand Central Dispatch 有很多声明式概念正在蔓延)。
没有像 Windows 那样大的第三方组件市场。其中一些是因为 Cocoa 已经提供了如此丰富的组件集,而 MFC 没有,并且因为表现良好的 Mac 应用程序应该使用这些组件,以便您像所有其他 Mac 应用程序一样工作。对于 .NET 的 RadControls (非常好的工具包,那个),商业组件的市场肯定很小。但是有很多不错的免费组件具有灵活的许可证(通常基于 MIT)。我最喜欢的几个:
正如我之前提到的,Mac 用户对他们的 UI 很挑剔。比 Windows 用户要多得多。他们希望事物得到完善,并且希望事物能够与所有使 Mac 变得更好的小东西集成在一起。这意味着拖放、Spotlight、服务、Applescript、Expose、QuickLook、集成拼写检查等。如果不使用内置框架,很难正确完成所有这些事情。这就是为什么我建议新的 Mac 开发人员从头开始学习框架的原因。
对于 Mac,如果您有一堆硬件(如键盘和显示器),那么 Mac Mini 是一个不错的便宜盒子。如果您想要一体机,iMac 非常棒,如果您喜欢便携性,任何 MacBook 都是合适的。当今市场上没有一款 Mac 不是完美的开发盒。显然,如果你做很多工作,8 核 Mac Pro 会使编译速度更快,但我在 13 英寸 MacBook 上做了很多专业开发。如果你想尽可能便宜地进入,那就找翻新的或使用过的(我喜欢我翻新的 Mac Mini)。任何基于 Intel 的 Mac 都适合开发,至少在你开始的时候是这样。