programming language history

编程语言(programming language),是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算

机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。

        Machine language(机器语言)

1951 – Regional Assembly Language(区域汇编语言)

1952 – Autocode(自动编码)

自动代码是“简化编码系统”家族的名称,后来称为“简化编码系统”。编程语言,在20世纪50年代和60年代为一系列的数字计算机在大学里曼切斯特, 剑桥和伦敦。Autocode是一个通用术语;不同机器的自动代码不一定是紧密相关的,例如,不同版本的单一语言。

今天,这个词被用来指早期语言家族,起源于曼彻斯特马克1自动编码系统,通常是相似的。在20世纪60年代,这个词自动编码器更笼统地用于指任何高级程序设计语言使用编译器.[1]称为自动代码的语言示例包括科波和福特兰.[2]

格伦尼(氏)自动代码

马克1自动代码

1954 – IPL (Information Processing Language  LISP 语言的祖先)

信息处理语言 (IPL)是编程语言由艾伦·纽韦尔, 克利夫·肖,和赫伯特·A·西蒙在…兰德公司而卡内基理工学院在1956年左右。Newell的工作是语言说明-应用程序员,Shaw是系统程序员,Simon承担了应用程序员-用户的工作。

该语言包括旨在帮助执行简单问题解决操作(如列表)的程序的功能,动态内存分配, 数据类型, 递归, 功能作为参数、生成器和合作多任务。IPL发明了列表处理的概念,尽管是在汇编语言风格。

1955 – FLOW-MATIC (COBOL 语言的祖先)

FLOW-MATIC ,原名为B-0 (商务语言版本0),是第一个类似英语的人数据处理语言。它是为UNIVAC I在…雷明顿兰德在……下面格蕾丝·霍珀从1955年到1959年。它对中国的发展产生了很大的影响。

1957 – FORTRAN (第一个编译型语言)

