对大多数人来说,Objective-C都是陌生的,原因在于它的走红过程太短。但透过Objective-C的火爆,我们就不难理解苹果程序商店的应用程序为什么轻易就突破了十万个。

Objective-C的走红过程

TIOBE编程语言排行榜,是业界公认的编程语言的实力榜。2009年8月,Object-C自7月份上升至21位以后,又在8月份打进前二十名。这是一个信号,然而多数业界人士因为不熟悉Objective-C,并没有读懂这个信号意味着什么。

时间过入到2009年10月,这个信号得到了解读。就在这个月,AppStore(程序商店)中的程序数量超过了10万。当时业界认为对于一款手机而言,除了强大的硬件支持以外,最受用户关注的便是后续软件支持。这也是智能手机之所以能够一跃超过非智能手机成为市场宠儿的最大原因。不少专家认同这样一个观点:凭借着为数众多并且力作不断的程序支持,苹果iPhone在后期程序扩展能力方面的优势要明显高于其他品牌产品。

显然,当时的人们更爱从iPhone硬件的角度去解读AppStore的成功。

接下来的问题是,苹果仍将研发出第四代以及后续iPhone产品,同期的程序数量更是为数可观,那么接下来,AppStore的数量上限到底是多少。显然,要想问答这一问题,单从硬件角度考虑,已是远远不够了。因为智能终端已经发展成一个平台,并且这一平台显然在未来的某一天要和PC、笔记本电脑等平台平起平坐。

何为Objective-C

也许相当数量的人,是从2009年8月以后认识Objective-C语言的。但在此之前,Objective-C的发展历史着实有些惊人,因为它诞生于多数人都不知电脑为何物的1986年。

Objective-C是苹果Mac OS X 上开发的首选语言。Mac OS X技术源自NextStep的OpenStep操作系统,而OPENSTEP的软件架构都是用Objetive-C 写成的。这样,Objective-C就顺理成章地成为了Mac OS X上的最佳语言。

1986年,Brad Cox在第一个纯面向对象语言Smalltalk基础上写成了Objective-C语言。这之后,Brad Cox创立了StepStone公司从事Objective-C的推广。1988年,Steve Jobs的NextStep采用Objective-C作为开发语言,1992年GNU GCC编译器中包含了对Objective-C的支持。这以后的相当长时间内,应用Objective-C语言的都是日后编程界的大腕,象Richard Stallman、Dennis Glating等人。

还回到AppStore的数量上限这一问题,如果我们拿Objective-C当做一个参照指标来看,是再合适不过了。

Objective-C的辉煌

时间进入到了2010年5月,Objective-C又给了我们一个惊喜。因为Objective-C历史性地打进了TIOBE编程语言排行榜的前十名。也许会有人对此不以为然,但别忘了,2001年6月TIOBE编程榜发布以来,总体只有13个编程语言曾经进入前十名。

而且还有一点不容忽略,这就是Objective-C语言自1986年发布以来,并没有出现革命性的创新。Objective-C语言是唯一一种可以为iphone和ipad编程的语言,它的火爆完全是因为基于Mac OS X平台和iPhone平台移动开发的热度升高所致。

尽管Objective-C语言挤进了TIOBE编程语言排行榜的前十名,但我们不得不说它的发展潜力还非常大。原因很简单,Objective-C语言的实际使用率只有0.08%。但另一方面,我们不得不说,Objective-C语言从第二十名挤进第十名只用了九个月时间,但接下来再前进一步都是困难极大的,因为它的竞争对手已变成了C、Java、C++、PHP等老牌编程语言。

在接下来的时间里,Objective-C语言如果能再把自己的名次往前提,完全可以说是:Objective-C语言前进的一小步,就是移动开发产业的一大步。[1] 

2010年2月编程语言榜单:Objective-C高歌猛进回目录

Tiobe今日发布了2010年2月份的编程语言排行榜,在上月的榜单中,Go语言增长最多 ;本期榜单我们关注在2009年得到蓬勃发展的另一门编程语言——Objective-C,在年度编程语言评选中,它仅以0.01%的差距落后于Google Go。

