我是一个Windows (原生的,不是.NET)程序员,我想把一个应用程序移植到Mac上。
实际上,我认为它将更多地重写,因为原始的依赖于许多activex控件。
因为我这一生都没有用过Mac,所以我需要一些指导。O:-)
a)对于从Win32迁移到Mac,您会推荐哪本书?
b) Mac上有没有类似于Delphi (RAD)的东西?
c)有人能推荐(或不推荐) Lispworks (www.lispworks.com)吗?
d)有没有类似于Windows市场的第三方COM组件(这样我就不用写所有东西了)?
e) Mac市场还有什么我应该注意的吗?
f)哦,顺便说一句,我应该买什么Mac?O:-) (必须是笔记本电脑)
提前感谢
发布于 2009-09-29 13:44:18
我曾经教过几位有Windows经验的程序员Cocoa编程。你可能会发现关于这个主题的previous post很有用。
可可是一种与MFC及其同类非常不同的思维方式。如果你花时间学习可可如何处理事情并适应它的思维方式,你会做得更好,而不是试图找到在ObjC中实现你当前思维方式的最快方法。为Mac编写MFC风格的代码是可能的,但如果这样做,您将始终与框架抗争。我见过很多Windows开发人员都在为此而苦苦挣扎。
学习可可最好的书是Cocoa Programming for Mac OS X。假设您是一名具有扎实的OOP背景的C++开发人员,那么这本书就是开始。如果你的面向对象背景有限,那就从Programming Objective-C 2.0开始吧。
一旦你理解了这些模式,你会惊讶于Objective-C编码的速度有多快。在我的经验中,与C++相比,它真的是令人惊叹。现在有更多像REALbasic这样的类似RAD的系统,你现在可以用Ruby语言开发Cocoa应用程序,这可能会更快一些。但在苹果电脑市场上,ObjC确实没有替代品。在不使用Mac框架的情况下,很难开发出像Mac应用程序一样的应用程序,而且Mac用户往往比Windows用户更挑剔。
我没有LispWorks的背景,但LISP似乎不适合开发Mac应用程序所熟知的那种丰富的UI。我喜欢LISP (实际上很喜欢),但是函数式编程的“无副作用”哲学似乎与大多数富UI目标不一致(特别是当Mac变得越来越以动画为中心时)。如果说有什么不同的话,那就是Mac编程正在转向声明式编程,而不是函数式编程(Core Animation和Grand Central Dispatch有很多声明性概念正在悄悄进入)。
没有像Windows那样大的第三方组件市场。其中一些原因是Cocoa已经提供了MFC没有的丰富的组件集,而且行为良好的Mac应用程序应该使用这些组件,这样您就可以像所有其他Mac应用程序一样工作。用于.NET的RadControls (非常好的工具包)中的商业组件肯定没有什么市场。但是有相当多的免费组件具有灵活的许可证(通常基于麻省理工学院)。下面是我最喜欢的几个:
的示例
正如我之前提到的,Mac用户对他们的用户界面很挑剔。这比Windows用户要多得多。他们希望这些东西能被打磨得更好,他们希望这些东西能与所有让Mac变得更好的小东西结合在一起。这意味着拖放,Spotlight,服务,Applescript,Expose,QuickLook,集成的拼写检查等等。如果你不使用内置的框架,你很难做好所有这些事情。这就是为什么我建议新的Mac开发人员从一开始就开始学习框架。
对于Mac来说,如果你有一堆硬件(如键盘和显示器),那么Mac Mini就是一个很好的廉价盒子。如果你想要一体机,iMacs是很棒的;如果你喜欢可移植性,任何MacBook都是合适的。今天的市场上没有一个Mac不是一个完美的开发盒。显然,如果你做了很多工作,8核的Mac Pro会让编译速度更快,但我已经在13英寸的MacBook上做了很多专业开发。如果你想尽可能便宜地进入,那就去找refurbished或二手的(我喜欢我翻新的Mac Mini)。任何基于英特尔的Mac都适合开发,至少在你开始的时候是这样。
发布于 2009-09-29 13:39:06
如果你熟悉C语言,你可能想学习Objective C,因为它是Mac的“本机”编程语言。它也是您编写iPhone应用程序时必须使用的工具。Cocoa是Apple的主要API,它将拥有许多您正在寻找的工具。
a)阅读此帖子以获取图书推荐:https://stackoverflow.com/questions/7571/cocoa-and-objective-c-resources
b) Apple为在中开发而开发Xcode。当然还有更好的,但也不坏。
d) Cocoa是苹果的主要应用程序接口,它为网络提供“核心”服务,如CFNetwork。还有核心数据,核心音频,核心动画,核心图像,核心位置,...在这一切之下,OSX是Unix,因此您可以访问许多unix/linux库。
e) iPhone是苹果电脑市场的重要组成部分。iPhone和OSX开发环境差别不大,因此您可以同时学习这两种开发环境。
f)任何Mac对于大多数开发来说都是足够的。如果你想要一台笔记本电脑,这实际上是一个屏幕尺寸和价格的问题。但我推荐至少15英寸的屏幕。你不需要为更快的CPU花额外的钱,但你可能想要一个更大的硬盘。
发布于 2009-09-29 13:00:54
如果你已经用C和/或C++完成了你的本地视窗编程,你可能会更容易将你的应用程序迁移到C#/.Net,然后在Mac上使用Mono运行它。至少一些可用的第三方.Net组件可以在Mono上运行(参见http://www.mono-project.com/Third_Party_Controls_Status)。
我不知道你应该买什么Mac --我建议你买一个漂亮的。
https://stackoverflow.com/questions/1492322
复制相似问题