最初是由ibm在20世纪50年代的科学和工程应用中,FORTRAN很早就占据了这一编程领域的主导地位,并在计算密集型领域(如数值天气预报, 有限元分析, 计算流体力学, 计算物理, 结晶学和计算化学。这是一种流行的语言高性能计算并被用于基准测试和排名世界的程序。最快的超级计算机.

Fortran包含一个版本的沿袭,每个版本都进化为添加语言的扩展,同时通常保持与以前版本的兼容性。连续版本增加了对结构化编程以及基于字符的数据的处理(FORTRAN 77),数组编程, 模块化编程和通用程序设计(Fortran 90),高性能Fortran(Fortran 95)面向对象编程(Fortran 2003)和并发编程(Fortran,2008年)。

Fortran的设计是许多其他编程语言的基础。众所周知的是基本,它基于FORTRAN II,具有许多语法清理,特别是更好的逻辑结构,[6]以及其他更容易在交互环境中工作的更改。

1957 – COMTRAN (COBOL 语言的祖先)

COMTRAN(商业翻译)早期编程语言开发于ibm。它被设计成相当于科学编程语言的商业编程语言。福特兰(公式翻译)它是人类的先驱者之一。科波语言。由鲍勃·贝默,在1957年,该语言是第一个以编程语言元素(称为图片从句)为特征的编程语言.

1958 – LISP

LISP最初是作为一种实用的数学符号为计算机程序,受…的影响阿隆佐教堂氏Lambda微积分。它很快就成为最受欢迎的编程语言。人工智能(AI)研究。作为最早的编程语言之一,Lisp在计算机科学,包括树数据结构, 自动存储管理, 动态打字, 条件词, 高阶函数, 递归,自托管 编译器,[6]而读-年代-打印循环.[7]

名字LISP派生自“列表处理器”。[8] 链接列表是Lisp的专业之一数据结构,和Lisp源代码是由名单组成的。因此,Lisp程序可以将源代码作为数据结构进行操作,从而生成宏允许程序员创建新语法或新语法的系统特定领域语言嵌入在Lisp里。

1958 – ALGOL 58

Algol 58,原名为艾尔,Algol计算机编程语言家族中的一员。

1959 – FACT (COBOL 语言的祖先)

1959 – COBOL

COBOL (/ˈkOʊbɒl, -bɔːl/缩略词对于“面向业务的通用语言”)编撰英语类计算机程序设计语言专为商业用途而设计的。它是祈使, 程序性而且,从2002年开始,面向对象。COBOL主要用于企业和政府的商业、金融和行政系统。上部署的遗留应用程序中仍然广泛使用cobol。大型机计算机,例如大规模的分批和事务处理工作。但是由于它越来越受欢迎,并且有经验的COBOL程序员的退休,程序被迁移到新的平台,用现代语言重写,或者被软件包所取代。[6]COBOL中的大多数编程现在纯粹是为了维护现有的应用程序。

1959 – RPG

RPG是高级程序设计语言(HLL)商业应用。RPG是ibm专有编程语言而且它的后续版本只能在ibm i-或OS/400-以系统为基础。[1]

它有着悠久的历史,是由ibm1959年报表程序生成器-复制的工具穿孔卡片处理IBM 1401[2]然后更新为RPG II为IBM System/3在20世纪60年代末,后来演变成相当于科波和Pl/I.

它仍然是一种流行的编程语言。ibm i操作系统,运行在IBM Power平台硬件。现在的版本,RPG IV(a.k.a.提供了一个现代的编程环境。

1962 – APL

APL编程语言20世纪60年代由肯尼思·艾弗森开发。它的中心数据类型是多维阵列。它使用的范围很广特殊图形符号[3]来表示大多数函数和操作符,从而生成非常简洁的代码。它对概念建模的发展产生了重要的影响,电子表格, 功能程序设计,[4]还有电脑数学包。[5]它还启发了其他几种编程语言。[6][7]

1962 – Simula

Simula是两个的名字模拟 编程语言,Simula I和Simula 67,于20世纪60年代在挪威计算机中心在……里面奥斯陆,通过奥勒-约翰·达尔和克里斯汀·尼加德. 句法上,这是一个相当忠实的超集Algol 60,[1]:1.3.1也受设计的影响西姆脚本.

1962 – SNOBOL

SNOBOL (面向字符串的符号语言)是一系列电脑,计算机 编程语言1962年至1967年发展AT&T 贝尔实验室通过戴维·法伯, 拉尔夫·格里斯沃尔德和Ivan P.Polonsky,在SNOBOL 4中达到高潮。它是20世纪50年代和60年代发展起来的许多面向文本字符串的语言之一;其他语言包括COMIT和TRAC.

1963 – CPL (C语言的祖先)

Cpl (组合编程语言)是多范式 编程语言,这是20世纪60年代初发展起来的。它是人类早期的祖先C语言通过BCPL和B语言。

1964 – BASIC

BASIC是一个家庭一般用途, 高级编程语言其设计理念强调易用性。在1964年,约翰·凯梅尼和托马斯·库尔茨 Dartmouth学院设计了原始的BASIC语言。他们想让科学和数学以外的领域的学生使用计算机。当时,几乎所有计算机的使用都需要编写自定义软件,这只是科学家和数学家倾向于学习。

1964 – PL/I

Pl/I (程序设计语言一,发音/pIː ɛl wʌn/)是程序性,计算机编程语言为科学、工程、商业和系统编程使用。自1960年代引进以来,它一直被各种学术、商业和工业组织使用,并继续积极使用。[2]

PL/I的主要域是数据处理, 数值计算, 科学计算,和系统编程;它支持递归, 结构化编程, 链接数据结构处理,定点, 浮点, 络合, 字符串处理,和位串处理。该语言语法类似于英语,适合描述复杂的数据格式,有一组广泛的函数可用于验证和操作它们。

1966 – JOSS

JOSS(缩写词)JOHNNIAC开放式商店系统是最早的互动之一,分时编程语言。Joss I,由J.Clifford Shaw兰德第一次以beta形式在JOHNNIAC计算机,1963年5月。全面实施于1964年1月部署,支持5个终端,最终版本支持10个终端,于1965年1月部署。[1][2]

Joss是用一种名为EasyFox的象征性汇编语言编写的(当时美军的语音字母是E和F)。EasyFox也是由CliffShaw开发的。

1967 – BCPL (C语言的祖先)

1968 – Logo

1969 – B (C语言的祖先)

1970 – Pascal

1970 – Forth

1972 – C

C语言之所以命名为C,是因为 C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言。

1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。

c语言宣传图

c语言宣传图

20世纪60年代,美国AT&T公司贝尔实验室(AT&T Bell Laboratory)的研究员Ken Thompson闲来无事,手痒难耐,想玩一个他自己编的,模拟在太阳系航行的电子游戏——Space Travel。他背着老板,找到了台空闲的机器——PDP-7。但这台机器没有操作系统,而游戏必须使用操作系统的一些功能,于是他着手为PDP-7开发操作系统。后来,这个操作系统被命名为——UNIX。

1970年,美国贝尔实验室的 Ken Thompson,以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母)。并且他用B语言写了第一个UNIX操作系统。

1971年,同样酷爱Space Travel的Dennis M.Ritchie为了能早点儿玩上游戏,加入了Thompson的开发项目,合作开发UNIX。他的主要工作是改造B语言,使其更成熟。 [2]

1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。

1973年初,C语言的主体完成。Thompson和Ritchie迫不及待地开始用它完全重写了UNIX。此时,编程的乐趣使他们已经完全忘记了那个"Space Travel",一门心思地投入到了UNIX和C语言的开发中。随着UNIX的发展,C语言自身也在不断地完善。直到今天,各种版本的UNIX内核和周边工具仍然使用C语言作为最主要的开发语言,其中还有不少继承Thompson和Ritchie之手的代码。 [2]

在开发中,他们还考虑把UNIX移植到其他类型的计算机上使用。C语言强大的移植性(Portability)在此显现。机器语言和汇编语言都不具有移植性,为x86开发的程序,不可能在Alpha,SPARC和ARM等机器上运行。而C语言程序则可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码编译、连接成目标二进制文件之后即可运行。 [2]

1977年,Dennis M.Ritchie发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。 [3]

C语言继续发展,在1982年,很多有识之士和美国国家标准协会为了使这个语言健康地发展下去,决定成立C标准委员会,建立C语言的标准。委员会由硬件厂商,编译器及其他软件工具生产商,软件设计师,顾问,学术界人士,C语言作者和应用程序员组成。1989年,ANSI发布了第一个完整的C语言标准——ANSI X3.159—1989,简称“C89”,不过人们也习惯称其为“ANSI C”。C89在1990年被国际标准组织ISO(International Standard Organization)一字不改地采纳,ISO官方给予的名称为:ISO/IEC 9899,所以ISO/IEC9899: 1990也通常被简称为“C90”。1999年,在做了一些必要的修正和完善后,ISO发布了新的C语言标准,命名为ISO/IEC 9899:1999,简称“C99”。 [2]  在2011年12月8日,ISO又正式发布了新的标准,称为ISO/IEC9899: 2011,简称为“C11”。

1972 – Smalltalk

1972 – Prolog

1973 – ML

1975 – Scheme

1978 – SQL

1970年代初,由IBM公司San Jose,California研究实验室的埃德加·科德发表将数据组成表格的应用原则(Codd's Relational Algebra)。1974年,同一实验室的D.D.Chamberlin和R.F. Boyce对Codd's Relational Algebra在研制关系数据库管理系统System R中,研制出一套规范语言-SEQUEL(Structured English QUEry Language),并在1976年11月的IBM Journal of R&D上公布新版本的SQL(叫SEQUEL/2)。1980年改名为SQL。

1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2和SQL/DS数据库系统中也实现了SQL。

1986年10月,美国ANSI采用SQL作为关系数据库管理系统的标准语言(ANSI X3. 135-1986),后为国际标准化组织(ISO)采纳为国际标准。

1989年,美国ANSI采纳在ANSI X3.135-1989报告中定义的关系数据库管理系统的SQL标准语言,称为ANSI SQL 89,该标准替代ANSI X3.135-1986版本。该标准为下列组织所采纳:

国际标准化组织(ISO),为ISO 9075-1989报告“Database Language SQL With Integrity Enhancement”

美国联邦政府,发布在The Federal Information Processing Standard Publication(FIPS PUB)127

目前(21世纪初期)主要的关系数据库管理系统支持某些形式的SQL,大部分数据库打算遵守ANSI SQL89标准。

1980 – C++ (既有类的C语言)

世界上第一种计算机高级语言是诞生于1954年的FORTRAN语言。之后出现了多种计算机高级语言。1970年,AT&T的Bell实验室的D.Ritchie和K.Thompson共同发明了C语言。研制C语言的初衷是用它编写UNIX系统程序,因此,它实际上是UNIX的“副产品”。它充分结合了汇编语言和高级语言的优点,高效而灵活,又容易移植。

1971年,瑞士联邦技术学院N.Wirth教授发明了Pascal语言。Pascal语言语法严谨,层次分明,程序易写,具有很强的可读性,是第一个结构化的编程语言。

20世纪70年代中期,Bjarne Stroustrup在剑桥大学计算机中心工作。他使用过Simula和ALGOL,接触过C。他对Simula的类体系感受颇深,对ALGOL的结构也很有研究,深知运行效率的意义。既要编程简单、正确可靠,又要运行高效、可移植,是Bjarne Stroustrup的初衷。以C为背景,以Simula思想为基础,正好符合他的设想。1979年,Bjame Sgoustrup到了Bell实验室,开始从事将C改良为带类的C(C with classes)的工作。1983年该语言被正式命名为C++。自从C++被发明以来,它经历了3次主要的修订,每一次修订都为C++增加了新的特征并作了一些修改。第一次修订是在1985年,第二次修订是在1990年,而第三次修订发生在c++的标准化过程中。在20世纪90年代早期,人们开始为C++建立一个标准,并成立了一个ANSI和ISO(Intemational Standards Organization)国际标准化组织的联合标准化委员会。该委员会在1994年1月25曰提出了第一个标准化草案。在这个草案中,委员会在保持Stroustrup最初定义的所有特征的同时,还增加了一些新的特征。

在完成C++标准化的第一个草案后不久,发生了一件事情使得C++标准被极大地扩展了:Alexander stepanov创建了标准模板库(Standard Template Library,STL)。STL不仅功能强大,同时非常优雅,然而,它也是非常庞大的。在通过了第一个草案之后,委员会投票并通过了将STL包含到C++标准中的提议。STL对C++的扩展超出了C++的最初定义范围。虽然在标准中增加STL是个很重要的决定,但也因此延缓了C++标准化的进程。

委员会于1997年11月14日通过了该标准的最终草案,1998年,C++的ANSI/IS0标准被投入使用。通常,这个版本的C++被认为是标准C++。所有的主流C++编译器都支持这个版本的C++,包括微软的Visual C++和Borland公司的C++Builder。

1983 – Ada

1984 – Common Lisp

1984 – MATLAB

1985 – Eiffel

1986 – Objective-C

1986 – Erlang

1987 – Perl

1988 – Tcl

1988 – Mathematica

1989 – FL

1990 – Haskell

1991 – Python

自从20世纪90年代初Python语言诞生至今,它已被逐渐广泛应用于系统管理任务的处理和Web编程。

Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。

ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido 认为是其非开

标识

标识

放造成的。Guido 决心在Python 中避免这一错误。同时,他还想实现在ABC 中闪现过但未曾实现的东西。

就这样,Python在Guido手中诞生了。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。

Python [2]  已经成为最受欢迎的程序设计语言之一。自从2004年以后,python的使用率呈线性增长。2011年1月,它被TIOBE编程语言排行榜评为2010年度语言。 [3]

由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用Python语言讲授。众多开源的科学计算软件包都提供了Python的调用接口,例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了,例如如下3个十分经典的科学计算扩展库:NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。因此Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。

2018年3月,该语言作者在邮件列表上宣布Python 2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python 2.7有关的支持,则需要付费给商业供应商。 [4]

1991 – Visual Basic

1991年4月,微软公司推出了 Visual Basic 1

VB 6.0 启动画面

VB 6.0 启动画面

.0Windows版本,这个连接编程语言和用户界面的进步被称为Tripod(有些时候叫做Ruby),最初的设计是由阿兰·库珀(Alan Cooper)完成的。在当时,它是第一个“可视”的编程软件。 [1]  [3]

1992年9月,Visual Basic 1.0 DOS版本发布。11月,由于Visual Basic 1.0的功能过于简单,微软推出了新版本Visual Basic 2.0。这个版本最大的改进就是加入了对象型变量,比如Dim b As CommandButton、Dim c As Control,对语言的改进和扩充,Visual Basic 2.0对VBX有了很好的支持,许多第三方控件涌现出来,极大地丰富了Visual Basic的功能。微软还为Visual Basic 2.0增加了OLE和简单的数据访问功能。 [1]

1993年,微软公司推出Visual Basic 3.0,分为标准版和专业版。其中包含一个数据引擎,可以直接读取Access数据库。增加了最新的ODBC2.0的支持,Jet数据引擎的支持和新版本OLE的支持。Visual Basic 3.0增加了许多新的金融函数,增加了相当多的专业级控件,可以开发具有相当水平Windows应用程序。 [1]

1995年8月,微软公司推出Visual Basic 4.0,版本包含了16位和32位两个版本,VBX控件换成了OCX控件,Visual Basic 4.0所用的语言换成了Visual Basic For Application。 [1]

1997年2月,微软公司推出Visual Basic 5.0,Visual Basic 5.0加入了一个本地代码编译器,Visual Basic 5.0对Visual Basic For Application语言有重大的完善和丰富,Visual Basic 5.0的IDE支持“智能感知”,支持开发自己的ActiveX 控件、进程内的COM DLL组件、进程外的COM EXE组件以及在浏览器中运行的ActiveX文档。程序员可以用32位的版本导入由4.0版本创建的16位程序,并且能顺利编译。同时还包含了对用户自建控件的支持。 [1]

1998年,微软公司推出Visual Basic 6.0,Visual Basic 6.0在数据访问方面有了很大的改进,新的ADO组件让对大量数据快速访问成为可能。数据环境和新的报表功能也让数据开发有了全新的体验。 借助COM/COM+强大的功能,可以开发具有N层结构的分布式应用程序。可以在IIS上开发性能超群的Web应用程序。 [1]

2000年,微软公司推出Visual Basic.NET版本Visual Basic.NET有对CLR最完善的支持,同时尽量保留着BASIC易懂的语法风格和易用性。Visual Basic.NET大大减少了Visual Basic语言的关键字,如GoSub、PSet等等。 [1]

2002年,微软将.NET Framework与 Visual Basic 结合而成为 Visual Basic .NET (vb .net),重新打造 VB,新增许多特性及语法。2月,Visual Basic .NET 2002 (7.0),由于其使用了新的核心和特性,所以很多 VB 的程序员都要改写程序。

2003年,Visual Basic .NET 2003 (v7.1)问世,主要改进了运行状况,提升了 IDE 以及运行时稳定性。

2004年,微软开放了Visual Studio 2005的测试版本(代号Whidbey)。包含了.NET Framework2.0的测试版本。

2005年11月7日,Visual Basic 2005 (v8.0)问世,同时间推出Visual Basic 2005的免费简化版本Visual Basic 2005 Express Edition给Visual Basic初学者及学生使用。是 vb .net 的重大转变,微软决意在其名称中去掉了".NET"部份。VB2005 提供 My 伪命名空间、泛型、操作符重载等新语言特性。

2007年11月,微软公司推出Visual Basic 2008 (9.0),提供支持 IIF 函数、匿名类、LINQ、Lambda 表达式、XML 数据结构等新语言特性。

2008年3月,微软宣布将不会再对非.NET版本的VB进行支持。

2010年4月,微软公司推出Visual Studio 2010 (10.0),提供支持 Dynamic Language Runtime (DLR)、自动实现属性、集合初始化、不需要在代码断行书写时输入下划线“_”等新语言特性。

2012年5月,微软公司推出Visual Studio 2012 (11.0) RC,提供支持更简易的异步编程(Asynchronous Programming)、Iterator、扩充 Global 关键词等新语言特性。

1993 – Ruby

Ruby明显比其他类似的编程语言(如Perl或Python)年轻,又因为Ruby是日本人发明的,所以早期的非日文资料和程序都比较贫乏,所以在网上仍然可以找到类似“Ruby的资料太少”之类的批评。约于2000年,Ruby开始进入美国,英文的资料开始发展。Ruby归根结底源于Perl和Lisp两类语言,与C,C++,C#,java是不同大类。

Ruby 标识

Ruby 标识

2011年10月31日1.9.3的第一个稳定版本1.9.3p0发布。

2013年2月22日发布了Ruby 1.9.3-p392。

2013年2月24日发布了Ruby 2.0.0-p0。

2015年4月13日发布了Ruby 2.2.2。 [2]

2015年12月25日发布了Ruby 2.3.0。 [3]

目前最新稳定版本为:Ruby2.4.2 [4]

1993 – Lua

Lua [1]  是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。

1994 – CLOS (ANSI Common Lisp 的一部分)

1995 – Java

20世纪90年代,硬件领域出现了单片式计算机系统,这种价格低廉的系统一出现就立即引起了自动控制领域人员的注意,因为使用它可以大幅度提升消费类电子产品(如电视机顶盒、面包烤箱、移动电话等)的智能化程度。Sun公司为了抢占市场先机,在1991年成立了一个称为Green的项目小组,帕特里克、詹姆斯·高斯林、麦克·舍林丹和其他几个工程师一起组成的工作小组在加利福尼亚州门洛帕克市沙丘路的一个小工作室里面研究开发新技术,专攻计算机在家电产品上的嵌入式应用。

由于C++所具有的优势,该项目组的研究人员首先考虑采用C++来编写程序。但对于硬件资源极其匮乏的单片式系统来说,C++程序过于复杂和庞大。另外由于消费电子产品所采用的嵌入式处理器芯片的种类繁杂,如何让编写的程序跨平台运行也是个难题。为了解决困难,他们首先着眼于语言的开发,假设了一种结构简单、符合嵌入式应用需要的硬件平台体系结构并为其制定了相应的规范,其中就定义了这种硬件平台的二进制机器码指令系统(即后来成为“字节码”的指令系统),以待语言开发成功后,能有半导体芯片生产商开发和生产这种硬件平台。对于新语言的设计,Sun公司研发人员并没有开发一种全新的语言,而是根据嵌入式软件的要求,对C++进行了改造,去除了留在C++的一些不太实用及影响安全的成分,并结合嵌入式系统的实时性要求,开发了一种称为Oak的面向对象语言。

由于在开发Oak语言时,尚且不存在运行字节码的硬件平台,所以为了在开发时可以对这种语言进行实验研究,他们就在已有的硬件和软件平台基础上,按照自己所指定的规范,用软件建设了一个运行平台,整个系统除了比C++更加简单之外,没有什么大的区别。1992年的夏天,当Oak语言开发成功后,研究者们向硬件生产商进行演示了Green操作系统、Oak的程序设计语言、类库和其硬件,以说服他们使用Oak语言生产硬件芯片,但是,硬件生产商并未对此产生极大的热情。因为他们认为,在所有人对Oak语言还一无所知的情况下,就生产硬件产品的风险实在太大了,所以Oak语言也就因为缺乏硬件的支持而无法进入市场,从而被搁置了下来。

1994年6、7月间,在经历了一场历时三天的讨论之后,团队决定再一次改变了努力的目标,这次他们决定将该技术应用于万维网。他们认为随着Mosaic浏览器的到来,因特网正在向同样的高度互动的远景演变,而这一远景正是他们在有线电视网中看到的。作为原型,帕特里克·诺顿写了一个小型万维网浏览器WebRunner。 [4]

1995年,互联网的蓬勃发展给了Oak机会。业界为了使死板、单调的静态网页能够“灵活”起来,急需一种软件技术来开发一种程序,这种程序可以通过网络传播并且能够跨平台运行。于是,世界各大IT企业为此纷纷投入了大量的人力、物力和财力。这个时候,Sun公司想起了那个被搁置起来很久的Oak,并且重新审视了那个用软件编写的试验平台,由于它是按照嵌入式系统硬件平台体系结构进行编写的,所以非常小,特别适用于网络上的传输系统,而Oak也是一种精简的语言,程序非常小,适合在网络上传输。Sun公司首先推出了可以嵌入网页并且可以随同网页在网络上传输的Applet(Applet是一种将小程序嵌入到网页中进行执行的技术),并将Oak更名为Java(在申请注册商标时,发现Oak已经被人使用了,再想了一系列名字之后,最终,使用了提议者在喝一杯Java咖啡时无意提到的Java词语)。5月23日,Sun公司在Sun world会议上正式发布Java和HotJava浏览器。IBM、Apple、DEC、Adobe、HP、Oracle、Netscape和微软等各大公司都纷纷停止了自己的相关开发项目,竞相购买了Java使用许可证,并为自己的产品开发了相应的Java平台。 [5-6]

1996年1月,Sun公司发布了Java的第一个开发工具包(JDK 1.0),这是Java发展历程中的重要里程碑,标志着Java成为一种独立的开发工具。9月,约8.3万个网页应用了Java技术来制作。10月,Sun公司发布了Java平台的第一个即时(JIT)编译器。

1997年2月,JDK 1.1面世,在随后的3周时间里,达到了22万次的下载量。4月2日,Java One会议召开,参会者逾一万人,创当时全球同类会议规模之纪录。9月,Java Developer Connection社区成员超过10万。

1998年12月8日,第二代Java平台的企业版J2EE发布。1999年6月,Sun公司发布了第二代Java平台(简称为Java2)的3个版本:J2ME(Java2 Micro Edition,Java2平台的微型版),应用于移动、无线及有限资源的环境;J2SE(Java 2 Standard Edition,Java 2平台的标准版),应用于桌面环境;J2EE(Java 2Enterprise Edition,Java 2平台的企业版),应用于基于Java的应用服务器。Java 2平台的发布,是Java发展过程中最重要的一个里程碑,标志着Java的应用开始普及。

1999年4月27日,HotSpot虚拟机发布。HotSpot虚拟机发布时是作为JDK 1.2的附加程序提供的,后来它成为了JDK 1.3及之后所有版本的Sun JDK的默认虚拟机 [7]  。

2000年5月,JDK1.3、JDK1.4和J2SE1.3相继发布,几周后其获得了Apple公司Mac OS X的工业标准的支持。2001年9月24日,J2EE1.3发布。2002年2月26日,J2SE1.4发布。自此Java的计算能力有了大幅提升,与J2SE1.3相比,其多了近62%的类和接口。在这些新特性当中,还提供了广泛的XML支持、安全套接字(Socket)支持(通过SSL与TLS协议)、全新的I/OAPI、正则表达式、日志与断言。2004年9月30日,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE 1.5更名为Java SE 5.0(内部版本号1.5.0),代号为“Tiger”,Tiger包含了从1996年发布1.0版本以来的最重大的更新,其中包括泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化I/O及可变参数。

2005年6月,在Java One大会上,Sun公司发布了Java SE 6。此时,Java的各种版本已经更名,已取消其中的数字2,如J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。 [8]

2006年11月13日,Java技术的发明者Sun公司宣布,将Java技术作为免费软件对外发布。Sun公司正式发布的有关Java平台标准版的第一批源代码,以及Java迷你版的可执行源代码。从2007年3月起,全世界所有的开发人员均可对Java源代码进行修改 [9]  。

Java创始人之一:詹姆斯·高斯林

Java创始人之一:詹姆斯·高斯林

2009年,甲骨文公司宣布收购Sun [10]  。2010年,Java编程语言的共同创始人之一詹姆斯·高斯林从Oracle公司辞职。2011年,甲骨文公司举行了全球性的活动,以庆祝Java7的推出,随后Java7正式发布。2014年,甲骨文公司发布了Java8正式版 [11]  。

1995 – Delphi (Object Pascal)

1995 – JavaScript

它最初由Netscape的Brendan Eich设计。JavaScript是甲骨文公司的注册商标。Ecma国际以JavaScript为基础制定了ECMAScript标准。JavaScript也可以用于其他场合,如服务器端编程。完整的JavaScript实现包含三个部分:ECMAScript,文档对象模型,浏览器对象模型。 [7]

Netscape在最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java。但JavaScript的主要设计原则源自Self和Scheme。JavaScript与Java名称上的近似,是当时Netscape为了营销考虑与Sun微系统达成协议的结果。为了取得技术优势,微软推出了JScript来迎战JavaScript的脚本语言。为了互用性,Ecma国际(前身为欧洲计算机制造商协会)创建了ECMA-262标准(ECMAScript)。两者都属于ECMAScript的实现。尽管JavaScript作为给非程序人员的脚本语言,而非作为给程序人员的脚本语言来推广和宣传,但是JavaScript具有非常丰富的特性。 [8]

发展初期,JavaScript的标准并未确定,同期有Netscape的JavaScript,微软的JScript和CEnvi的ScriptEase三足鼎立。1997年,在ECMA(欧洲计算机制造商协会)的协调下,由Netscape、Sun、微软、Borland组成的工作组确定统一标准:ECMA-262。

1995 – PHP

PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。注意不是“Hypertext Preprocessor”的缩写,这种将名称放到定义中的写法被称作递归缩写。PHP于1994年由Rasmus Lerdorf创建,刚刚开始是Rasmus Lerdorf为了要维护个人网页而制作的一个简单的用Perl语言编写的程序。这些工具程序用来显示 Rasmus Lerdorf 的个人履历,以及统计网页流量。后来又用C语言重新编写,包括可以访问数据库。他将这些程序和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程序。

1995年以Personal Home Page Tools (PHP Tools) 开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档。并且发布了PHP1.0!在这的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了PHP,并且强烈要求增加一些特性。比如循环语句和数组变量等等;在新的成员加入开发行列之后,Rasmus Lerdorf 在1995年6月8日将 PHP/FI 公开发布,希望可以透过社群来加速程序开发与寻找错误。这个发布的版本命名为 PHP 2,已经有 PHP 的一些雏型,像是类似 Perl的变量命名方式、表单处理功能、以及嵌入到 HTML 中执行的能力。程序语法上也类似 Perl,有较多的限制,不过更简单、更有弹性。PHP/FI加入了对MySQL的支持,从此建立了PHP在动态网页开发上的地位。到了1996年底,有15000个网站使用 PHP/FI。

ISAPI筛选器

ISAPI筛选器

1997年,任职于 Technion IIT公司的两个以色列程序设计师:Zeev Suraski 和 Andi Gutmans,重写了 PHP 的剖析器,成为 PHP 3 的基础。而 PHP 也在这个时候改称为PHP:Hypertext Preprocessor。经过几个月测试,开发团队在1997年11月发布了 PHP/FI 2。随后就开始 PHP 3 的开放测试,最后在1998年6月正式发布 PHP 3。Zeev Suraski 和 Andi Gutmans 在 PHP 3 发布后开始改写PHP 的核心,这个在1999年发布的剖析器称为 Zend Engine,他们也在以色列的 Ramat Gan 成立了 Zend Technologies 来管理 PHP 的开发。

2000年5月22日,以Zend Engine 1.0为基础的PHP 4正式发布,2004年7月13日则发布了PHP 5,PHP 5则使用了第二代的Zend Engine。PHP包含了许多新特色,像是强化的面向对象功能、引入PDO(PHP Data Objects,一个存取数据库的延伸函数库)、以及许多效能上的增强。PHP 4已经不会继续

PHP

PHP

更新,以鼓励用户转移到PHP 5。

2008年PHP 5成为了PHP唯一的有在开发的PHP版本。将来的PHP 5.3将会加入Late static binding和一些其他的功能强化。PHP 6 的开发也正在进行中,主要的改进有移除register_globals、magic quotes 和 Safe mode的功能。

PHP最新稳定版本:5.4.30(2013.6.26)

PHP最新发布的正式版本:5.5.14(2014.6.24)

PHP最新测试版本:5.6.0 RC2(2014.6.03)

2013年6月20日,PHP开发团队自豪地宣布推出PHP 5.5.0。此版本包含了大量的新功能和bug修复。需要开发者特别注意的一点是不再支持 Windows XP 和 2003 系统。

2014年10月16日,PHP开发团队宣布PHP 5.6.2可用。四安全相关的错误是固定在这个版本,包括修复cve-2014-3668,cve-2014-3669和cve-2014-3670。所有的PHP 5.6鼓励用户升级到这个版本。

1996 – WebDNA

1997 – Rebol

1999 – D

2000 – ActionScript

2001 – C#

C#是微软公司在2000年6月发布的一种新的编程语言,主要由安德斯·海尔斯伯格(Anders Hejlsberg)主持开发,它是第一个面向组件的编程语言,其源码会编译成msil再运行。它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,并且新增了许多功能及语法糖,而且它是微软公司.NET windows网络框架的主角。 [3]

C#读作C Sharp。最初它有个更酷的名字,叫做COOL。微软从1998年12月开始了COOL项目,直到2000年2月,COOL被正式更名为C#。在1998年,Delphi语言的设计者Hejlsberg带领着Microsoft公司的开发团队,开始了第一个版本C#语言的设计。在2000年9月,国际信息和通信系统标准化组织为C#语言定义了一个Microsoft公司建议的标准。最终C#语言在2001年得以正式发布。

Borland公司的首席研发设计师安德斯·海尔斯伯格(An

c#

c#

ders Hejlsberg)在微软开发了Visual J++ 1.0,很快的Visual J++由1.1版本升级到6.0版。SUN公司认为Visual J++ 违反了Java开发平台的中立性,对微软提出了诉讼。2000年6月26日微软在奥兰多举行的“职业开发人员技术大会”(PDC 2000)上,发表新的语言C#。C#语言取代了Visual J++,语言本身深受 Java、C 和 C++ 的影响。 [4]

C#是兼顾系统开发和应用开发的最佳实用语言,并且很有可能成为编程语言历史上的第一个“全能”型语言。看过这篇简史,不要把C#看成年轻后生了——只要是“马拉多纳”,就早晚当“球王”。C#1.0,纯粹的面向对象。 [5]

1998年底,微软正在忙于新一代COM的设计工作,COM一直是组件化开发中非常成功的一种技术;但由于它仅提供了二进制层面上的统一,因此无法将类型信息和用于支持基础平台和开发工具的信息放到组件中,Java逐步走向成熟。微软学习Java的做法,将虚拟机的概念引入到了COM领域;同时,微软提出了“元数据”的概念,用于描述组件的类型信息和工具支持信息,并决定将其放入到组件当中。 [6]

1998年12月,微软启动了一个全新的语言项目——COOL,这是一款专门为CLR设计的纯面向对象的语言,也正是本文的主角——C#的前身。 [7]

1999年7月份,微软完成了COOL语言的一个内部版本。 [7]

2000年2月份,微软才正式将COOL语言更名为C#。据说起这个名字是因为C#开发小组的人很讨厌搜索引擎,因此把大部分搜索引擎无法识别的“#”字符作为该语言名字的一部分;还有一种说法是在音乐当中“#”是升调记号,表达了微软希望它在C的基础上更上一层楼的美好愿望——当然这些都只是传说,无从考证。又是历经了一系列的修改,微软终于在2000年7月发布了C#语言的第一个预览版。 [7]

2001 – Visual Basic .NET

2002 – F#

2003 – Groovy

2003 – Scala

2007 – Clojure

2009 – Go

2011 – Dart

1951 年到 2014 年,人类一共发明了 256 种编程语言,每一种语言的出现都带有某些新特征。

未完待续。。。。。。

猜你喜欢

转载自www.cnblogs.com/azurite/p/9906628.html