爱达·勒芙蕾丝(Ada Lovelace)是大家公认的首位计算机程序设计师,也开创了世上首上程式语言,从 1843 年至今,程式语言的发展至今已近 170 年的历史了,在美国现今约有 120 万以上的相关从业人员,程式也发展出不同的语言,不过根据 Veracode 的调查来看,Java 才是目前最多人使用的程式语言。
Java 与 C 语言持续热门
从表中可以看到,从 Veracode 透过全球程式人员的统计、课程与第三方套件的资料统计数据手来分析目前市场中程式语言的热门程度,当然,这个数值并非绝对准确,但也代表着某种趋势。直至 2013 年 3 月为止,Java 仍是世界上最多人使用的程式语言,比例达到 18.156%,且比去年同前相比还成长了 1.05% 之多。
排行第二的则是 C 语言,与去年排行相同,比例只比 Java 略少 17.141%,与去年相比小幅成长了 0.05%。第三名则是苹果的 Objective C 则是前十名中成长最多的,从去年的第五名一路爬到第三名,成长了 2.49%,比例为 10.230%,看来受到 iOS 装置市场依然受重视下,Objective C 也就不断成长,以其目前比例来说要追上前两名恐怕还是有点困难。
第四名为 C++,与去年维持相同排名,使用比例也成长了 1.07。第五名的 C# 则是在前十名唯一下滑且仍在榜中的程式语言(有一个程式语言直接从第 8 名滑出前十名,Veracode 并未列出),下滑幅度为 1.65%。其他维持相同排名还有 PHP、(Visual)Basic 与 Perl,上升的则有 Pytohon 与 Ruby,而 Ruby 则更是排名上升最多的,由去年的 13 名跃升至第 9 名。
程式语言的历史
1957 至1959 年 FORTRAN、LISP 与 COBOL 是这时期诞生的程式语言,也是目前仍在使用的老一辈程式语言,这类的高阶程式语言是为科学家、数学家与大型商业电脑所设计的,其主要的使用族群为大型超级电脑、AI 人工智能与商业软件。NASA 美国太空总署、信用卡与 ATM 自动柜员机都用过这类的程式语言。
Cobol 的部分原始程式码曾出现在电影《魔鬼终结者(Terminator)》中机械终结者的视觉屏幕中,做为其启动使用的特效效果。
1970 年 PASCAL 于这一年由尼克劳斯·维尔特(Niklaus Wirth)所创造出来,同样为高阶程式语言,主要是针对程式教学结构与资料结构为主要发展目的,其商业版本在 1980 年代广泛的被采用,特别是其洐生的物件导向分支 Object Pascal 就常被用来做 Windows 的应用程序开发上。苹果于 1983 年推出的 Lisa 个人电脑与知名的 Skype 也用了这个程式语言。
1972 年 著名的 C 语言是在这年诞生的,由贝尔实验室的丹尼斯·里奇(Dennis Ritchie)以早期的 B 语言为基础所开创出来的,是为了在早期的电脑上执行 UNIX 系统所开创出来的,并做为通用开发的低阶程式语言。C 语言有着众多分支版本,且都相当的知名且使用者多,如 C#、Java、Javascript、Perl、PHP 与 Python 等均是。其主要运用在跨平台的应用程序、系统程式、UNIX 程式与游戏软件的开发上,使用相当广泛,早期 WWW 互联网服务器也是以 C 语言在 1973 年重新撰写的 UNIX 上运作的。
1983 年 C++ 早期被称之为“C with Classes(包含型别的 C 语言)”,同样由贝尔实验室的比雅尼·斯特劳斯特鲁普(Bjarne Stroustrup)发明,其后才另命名为 C++,其“+”表示为增强之意,C++ 属中阶程式语言,加强了 C 语言中的 Classes(型别)、虚拟函式、模版等功能。它也被广泛的使用在应用软件、嵌入式软件、服务器软件与电视游乐器中的游戏开发中,从 Adobe、Google Chrome、Mozilla、Microsoft Internet Explorer(IE)等,使用的都是 C++。
有趣的是,另有名为“C+”的程式语言,不过 C+ 却与 C/C++ 无关。
1983 年 Objective-C 同样是洐生至 C 语言的程式语言,由 Stepstone 公司的创办人布莱德·考克斯(Brad Cox)与汤姆·勒(Tom Love)共同发明,属于通用、高阶的程式语言,其并加入了物件导向与 Smalltalk 语言的讯息传递风格。Objective-C 最早由苹果公司创办人 Steve Jobs 另创的 NeXT 公司买下授权并做为 NeXTSTP 系统的使用者界面与开发的环境的基础。
在 NeXT 被苹果并购后,NeXTSTEP 的架构成为 OS X 与行动装置上的 iOS 的核心后,Objective-C 也就成了苹果公司开发软件的主要程式语言,iPhone/iPad 于市场热销下,Objective-C 的知名度与使用者也大幅增加。
1987 年 Perl 为通用型的高阶程式语言,其一开始是 Unisys 的拉里·沃尔(Larry Wall)为了在 UNIX 系统上处理报表更为方便而开创的,Perl 的高性能与灵活度佳被广为称道,甚至有程式语言的瑞士刀之称,其应用范围很广,在 CGI、数据库软件、系统管理、网络程式与图形程式都适用,因此著名的电影数据库网站 IMDB、线上购物王者亚马逊(Amazon)与 Pirceline、Ticketmaster 都采用了 Perl。
Perl 本来打算以“Pearl”为名,是以 Larry Wall 的妻子 Gloria 来命名,在发现已有其他以 Peral 为名的程式语言后,只好更名成 Perl。当年 O’Reilly 出版社的出版的《Programming Perl》一书中封面图片使用了一只骆驼图片,也让骆驼成为 Perl 非官方的代表标志。
1991 年 Python 是Guido van Rossum(Guido van Rossum)于 CWI(Centrum Wiskunde & Informatica;国家数学和计算机科学研究学会)任职时为了打发时间而开发出来的,其名字则来自其喜爱的英国电视喜剧《Monty Python’s Flying Circus(蒙提·派森的飞行马戏团)》,也是一个通用型的高阶程式语言。Python 可用来支援各种不同的程式且易于使用,明确、简单、结构又清楚的语法是其特性。
在 Web 软件、软件开发与资讯安全方面有诸多应用,Google、Yahoo 与线上音乐平台 Spotify 都有采用。而 Python 如同其语言名称来自喜剧一般,Python 的练习范例中,就有许多源自 Monty Python 的恶搞,如用 Spam 火腿与鸡蛋来取代传统的 foo 与 bar。
1993 年 以创造人松本行弘(Yukihiro Matsumoto)的诞生石为名的 Ruby 是这几年颇为当红的程式语言,也是统计中成长最快的,其受 Perl、Ada、Lisp、Smalltalk 等程式语言影响很大,是为了更快效率并让程式的编写更为愉快而开创的。
Ruby 其通用、高阶语言的特性多用于 Web 程式开发,以及近来颇知名的 Ruby on Rails 这个开源版的 Web 开发框架上。著名的 Twitter、线上串流影音服务 Hulu 与 Groupon 都有采用。Ruby 从 Perl 借用了不少东西,开发者自己也认为 Ruby 这名做为接续 Perl 之后的程式语言其实颇为恰当,甚至 Perl 之父也喜欢 Ruby,还从中借了操作符号加入 Perl 6 中。
1995 年 与咖啡同名的 Java,其名字也真的来自咖啡,只因昇阳工程师詹姆斯·高斯林(James Gosling)觉得在开发此一程式语言时需要耗掉大量的咖啡。其实 Java 本来要命名为 Oak,只不过名称已被先行注册,只好更名为 Java。
Java 一开始是为了互动电视的专案而开发,是一个高阶通用型的程式语言,其跨平台的特性是最大的特色,在网络程式、Web 应用软件开发、使用者图形界面开发等应用都有被采用。为网络而设计的 Java 目前在浏览器上的地位式微,不过在 Android 采用了 Java 为系统并做为应用软件开发平台下,Java 反而成为目前最受欢迎的开发程式语言。
1995 年 PHP 的原文其实是 Personal Home Page 个人首页,是开创者拉斯姆斯·勒多夫(Rasmus Lerdorf)为了要维护个人网页所开发的程式集,由于可以组成动态的网页,在释出后经各方改写另外更名成了现今的 Hypertext Preprocessor 超文字预处理器。
PHP 为一个开源通用的语言,主要用来建构动态网页,也是广为各企业使用在网页中的开源软件,无论是 Facebook、维基百科、Digg、WordPress 与 Joomla 都采用了 PHP。各版本的 PHP 在网址后加上“?=PHPE9568F36-D428-11d2-A769-00AA001ACF42”的字串,会各自呈现不同的标志,算是一个小小又有趣的彩蛋。
1995 年 JavaScript 是属于高阶语言,是由网景 Netscape 的布兰登·艾克(Brendan Eich)为了添增网页功能而设计而发明的,可用在动态网页中提交、确认表格资料,创造互动、动画,或是追踪使用者行为。除了动态网页的开发外,PDF 文件、浏览器与桌面小工具都可利用 JavaScript 来开发。Gmail、Adobe Photoshop 与 Mozilla Firefox 等产品中都有用到 JavaScript。
JavaScript 虽然名字中也有 Java 的名称,但其语法结构与出身其实与 Java 一点关系都没有,只是单纯的当初想让他外表的样子如同 Java 一般,其原始开发时的代号名称其实是 Mocha 及 LiveScript。
安全漏洞大不同
在图表的最后,Veracode 也列出了各程式言容易产生安全漏洞的统计,可以让程式开者参考一下不同的开发程式产生漏洞的主因来源何在,以及几个增加程式安全的小技巧。
- The History of Programming Languages Infographic
延伸阅读:
- 网络程式语言谁当红?C 语言、Java 依旧是主流