看来 Cocoa 似乎是 Objective-C 的主要平台。GCC(Xcode 使用)支持 Objective-C,因此它必须在广泛的平台上可用。
是否有任何值得注意的跨平台项目使用 Objective-C 而不是 Cocoa(或其开源表亲 GNUStep)?它真的在苹果生态系统之外使用吗?
看来 Cocoa 似乎是 Objective-C 的主要平台。GCC(Xcode 使用)支持 Objective-C,因此它必须在广泛的平台上可用。
是否有任何值得注意的跨平台项目使用 Objective-C 而不是 Cocoa(或其开源表亲 GNUStep)?它真的在苹果生态系统之外使用吗?
Objective-C 在科学和金融服务社区也很流行。银行业中仍然部署了许多基于 Objective-C 的应用程序,主要是在交易分析方面。一位朋友在基于 Objective-C 的分析和交易引擎编写近百万行代码,为此他们从头开始编写了自己的类层次结构。
在某一时刻,更流行的 Linux 窗口管理器之一是用 Objective-C 编写的。那是几年前的事了,现在可能不再如此。
LLVM 编译器还编译 Objective-C,包括完全支持 Blocks。它也很便携。
还有 David Stes 的Portable Object Compiler。它将 Objective-C 编译为 C 并使用一个类层次结构,该层次结构非常直接基于 StepStone 的原始 ICPak 类层次结构。
看来您要问的是是否曾经在没有 Cocoa、GNUstep、Cocotron 或任何类似它们的 API 的情况下使用 Objective-C。
答案基本上是否定的。如果没有像 Cocoa(或 GNUstep 等)这样的 API,Objective-C 就不是很有用。例如,没有 NSObject,retain
甚至release
不会存在。这些 API 中内置了大量非常重要的特性,因此在没有其中任何一个的情况下使用 Obj-C 有点毫无意义。
是的,肯定有。我能想到的就是Cocotron。将 AppKit 移植到 Windows 的努力。
除此之外,Objective-C 可以在 gcc 将运行的任何平台上使用。您不会拥有 OS X 或 iPhone 上的 Cocoa 中可用的丰富框架,尽管正如您所提到的,GNUStep 做得相当不错。