6

我是一名 Windows(本机,而不是 .NET)程序员,我想将应用程序移植到 Mac。

实际上,我相信它会更像是一个重写,因为原来的依赖于许多 activex 控件。

由于我一生中从未使用过 Mac,因此我需要一些指导。哦:-)

a) 你会推荐什么书来从 Win32 迁移到 Mac OS?
b) 有什么类似于 Mac 的 Delphi (RAD) 的吗?
c) 谁能推荐(或不推荐)Lispworks(www.lispworks.com)?
d) 有没有类似于 Windows 市场的 3rd 方 COM 组件(所以我不必编写所有内容)?
e) 还有什么我应该了解的 Mac 市场吗?
f) 哦,顺便说一句,我应该买什么 Mac?O:-)(必须是笔记本电脑)

提前致谢

4

5 回答 5

9

我已经向几位有 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 都适合开发,至少在你开始的时候是这样。

于 2009-09-29T13:44:17.847 回答
2

如果您熟悉 C,您可能想学习 Objective C,因为它是 Mac 的“原生”编程语言。它也是您编写 iPhone 应用程序所必须使用的。Cocoa 是 Apple 的主要 API,其中包含许多您正在寻找的工具。

a)阅读此主题以获取书籍推荐:https ://stackoverflow.com/questions/7571/cocoa-and-objective-c-resources

b) Apple 制作 Xcode 用于开发。当然有更好的,但也不错。

d) Cocoa 是 Apple 的主要 API,它为网络提供像 CFNetwork 这样的“核心”服务。还有核心数据、核心音频、核心动画、核心图像、核心位置……在这一切之下,OSX 是 Unix,因此您可以访问许多 unix/linux 库。

e) iPhone 是 Mac 市场的重要组成部分。iPhone 和 OSX 的开发环境没有什么不同,所以你可以同时学习。

f) 对于大多数开发来说,任何 Mac 都足够了。如果您想要一台笔记本电脑,这实际上是屏幕尺寸和价格的问题。但我会推荐至少 15 英寸的屏幕。您不需要为更快的 CPU 花费额外费用,但您可能想要获得更大的硬盘驱动器。

于 2009-09-29T13:39:05.690 回答
1

如果您已经使用 C 和/或 C++ 完成了本机 Windows 编程,您可能会更轻松地将应用程序迁移到 C#/.Net,然后使用 Mono 在 Mac 中运行它。至少一些可用的第三方 .Net 组件将在 Mono 上运行(请参阅http://www.mono-project.com/Third_Party_Controls_Status)。

我不知道你应该买什么 Mac - 我建议买一台漂亮的。

于 2009-09-29T13:00:54.360 回答
1

e) 它的市场很小。

f) iMac。编辑:因为它说笔记本电脑 - Macbook Pro 13 很划算。

于 2009-09-29T13:12:41.530 回答
1

一种) ...

b) 您可以使用 Python 和 wxPython 并成为跨平台。Python 默认包含在 Mac OS X 中。

C) ...

d) 我确定有,但我不能告诉你更多。如果您使用 Python,您可以免费获得大量第三方库。

e) 他们不接受友好的外星 GUI 指南

Word 6.0 于 1993 年推出,被广泛认为是 Mac 上最差的 Word 版本,因为它基于与 Word 6.0 for Windows 相同的代码库。这意味着它看起来和工作起来更像是 Windows 软件,而不是 Macintosh 程序。Mac 用户非常兴奋,以至于微软实际上发布了 Word 5.1 降级版本,以向不满意的 Word 6.0 所有者发布。

f) 大多数情况下,任何 iMac 都足以进行编程。选择您最喜欢并拥有大量 RAM 的那个。

于 2009-09-29T13:24:42.720 回答