学习 Object-C: 简史
对于一门语言的历史,我认为写一本书可能都不为过,关键是看你如何介绍和表达。当然每一个人的理解也大相径庭。本文阐述也仅仅只是冰山一角,如果需要深入了解,自己可能需要多花费一些心思。
这里也不会给大家说太多的背景,对于编程来说好像也不是必须,所以我认为大概了解就可以。
说起Objective-C,它是苹果公司用于开发MAC OS X 和IOS 设备的主要编程语言。从语言命名来理解,必然会想到C语言,苹果官方定义是:superset of the C(超集) 其实可以理解为C语言的一种扩展,大家都知道C语言是面向过程的,一堆函数,可阅读性不好。而Objective-C则是面向对象的(object-oriented)语言,它在C语言的基础上扩展,继承了很多C语言的特性,比如一个很重要的概念:指针。当然Objective-C的诞生,还有一种语言的功劳,那就是SmallTalk-80,Objective-C也是借鉴了它的很多语法风格。有兴趣的可以去详细了解下。
我们再来看看苹果公司是如何发展Objective-C语言,先给大家看一张图:
这是NeXT(NeXT也是上任苹果计算机CEO,Steve Jobs在1985年离开苹果计算机后所创立的公司)研发的一种操作系统NeXTSTEP。后来,在1996年,苹果公司出于战略考虑收购了NeXT公司,自然乔帮主又回到了苹果公司。基于NeXTSTEP code library,苹果公司把它集成到了自己的系统中去,也就是现在的MAC OS X,可以说NeXTSTEP 为苹果mac系统的发展奠定了基础。有了MAC 这个强大系统的支持,苹果的手机系统也发展起来,也就是现在的IOS,其实它是MAC 系统延伸出来的,所以它的大部分code还是来自于NeXTSTEP code libary。那NeXTSTEP 核心code是什么呢? 就是我们今天我们说的Objective-C。苹果对OC语言开始扩展重写,增强了OC的语法功能,定义了OC版本2.0,即Objective-C 2.0。由于苹果产品的火热,后来OC便很快成为了开发MAC 和IOS 应用的编程语言,越来越多的开发者学习了该语言,老实说,OC的火热完全是苹果产品带动起来的,用户量大,开发者才去投入。个人感觉OC的语法风格相对于Java C#还是不够简洁。
题外话:有人说,学习Objective-C之前是不是需要学习C语言?我觉得这个还是有必要去了解的。当然也不一定非要从头到尾把C看一遍,做项目等。可以这样说,你可以初期只学习Objective-C,不看C语言,也同样可以。为什么这么说呢,学习本身就是一件很漫长的事情,关注的点太多,容易打消积极性,不知道大家有没有这种感觉,当你去尝试做一件事情的时候,发现做这件事情有很多条件,然后当你在去一个一个去完成这些条件的时候,时间已经很长了,精力也消耗很多,最后可能也不知道自己到底要做什么,容易迷茫,最终会有一种挫败感,久而久之自信心也就没了。当然,主要还是看你自己的实际情况,比如时间,精力等等。
建议还是直接去看Objective-C,在学习的过程中,有些概念不清楚的,可以再去看C语言。即用既查,反复交错进行。
后续我会一章一节的把OC语法详细的介绍一遍,如环境准备,Xcode等。基本上快的两周就可以掌握个大概,至少你能看懂code吧。还是那句话,写代码的捷径就是多练习。
像上面提的,一门语言的历史是很难三言两语说清楚的,大家如果有兴趣可以自己查阅。
这里我提供一些链接供大家参考:
Objective-C (维基百科比较全面) Apple Objective-C(苹果官方文档) 建议还是多看官网文档,比较全面系统。