2月编程语言排行榜TOP20





  2010年2月编程语言排行榜TOP20

请留意排名第12位的Objective-C,在2008年1月和2009年1月发布的年度榜单中,Objective-C分别排名第47和37位。短短三年,Objective-C何以有如此快速的成长?





  2002-2009年Objective-C趋势走向

Objective-C的发展历程

与C、C++、Java这样的语言相比,我们可能对Objective-C有些陌生。其实,早在上世纪80年代Objective-C就已诞生。1980年代初,就职于Stepstone公司的Brad Cox发明了Objective-C,Brad当时想打造一门流行的、可移植的C语言与优雅的Smalltalk(关于Smalltalk的语言特性请参考Smalltalk之父的报道)的结合体。

Objective-C是C语言的一个扩展集,以C为基础,并在其中增加了一些重要的特性。Objective-C是讲究实用和效率的语言,使用过C++或者Java的开发者一定会惊叹Objective-C的程序如此简短,一般,Objective-C写成的程序通常不会比其原始码大很多。另外,Objective-C还继承了Smalltalk语言的优雅和面向对象特性,而其经过改造的函式库却不像Smalltalk那样需要过大的内存资源





  Objective-C创始人Brad Cox

1985年,被赶出苹果公司的Steve Jobs成立了NeXT公司,致力于开发强大且经济的工作站。NeXT选择Unix作为其操作系统,并创建了NeXTSTEP Toolkit软件包,这个工具包用于开发用户界面,功能强大,其使用的编程语言就是Objective-C。1993年,NeXT中止了硬件业务,转为专注与OpenSTEP软件市场,并推出了一套网络程序架构WebObjects用于进行动态页面的生成。1996年,苹果公司以4亿美金收购了NeXT,NeXTSTEP被重命名为Cocoa,WebObjects则集成到Mac
OS Server和Xcode中。Objective-C自然而然成为Mac平台的首选开发语言,并受到Macintosh编程人员的广泛认可;Cocoa成为苹果免费提供的开发工具,提供Mac平台应用开发的环境。

Objective-C的咏叹调

由于苹果公司的市场定位和Mac平台的特殊要求,Objective-C一直在编程语言领域保持一种低调的形象。与Windows平台下的应用开发技术和编程语言的繁盛景象相比,Objective-C更像是孤独盛开在Mac平台上的技术奇葩。





  Mac平台上的应用开发

但iPhone的发布改变了这一切。基于App Store模式的iPhone软件开发不但为iPhone用户提供品类丰富的应用程序扩展,还为众多软件公司和独立开发者提供机会(详细请参考51CTO之前的报道《独立软件开发者,你准备好了吗》)。09年7月,App Store上线一周年后,软件数量已达到6万,每日新上线近千款iPhone软件。考察一门编程语言是否受欢迎,其应用场景和项目需求是最重要的一点;iPhone应用开发的火爆带动Objective-C语言的繁荣。众多软件开发者由其他语言或平台转向Objective-C开发iPhone应用程序,一时之间,Objective-C和iPhone的开发书籍持续热销。

这种热度还将持续。苹果公司最近发布了采用iPhone OS的iPad,51CTO曾就苹果iPad发布背后的意义做过报道,虽然业界对这一款产品也是褒贬不一,但是这一点也不妨碍iPad的扩展应用成为App Store的下一个热点。行业、市场需求和应用场景的广泛性将决定一门编程语言的流行程度。可以预见,Objective-C将迎来在iPad上进行应用开发的高潮,在移动开发的舞台上唱响更动听的技术咏叹调。

在本期的编程语言排行榜中,TIOBE指出,Scratch、Scala、 Erlang和JavaFX Script这几种编程语言正在向前20名挺进.

