【发布时间】:2010-12-03 03:01:28
【问题描述】:
我应该使用 Mono + c# 吗?或者我最好学习和使用目标c? 谢谢
【问题讨论】:
我应该使用 Mono + c# 吗?或者我最好学习和使用目标c? 谢谢
【问题讨论】:
【讨论】:
这将是一个有点意见的问题,但我认为你最好还是坚持使用 C#。切换到 Objective-C 会增加您必须学习的新信息量,然后才能在您的环境中高效工作。
即使与 C# 保持一致,您仍然必须...
虽然使用 C# 有一些缺点
但我的直觉是,与学习一门新语言的成本相比,这些成本微不足道。
编辑
我想澄清一下我对学习一门新语言的想法。我认为学习语言很有趣,并且是程序员生活中必不可少的一部分。您应该至少每年尝试一次新语言。今年我在玩 F#。
我反对这个问题的唯一原因是 OP 说“最简单的方法......”。学习一门新语言确实需要额外的时间并且需要更多的努力,所以我认为它更容易坚持使用 C#。
【讨论】:
如果您希望能够使用 iPhone 的所有 API 并能够访问本地代码调试,那么您可能会想要学习 Objective C。
不过,Mono-Touch 以低廉的价格让您可以使用 C# 开发 iPhone 应用程序,但目前缺乏调试支持。泛型和其他高端功能的某些用途也有限制。 Here's a link to the limitations.
此外,要使用 Mono-Touch,您仍然需要设置 Xcode 和 Mac 环境来为 iPhone 开发。不用说,如果您真的想将任何东西部署到实际设备上,您需要加入 Apple iPhone 开发者计划。
【讨论】:
这可能会冒犯一些人,但老实说,如果你要进行任何认真的开发,你应该学习 Objective-C。在 iPhone 开发中不了解 Objective-C 只会成为一个障碍。您将无法理解许多示例;您必须处理 Mono 的怪癖,而如果您具备 Objective-C 的工作知识,您可以从平台文档中获得更多信息。
就我个人而言,我不理解这样的立场,即增加您需要的信息量以支持在平台的本地语言上使用 Mono。这对我来说似乎有些适得其反。我认为如果这是一个非常昂贵的命题(学习一门新语言),那么花一些时间在基本的编程概念上可能是值得的,这样学习新语言是一个相当便宜的命题。
【讨论】:
Monotouch 现在对您来说更容易了。但以后会更难。
例如,当你需要测试新种子但由于某种原因破坏了 MonoTouch 时会发生什么?
通过坚持使用 Mono,任何时候您在查找框架的资源时,您都必须在心理上将其转化为您将如何在 Mono 中使用它们。您的应用程序二进制文件会更大,在使用 Objective-C 几个月后,您的开发时间不会快很多,而其他应用程序开发人员将比您拥有更多优势,因为他们使用的是本机平台。
另一个考虑因素是您希望使用 C#,因为您比 Objective-C 更熟悉该语言。但 iPhone 的绝大多数学习曲线不是 Objective-C,而是框架——你也必须用 C# 调用。
对于任何平台,您都应该使用直接表达该平台设计理念的平台——在 iPhone 上,即 Objective-C。反过来想一想,如果一个习惯使用 GTK 编程的 Linux 开发人员想要编写 Windows 应用程序,您会认真建议他们不要使用 C#,而是坚持使用 GTK,因为这样做对他们来说“更容易”吗?
【讨论】:
我认为 MonoTouch 是可行的方法,但请记住,它仍处于起步阶段。我能够安装 Mono 开发工具并让 MonoDevelop IDE 工作,但当前状态下的 IDE 速度非常慢,几乎无法使用;至少在 Mac OSX 的 Snow Leopard 上运行。我做了一些谷歌搜索,看起来这是一个已知问题,但已在 MonoDevelop 的前沿存储库中修复。我认为 Novell 正在做一些事情,但我也觉得您将在整个框架仍处于早期阶段时与它搏斗。
所以底线是,如果你想走 C#/MonoTouch 路线,请准备好因为框架的不稳定或不完整而进行大量的腿脚工作和鬼追。我认为这适用于任何新框架。
【讨论】:
我发现这很有趣Podcast
【讨论】: