20 世纪 80 年代末,布莱德• 确斯(Brad…Cox)发明了 Objective-C 并创建了公司 Stepstone。后来 NeXT…Software 公司获得了 Objective-C 语言的授权,1996 年苹果公司宣布收购 NeXT 公司,拥有了 Objective-C 语言的所有权。Objective-C 自身的规范是公开的,编译器也是开源的。 NeXTstep 公司的 Objective-C 的编译器是基于 GUN 的 gcc 编译器扩展而来的。后来 NeXTstep 公司又 把这些扩展贡献出来,所以现在的 gcc 是能够编译 Objective-C 程序的。但是 gcc 和 Cocoa 使用不同的类 库,所以本书中的例子程序无法在 gcc 环境下执行。 因为 gcc 的授权问题,很多开源社区把编译器由 gcc 变为了 llvm。苹果公司也为 LLVM(http://llvm. org/)项目提供了支援,为 clang 增加了 Objective-C 的新功能(例如,ARC 自动引用技术等)。 苹果公司的 Cocoa 并没有开源,但 OPENSTEP(Cocoa 的基础)被 NeXT 公司开源了(OpenStep 是 一个开放的操作系统的规范,OPENSTEP 是基于 OpenStep 规范的操作系统的名字,由 NeXT 公司开发)。 OpenStep 在自由软件基金会的实现叫作 GNUStep(http://www.gunstep.org/)。这个项目的界面采用 了 OPENSTEP 风格,并提供了两个相当于 Mac…OS…X…Foundation 和 Application…Kit 的主要程序库,应用程 序使用 Objective-C 来编写。GUNStep 可运行在 Unix 系和 Windows 上,也有人尝试着把 Cocoa 的应用程 序移植到 GUNStep 上面。