Objective-C 是如何慢慢走红的?的更多相关文章

  1. Automake

    Automake是用来根据Makefile.am生成Makefile.in的工具 标准Makefile目标 'make all' Build programs, libraries, document ...

  2. ZT “樱花小萝莉”走红网络 网友:好想生个女儿

    “樱花小萝莉”走红网络 网友:好想生个女儿 投递人 itwriter 发布于 2014-04-02 17:39 评论(3) 有717人阅读  原文链接  [收藏]  « » 近日,一组被网友亲切地称呼 ...

  3. iOS完全自学手册——[三]Objective-C语言速成,利用Objective-C创建自己的对象

    1.前言 上一篇已经介绍了App Delegate.View Controller的基本概念,除此之外,分别利用storyboard和纯代码创建了第一个Xcode的工程,并对不同方式搭建项目进行了比较 ...

  4. 【Python五篇慢慢弹】快速上手学python

    快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...

  5. 【Python五篇慢慢弹】数据结构看python

    数据结构看python 作者:白宁超 2016年10月9日14:04:47 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给出的pythondoc ...

  6. 【Python五篇慢慢弹(3)】函数修行知python

    函数修行知python 作者:白宁超 2016年10月9日21:51:52 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给出的pythondoc ...

  7. 【Python五篇慢慢弹(4)】模块异常谈python

    模块异常谈python 作者:白宁超 2016年10月10日12:08:31 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给出的pythondo ...

  8. 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸

    类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...

  9. 像画笔一样慢慢画出Path的三种方法(补充第四种)

    今天大家在群里大家非常热闹的讨论像画笔一样慢慢画出Path的这种效果该如何实现. 北京-LGL 博客号@ligl007发起了这个话题.然后各路高手踊跃发表意见.最后雷叔 上海-雷蒙 博客号@雷蒙之星 ...

随机推荐

  1. 一步步创建Qt Widget项目+TextFinder案例(摘自笔者2015年将出的《QT5权威指南》,本文为试读篇)

     创建一个基于应用的QtWidget应用程序 这个手册描述了怎样使用QtCreater创建个一个小的Qt应用程序,Text Finder.它是Qt工具Text Finder例子的简写版本.这个应用 ...

  2. 03 SeekBar 音频播放拖拽进度条

    八,  SeekBar  音频播放拖拽进度条       >                 android:progress="40"   第一进度         and ...

  3. Java中的五种单例模式

    Java模式之单例模式: 单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例. 特点: 1,一个类只能有一个实例 2 自己创建这个实例 3 整个系统都要使用这个实例 例: 在下面 ...

  4. 谈谈Ext JS的组件——组件基类:Ext.Component

    概述 Ext.Component是所有Ext组件的基类,这在Ext.Component的API中第一句话就提到了.然后第二段说明了它包含的基本功能:隐藏/显示.启用/禁用以及尺寸控制等.除了以上这些基 ...

  5. Linux Debugging(二): 熟悉AT&T汇编语言

    没想到<Linux Debugging:使用反汇编理解C++程序函数调用栈>发表了收到了大家的欢迎.但是有网友留言说不熟悉汇编,因此本书列了汇编的基础语法.这些对于我们平时的调试应该是够用 ...

  6. ios swift 实现饼状图进度条,swift环形进度条

    ios swift 实现饼状图进度条 // // ProgressControl.swift // L02MyProgressControl // // Created by plter on 7/2 ...

  7. android binder理解

    Android中的Parcel是什么  Parcel,翻译过来是"打包"的意思.打包干什么呢?是为了序列化.     如果要在进程之间传递一个整数,很简单,直接传就是行了:如果要传 ...

  8. 阿里云服务器实战(二): Linux MySql5.6数据库乱码问题

    在阿里云上了买了一个云服务器, 部署了一个程序,发现插入数据库后乱码了,都成了'????'.  一开始怀疑是Tomcat7的原因 , 见文章 : http://blog.csdn.net/johnny ...

  9. Ext JS 5初探(三)

    在上文提到了本地化文件的问题,然后在Ext JS 5的包里找了找,居然还没包含本地化包.我估计目前还不到考虑本地化的时候.在Sencha Touch中,是没有本地化包的,但是要让Ext JS也不包含本 ...

  10. shell脚本格式的几点注意:格式严格,空格不能随便出现(一写就记不住)

    shell脚本中,不能随意添加空格,否则出错: 1,=等号两边必须无空格.否则出错.如i =$1和i= $1都是错的.但是在()内部不限制如for ((i= 1;i < 3;i= i+1))是正 ...