編程語言(programming language),是用來定義計算機程序的形式語言。它是一種被標準化的交流技巧,用來向計算機發出指令。一種計算java
機語言讓程序員可以準確地定義計算機所須要使用的數據,並精確地定義在不一樣狀況下所應當採起的行動。python
Machine language(機器語言)c++
1951 – Regional Assembly Language(區域彙編語言)程序員
1952 – Autocode(自動編碼)正則表達式
自動代碼是「簡化編碼系統」家族的名稱,後來稱爲「簡化編碼系統」。編程語言,在20世紀50年代和60年代爲一系列的數字計算機在大學裏曼切斯特, 劍橋和倫敦。Autocode是一個通用術語;不一樣機器的自動代碼不必定是緊密相關的,例如,不一樣版本的單一語言。shell
今天,這個詞被用來指早期語言家族,起源於曼徹斯特馬克1自動編碼系統,一般是類似的。在20世紀60年代,這個詞自動編碼器更籠統地用於指任何高級程序設計語言使用編譯器.[1]稱爲自動代碼的語言示例包括科波和福特蘭.[2]數據庫
格倫尼(氏)自動代碼編程
馬克1自動代碼小程序
1954 – IPL (Information Processing Language LISP 語言的祖先)c#
信息處理語言 (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年六、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.三、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 種編程語言,每一種語言的出現都帶有某些新特徵。
未完待續。。。。。。