Objective-C

前言 Objective-C, 本文简称 OC, 该语言并不是开源语言

  • 不开源
  • 面向对象
  • 动态语言

在学习本教程前, 默认认为你有C或者C++语言的基础

简介 Objective-C是一种通用、高级、面向对象的编程语言。它扩展了标准的ANSI C编程语言,将Smalltalk式的消息传递机制加入到ANSI C中。目前主要支持的编译器有GCC和Clang(采用LLVM作为后端)。

Objective-C的商标权属于苹果公司,苹果公司也是这个编程语言的主要开发者。苹果在开发NeXTSTEP操作系统时使用了Objective-C,之后被macOS、iPadOS、watchOS和iOS继承下来[2]。现在Objective-C与Swift是OS X和iOS操作系统、及与其相关的API、Cocoa和Cocoa Touch的主要编程语言[3]。

历史 Objective-C 主要由 Stepstone 公司的布莱德·考克斯(Brad Cox)和汤姆·洛夫(Tom Love)在1980年代发明。

1981年,考克斯和洛夫还在 ITT 公司技术中心任职时,他们接触到了 Smalltalk。考克斯当时对软件设计和开发问题非常感兴趣,他很快地意识到 SmallTalk 在系统工程构建中具有无法估量的价值,但同时他和洛夫也明白,目前 ITT 公司的电子通信工程相关技术中,C 语言被放在很重要的位置。

于是考克斯撰写了一个 C 语言的预处理器,打算使 C 语言具备些许 Smalltalk 的本领。他很快地实现了一个可用的 C 语言扩展,此即为 Objective-C 语言的前身。到了 1983 年,考克斯与洛夫合伙成立了 Productivity Products International(PPI)公司,将 Objective-C 及其相关函数库商品化贩售,并在之后将公司改名为 StepStone。1986年,考克斯出版了一本关于 Objective-C 的重要著作《Object-Oriented Programming, An Evolutionary Approach》,书内详述了 Objective-C 的种种设计理念。

1988年,斯蒂夫·乔布斯(Steve Jobs)离开苹果公司后成立了 NeXT Computer 公司,NeXT 公司买下 Objective-C 语言的授权,并扩展了著名的开源编译器 GCC 使之支持 Objective-C 的编译。NeXT 公司基于 Objective-C 开发了 AppKit 与 Foundation Kit 等函数库,作为 NeXTSTEP 的的用户界面与开发环境的基础。虽然 NeXT 工作站后来在市场上失败了,但 NeXT 上的软件工具却在业界中被广泛赞扬。这促使 NeXT 公司放弃硬件业务,转型为销售 NeXTStep(以及 OpenStep)平台为主的软件公司。

1992年,自由软件基金会的 GNU 开发环境增加了对 Objective-C 的支持。1994年,NeXT Computer 公司和Sun Microsystem 联合发布了一个针对 NEXTSTEP 系统的标准典范,名为 OPENSTEP。OPENSTEP 在自由软件基金会的实现名称为 GNUstep。1996年12月20日,苹果公司宣布收购 NeXT Software 公司,NEXTSTEP/OPENSTEP 环境成为苹果操作系统下一个主要发行版本 OS X 的基础。这个开发环境的版本被苹果公司称为Cocoa。

2005年,苹果电脑雇用了克里斯·拉特纳及 LLVM 开发团队[4],clang 及 LLVM 成为苹果公司在 GCC 之外的新编译器选择,在 Xcode 4.0 之后均采用 LLVM 作为默认的编译器。最新的 Modern Objective-C 特性也都率先在 Clang 上实现。

文章来源

摘于github开源教程《禅与 Objective-C 编程艺术》, 该书是由大佬翻译而来 翻译作者:

林翔宇

庞博

Kevin.Xiao

原文在此 原文作者

索引目录