6月编程语言排行榜:Objective-C非常“实际”的语言

原创
开发
TIOBE近日公布了2012年6月份的编程语言排行榜,本月排名前两位的仍是C和Java,呈较好上升趋势的依旧是Objective-C。依旧排在第四的位置,并且近一步拉近了与C++的距离。C++虽依旧排在老三的位置,相比之下,还是有少量的减少。由此可见Objective-C具有很大的发展空间。

【51CTO独家特稿】TIOBE近日公布了2012年6月份的编程语言排行榜,本月排名前两位的仍是C和Java,呈较好上升趋势的依旧是Objective-C。依旧排在第四的位置,并且近一步拉近了与C++的距离。C++虽依旧排在老三的位置,相比之下,还是有少量的减少。由此可见Objective-C具有很大的发展空间。

Objective-C流行的主要原因可能是它是***一种可以为iPhone和iPad等基于iOS系统编程的语言。但单从编程语言的角度来看,诞生于1986年的Object-c并没有表现出多少新意。然而Objective-C却又是非常“实际”的语言。

大家先看看2012年6月的编程语言排行榜的榜单

Objective-C是非常“实际”的语言

它使用一个用C写成、很小的运行库,只会令应用程序的大小增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。ObjC写成的程序通常不会比其原始码大很多。而其函式库(通常没附在软件发行本)亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反。

Objective-C的最初版本并不支持垃圾回收。在当时这是争论的焦点之一,很多人考虑到Smalltalk回收时有漫长的“死亡时间”,令整个系统失去功用。Objective-C为避免此问题才不拥有这个功能。虽然某些第三方版本已加入这个功能(尤是GNUstep), Apple在其Mac OS X 10.3中仍未引入这个功能。不过令人欣慰的是在Apple发布的xCode4中已经支持自动释放啦,我不敢冒昧地说那是垃圾回收,因为两者机制不同,在xCode4中的自动释放,也就是ARC(Automatic Reference Counting)机制,是不需要用户手动去Release一个对象,而是在编译期间,编译器会自动帮你添加那些以前你经常写的[NSObject release]。

虽然Objective-C是C的母集,但它也不视C的基本型别为***级的对象。

和C++不同,Objective-C不支援运算子多载(它不支持ad-hoc多型)。亦与C++不同,但和Java相同,Objective-C只容许对象继承一个类别(不设多重继承)。Categories和protocols不但可以提供很多多重继承的好处,而且没有很多缺点,例如额外执行时间过重和二进制不兼容。

Objective-C和C++的比较

单一继承:Objective-C不支持多重继承,(同Java和Smalltalk),而C++语言支持多重继承。

动态:Objective-C是动态定型(dynamicaly typed)所以它的类库比C++要容易操作。Objective-C 在运行时可以允许根据字符串名字来访问方法和类,还可以动态连接和添加类。

C++ 跟从面向对象编程里的Simula 67(一种早期OO语言)学派,而Objecive-C属于Smalltalk学派。

在C++里,对象的静态类型决定你是否可以发送消息给它,而对Objecive-C来说,由动态类型来决定。Simula 67学派更安全,因为大部分错误可以在编译时查出。 而Smalltalk学派更灵活,比如一些Smalltalk 看来无误的程序拿到Simualr 67那里就无法通过。

从很多方面来看,C++和Objective-C的差别,与其说时技术上的, 不如说是思维方式上的。你是否想更安全而舍弃灵活性?Simular67学派的支持者声称既然程序设计出色何必再要灵活性(谎话!),而Smalltalk学派则辩称为了灵活可以容忍运行时多出错(也是谎话!)

#p#

前10名编程语言走势图

 

20到50名语言排行

下面是第50到100的编程语言排名

ABC, bc, Boo, C shell, cg, CHILL, CL (OS/400), Clean, Clojure, Cobra, cT, Curl, Dylan, Eiffel, Euphoria, F#, Factor, Gambas, Go, Groovy, Icon, Informix-4GL, J, JavaFX Script, JScript.NET, LabVIEW, Lingo, Magic, Modula-2, MUMPS, NATURAL, Oberon, OCaml, Occam, OpenCL, OpenEdge ABL, Oz, PL/I, Q, REXX, S, SPARK, Standard ML, SuperCollider, Tcl, VBScript, VHDL, X10, xBase, XSLT

下面给出了编程语言类别的一年变化趋势

 

【2012年榜单回顾】

  1. 2012年1月编程语言排行榜:Objective-C成为年度语言
  2. 2012年2月编程语言排行榜:用图形编程的LOGO语言
  3. 2012年3月编程语言排行榜:JavaScript语言的回归
  4. 2012年4月编程语言排行榜:C语言荣归宝座
  5. 2012年5月编程语言排行榜:从爱立信走出来的Erlang
责任编辑:张伟 来源: 51CTO
相关推荐

2015-06-08 14:41:30

编程语言排行榜

2012-01-09 10:11:20

编程语言排行榜

2010-02-08 13:10:00

Objective-C编程语言排行榜

2013-04-15 10:00:51

IT技术周刊

2013-04-09 09:59:59

编程语言编程语言排行榜

2012-12-03 11:23:28

编程语言排行榜

2014-06-09 12:58:48

编程语言排行榜

2013-08-05 15:36:57

编程语言排行榜

2014-06-16 14:01:01

IT技术周刊

2021-04-09 15:20:47

编程语言Fortran程序员

2009-11-11 10:35:59

2023-06-09 15:39:40

编程语言Python

2010-06-07 15:57:02

编程语言排行榜框架

2013-07-30 10:00:36

RedMonk编程语言排行榜

2015-07-07 10:52:46

RedMonk编程语言

2009-06-09 09:07:06

编程语言排行榜JavaScript

2012-04-09 01:53:04

编程语言排行榜

2021-09-23 10:50:42

编程语言Python排行

2020-08-13 11:55:33

编程语言JavaPython

2019-07-23 14:14:59

编程语言JavaPython
点赞
收藏

51CTO技术栈公众号