Objective-C
接触一门新语言,先要了解它的历史。
此篇博文主要是了解下什么是Objective-C,本人主要学习的Java,以前没听说过Objective-C,但是多学一点总是没有坏处,所以就从头开始咯。
热心网友提供了很多资料。
纵向看来,Apple公司领导着Objective-C语言的发展与维护,包括Objective-C运行时,Cocoa/Cocoa-Touch框架以及Objective-C语言的编译器。
什么是Objective-C
什么是Objective-C呢?网上查了一下,百科词条它是这样说的:
Objective-C,通常写作ObjC或OC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。
GCC与Clang含Objective-C的编译器,Objective-C可以在GCC以及Clang运作的系统上编译。
好多术语看不懂,没关系,重点知道:它是扩充C的面向对象编程语言,主要使用在Mac OS X系统中,Objective-C的流行归功于iPhone的成功。编写iPhone应用程序的主要编程语言是Objective-C。就可以了。
具体的大家点进去百科词条的链接看一下:Objective-C_百度百科上面已经把这门语言的历史和内容讲的很清楚了。 继续打开一个网页,出现了Objective-C入门教程,以下资料查自:Objective-C入门教程:
先讲了什么是Objective-C,和百度百科查的差不多。
Objective-C 是一种简单的计算机语言,设计为可以支持真正的面向对象编程。
Objective-C 通过提供类定义,方法以及属性的语法,还有其他可以提高类的动态扩展能力的结构等,扩展了标准的 ANSI C 语言。类的语法和设计主要是基于 Smalltalk,最早的面向对象编程语言之一。
对象的使用和对象对象架构是 iPhone 程序设计的基础,理解他们如何交互对创建你的程序非常重要。
最后该网站还提供了一个链接:Objective-C参考链接。不知道为什么这个链接我加载不出来。
Objective-C的历史
接下来的资料查自简书上的热心网友:Objective-C 基础,他对Objective-C是这样理解的:
Objective-C 是一种通用、高级、面向对象的编程语言。它扩展了标准的 ANSI C 编程语言,将 Smalltalk 式的消息传递机制加入到 ANSI C 中。目前主要支持的编译器有 GCC 和 Clang。
这里也讲到了Objective-C的历史:
历史
Objective-C 主要由 Stepstone 公司的 Brad Cox 和 Tom Love 在 19 世纪 80 年代发明。
1981年 Brad Cox 和 Tom Love 还在 ITT 公司技术中心任职时,接触到了 SmallTalk语言。Cox 当时对软件设计和开发问题非常感兴趣,他很快地意识到 SmallTalk 语言在系统工程构建中具有无法估量的价值。
1983 年,Cox 与 Love 合伙成立了 Productivity Products International(PPI)公司,将 Objective-C 及其相关库商品化贩售,并在之后将公司改名为StepStone。
1988年,斯蒂夫·乔布斯(Steve Jobs)离开苹果公司后成立了 NeXT Computer 公司,NeXT 公司买下 Objective-C 语言的授权,并扩展了 GCC 使之支持 Objective-C 的编译,基于 Objective-C 开发了 AppKit 与 Foundation Kit 等库,作为 NeXTSTEP 的的用户界面与开发环境的基础。
1996年12月20日,苹果公司宣布收购 NeXT Software 公司,NEXTSTEP/OPENSTEP 环境成为苹果操作系统下一个主要发行版本 OS X 的基础。
热心网友https://www.jianshu.com/p/7e45eb0fbfc2提供了资料Objective-C的起源。
还有一篇讲了为什么学习Objective-C非常难:http://www.code4app.com/blog-960094-3531.html,中间讲到:
实际上Objective-C是很严格的C语言的超集。而与流行的编程语言风格又差距太大。作为C语言的超集,它增加了很多东西,我们将简单看看它到底增加了什么复杂的东西。
Objective-C是一个很“大”的语言,我是说它的语法很复杂而且又具备弹性。Apple公司已经尽可能减小了Objective-C语言的体积,然而,他们还是添加了一些东西来让Objecive-C表达式更加简单。
Synthesizing properties
Dot-syntax for accessing getters/setters
Garbage Collection
Blocks (closures)
Automatic Reference Counting
Weak references
所以虽然这个语言越来越大了,但是在表达同样的目的使用的代码却越来越简单。
当你去学习Objective-C时,它不仅仅就是一个框架, 一个运行时或者一个编译器;而是它们全部。还有个很重要的部件就是 Automatic Reference Counting(使用后无法直接调用dealloc方法),这玩意会让你使用Cocoa/Cocoa-Touch编程时更加方便。
紧密耦合系统代码设计是Objective-C独有的。其他语 言比如在.Net框架下运行的Iron Python。以及一大堆运行在JVM的非Java语言,比如Clojure。甚至Ruby以及Rails都是两个不同的项目。当你打算使用其他语言配合 Cocoa/Cocoa-Touch以及Objective-C运行时时。你唯一的选择就是Mac Ruby。
|
请发表评论