来自 Microsoft 开发团队,我对 Mac 上可用的开发语言/环境有点困惑。除了 Java,我还应该考虑在 Mac 上使用类似 C# 的语言进行开发吗?MS 到 OSX 的转换更喜欢什么,为什么?我追求的是业务级编程策略,而不是游戏或图形,因此应用程序性能不是我选择平台的整体驱动因素。
8 回答
带有 Cocoa API 的 Objective-C 是要走的路。一旦你完成了这些,在 Ruby 和 Python 与 Cocoa API 之间也有桥梁。不过,我强烈建议您首先使用 Objective-C 学习 Cocoa API。
我也刚买了一台 Mac 并且来自 .NET 开发背景。我尝试了一堆不同的语言和环境。如果您要编写 OS X 桌面软件,您将需要使用 Cocoa 和 Interface Builder。IB 没有 Windows 对应物,因为它与 Cocoa 紧密相关。这意味着您将需要同时学习 Cocoa,而通过查看代码来做到这一点并不容易。
Objective-C 是 Mac 的原生语言,它不如 C# 精致。您需要一段时间才能流利地阅读它,因为调用函数看起来不同。在您学习 Cocoa 之前,使用 Python 或 Ruby 代替 Objective-C 只会增加一层复杂性,但之后似乎相当可行。C# via Mono 工作正常,但我不认为整个 Cocoa# 桥都已实现。C# 工具的质量比 Visual Studio 低很多,MonoDevelop 在 Mac 上非常难看。我决定如果我想走这条路,那么我需要学习 Objective-C,但我选择了不同的方向。
如果您正在编写一个网站,那么您将拥有更多的灵活性。整个 Python 和 Ruby 文化都是可用的,尽管在安装一些 Python 库时会遇到一些麻烦。这是我选择的路线,因为我有一些基本的 Python 经验,并且技能几乎 100% 兼容 Linux。iTerm 是比终端更好的客户端。我不喜欢我尝试过的大多数代码编辑器,并从 Smultron 开始,它只不过是一个非常称职的带有语法突出显示的文本编辑器。肯定有很多选择。
无论您如何处理它,您都将花费大量时间学习。我经常偶然发现 Python 语法,但我终于掌握了它。SQLAlchemy (Python ORM) 文档几乎总是有一个打开的浏览器窗口。我也硬着头皮开始使用 Vim(特别是 MacVim),这实际上是一件有趣的事情,因为似乎总有另一个命令可以完全满足您的要求。(例如,我厌倦了去一行,按 $ 到最后,按 a 追加,然后按 enter 开始新行,所以我用 Google 搜索发现我可以按 o。)
Objective-C, C, C++, Java, Ruby, Python, Php, ... 有很多语言/开发环境可供选择,包括 @epatel 所说的通过 Mono 的 C#。我想说语言的选择更多地取决于你正在开发什么,而不是你来自什么平台。
Objective-C 和 Cocoa 是肯定要走的路。开发人员经常会误以为 Objective-c 没有“那么详细”或“没有微调”。但我可以向你保证,它是业内一些最佳应用程序背后的动力源。有一个明显的学习曲线。
我会忘记单声道,它的效果不是很好。分发时,缓慢、错误和 system.drawing/forms 无法正常工作。
使用 c# 我会使用 monomac。您可以使用 c# 访问所有 mac api。这就像一个中途的房子。使用 NSWindow 代替 Forms,使用 NSView 代替控件。您使用图形上下文而不是绘图。缺点是文档有点薄而且成本很高。
只要您愿意使用 Mono,C# 可用于 OS X。对于非 UI 和 Web 的东西,它应该可以正常工作。
对于桌面应用程序开发,我使用 REALbasic。它的语法和对象模型与 Visual Basic 非常相似。
对于业务级编程,我不确定 Cocoa/Objective-C 是否会是最高效的开始;它与 .NET 和/或 Java 完全不同。
在相关说明中,
Silverlight是一种基于 Web 的“类闪存”技术,支持 Windows 和 Mac,您可以使用大多数 .net 语言进行编码。