編程語言的起源

1. 編程語言的起源

1. Java 的起源

1990 年代初,任職於 Sun 公司的詹姆斯·高斯林等人開始開發 Java 語言的雛形,最初被命名爲 Oak,目標設置在家用電器等小型系統的程序語言,應用在電視機、電話、鬧鐘、烤麪包機等家用電器的控制和通信。因爲這些智能化家電的市場需求沒有預期的高, Sun 公司放棄了該項計劃。隨着 1990 年代互聯網的發展, Sun 公司看見 Oak 在互聯網上應用的前景,因而改造了 Oak,於1995年5月以 Java 的名稱正式發佈。Java 伴隨着互聯網的迅猛發展而發展,逐漸成爲重要的網絡編程語言。java

與傳統型態不一樣, Sun 公司在推出 Java 時就將其做爲開放的技術。全球數以萬計的 Java 開發公司被要求所設計的Java軟件必須相互兼容。「Java語言靠羣體的力量而非公司的力量」是 Sun 公司的口號之一,並得到了廣大軟件開發商的認同。這與微軟公司所倡導的注重精英和封閉式的模式徹底不一樣,此外,微軟公司後來推出了與之競爭的 .NET 平臺以及模仿 Java 的 C# 語言。後來 Sun 公司被甲骨文公司併購,Java 也隨之成爲甲骨文公司的產品。程序員

Java 的創造是爲了完成 WORA(Write once, run anywhere 一次編寫處處運行)的理念,它的平臺獨立性使它在企業應用中得到了巨大成功。到目前爲止,它已經成爲了最流行的一門應用程序編程語言,被普遍應用於企業級Web應用開發和移動應用開發。golang

2. C++ 的起源

這個構思起源於 Stroustrup 作博士論文時的一些程序撰寫經驗。他發現 Simula 具有很利於大型軟件開發的特色,但 Simula 的運行速度太慢,沒法對現實需求發揮功效;BCPL 雖快得多,但它過於低級的特性,使其不適於大型軟件的開發。當 Stroustrup 開始在貝爾實驗室工做時,他有分析 UNIX 核心關於分佈式計算的問題。回想起他的博士論文經驗,Stroustrup 開始爲 C 語言加強一些相似 Simula 的特色。之因此選擇 C,是由於它適於各類用途、快速和可移植性。除了 C 和 Simula 以外,同時也從其它語言中獲取靈感,如 ALGOL 6八、Ada、CLU 以及 ML。剛開始時,類、派生類、存儲類型檢查、內聯和默認參數特性,都是經過 Cfront 引入 C 語言之中。1985 年 10 月出現了第一個商業化發佈。正則表達式

1983 年,C with Classes 改命名爲 C++。加入了新的特性,其中包括虛函數、函數名和運算符重載、參考、常數、用戶可控制的自由空間存儲區控制、改良的類型檢查,以及新的雙斜線(//)單行註解風格。1985年,發佈初版《C++程序設計語言》,提供一個重點的語言參考,至此還不是官方標準。1989年,發佈了Release 2.0。引入了多重繼承、抽象類、靜態成員函數、常數成員函數,以及成員保護。1990年,出版了The Annotated C++ Reference Manual。這本書後來成爲標準化的基礎。稍後還引入了模板、異常處理、名字空間、新的強制類型轉換,以及布爾類型。算法

C++ 這個名字是 Rick Mascitti 於 1983 年中所建議的,並於 1983 年 12 月首次使用。更早之前,尚在研究階段的發展中語言曾被稱爲「new C」,以後是「C with Classes」。在計算機科學中,C++ 仍被稱爲 C 語言的上層結構。它最後得名於 C 語言中的「++」操做符(其對變量的值進行遞增)。並且在共同的命名約定中,使用「+」以表示加強的程序。Stroustrup 說:「這個名字象徵着源自於C語言變化的天然演進」。C+ 是一個和 C/C++ 無關的早期編程語言。shell

3. ASP.NET 的起源

1997 年時,微軟開始針對 ASP 的缺點(尤爲是意大利麪型的程序開發方法)準備開始一個新項目來開發,當時 ASP.NET 的主要領導人 Scott Guthrie 剛從杜克大學畢業,他和 IIS 團隊的 Mark Anders 經理一塊兒合做兩個月,開發出了下一代 ASP 技術的原型,這個原型在 1997 年的聖誕節時被髮展出來,並給予一個名稱:XSP,這個原型產品使用的是 Java 語言。不過它立刻就被歸入當時還在開發中的 CLR 平臺,Scott Guthrie過後也認爲將這個技術移植到當時的 CLR 平臺,確實有很大的風險,但當時的 XSP 團隊倒是以 CLR 開發應用的第一個團隊。數據庫

爲了將 XSP 移植到 CLR 中,XSP 團隊將 XSP 的核心程序所有以 C# 語言從新撰寫(在內部的項目代號是 "Project Cool",可是當時對公開場合是保密的),而且更名爲 ASP+,做爲 ASP 技術的後繼者,而且也會提供一個簡單的移轉方法給 ASP 開發人員。ASP+ Beta 版本以及應用在 PDC 2000 中亮相,由 Bill Gates 主講,由富士通公司展現使用 COBOL 語言撰寫 ASP+ 應用程序,而且宣佈它可使用 Visual Basic .NET、C#、Perl、Nemerle 與 Python 語言來開發。npm

在 2000 年第二季時,微軟正式推進 .NET 策略,ASP+ 也瓜熟蒂落的更名爲 ASP.NET,通過四年的開發,第一個版本的 ASP.NET 在 2002 年 1 月 5 日亮相(和.NET Framework 1.0),Scott Guthrie 也成爲ASP.NET的產品經理(到如今已經開發了數個微軟產品,像 ASP.NET AJAX 和 Microsoft Silverlight)。編程

4. PHP 的起源

PHP 本來的簡稱爲 Personal Home Page,是拉斯姆斯·勒多夫爲了要維護我的網頁,而用 C 語言開發的一些CGI 工具程序集,來替換原先使用的 Perl 程序。最初這些工具程序用來顯示拉斯姆斯·勒多夫的我的履歷,以及統計網頁流量。他將這些程序和一些窗體解釋器集成起來,稱爲 PHP/FI。PHP/FI 能夠和數據庫鏈接,產生簡單的動態網頁程序。拉斯姆斯·勒多夫在 1995 年 6 月 8 日將 PHP/FI 公開發布,但願能夠經過社區來加速程序開發與查找錯誤。這個發佈的版本命名爲 PHP 2,已經有今日 PHP 的一些雛型,像是相似 Perl 的變量命名方式、窗體處理功能、以及嵌入到 HTML 中運行的能力。程序語法上也相似 Perl,有較多的限制,不過更簡單、更有彈性。swift

在 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 5。

2008 年 PHP 5 成爲了 PHP 惟一維護中的穩定版本。如今已經有超過 2000 萬個網站和 100 萬個Web服務器使用了這門語言,Facebook、Wikipedia、Wordpress 以及 Joomla 這些互聯網巨頭都在使用它。

5. JavaScript 的起源

最初由 Netscape 的 Brendan Eich 設計。 是甲骨文公司的註冊商標。ECMA 國際以 爲基礎制定了 ECMAScript 標準。 也能夠用於其餘場合,如服務器端編程。完整的 實現包含三個部分:ECMAScript,文檔對象模型,瀏覽器對象模型。

Netscape 在最初將其腳本語言命名爲 LiveScript,後來 Netscape 在與 Sun 合做以後將其更名爲 。 最初受 Java 啓發而開始設計的,目的之一就是「看上去像 Java」,所以語法上有相似之處,一些名稱和命名規範也借自 Java。但 的主要設計原則源自 Self 和 Scheme。 與 Java 名稱上的近似,是當時 Netscape 爲了營銷考慮與 Sun 微系統達成協議的結果。爲了取得技術優點,微軟推出了 JScript 來迎戰 的腳本語言。爲了互用性,Ecma 國際(前身爲歐洲計算機制造商協會)建立了 ECMA-262 標準(ECMAScript)。二者都屬於 ECMAScript 的實現。儘管 做爲給非程序人員的腳本語言,而非做爲給程序人員的腳本語言來推廣和宣傳,可是 具備很是豐富的特性。

6. 「紅寶石」語言的起源

1993年,松本行弘開始 Ruby 語言的研發工做,試圖集成腳本語言中最好的特色,基於 C 語言開發,但比 Perl 更強大,比 Python 更面向對象。1994 年,松本行弘獨立完成 Ruby 的第一個 Alpha 版,那年他才28歲。松本行弘把它取名 Ruby,也因這名字是一種美麗珍貴的紅寶石之意。Ruby 自己也極具魅力——這種解釋型腳本語言,既有腳本語言強大的字符串處理能力和正則表達式,又不失解釋型語言的動態性。

此外,松本行弘還借鑑了 Perl 語言在文字處理方面的優點,由 Ruby 編寫的程序不需事先編譯便可直接運行,所以利於實現開發過程當中的快速反饋,極大地方便了程序的調試。1995 年 Ruby 腳本語言的第一個版本發佈後,因其大大提升了開發者的工做效率,讓編程更有樂趣,很快在日本很是流行。

1997 年開始,松本行弘在「株式會社 Network 應用通訊研究所」擔任特別研究員,專一於 Ruby 的開發。2000年,Dave Thomas 首次將這 Ruby 介紹到了英文社區,很快掀起了 Ruby 語言的熱潮。Ruby 的靈活特性給動態編程語言注入了新的活力,逐漸得到全世界範圍的程序設計者的喜好。

世界上沒有一種完美的語言,Ruby 也同樣。儘管 Ruby 很棒,但不少人仍是以爲他的性能效率較低。不過好在後來開發者也經過一些擴展來彌補 Ruby 的瓶頸。2004年,丹麥人 David Heinemeier Hansson 用 Ruby 語言開發的一種 Web 框架 Ruby on Rails,可達到 J2EE 開發速度的 10 倍以上,被不少人視爲「軟件開發的銀彈」,Ruby 開始在全球範圍內流行。

7. Scala 的起源

Scala 是一門多範式的編程語言,一種相似 Java 的編程語言,設計初衷是實現可伸縮的語言、並集成面向對象編程和函數式編程的各類特性。

2001 年,洛桑聯邦理工學院的馬丁·奧德斯基開始基於 Funnel 的工做開始設計 Scala。Funnel 是把函數式編程思想和佩特里網相結合的一種編程語言。 奧德斯基以前工做於 Generic Java 和 javac。Java 平臺的Scala 於 2003 年末/ 2004 年初發布。.NET 平臺的 Scala 發佈於 2004 年 6 月。該語言第二個版本,v2.0,發佈於 2006 年 3 月。2009 年 4 月,Twitter 宣佈他們已經把大部分後端程序從 Ruby 遷移到Scala,其他部分也打算要遷移。此外, Wattzon 已經公開宣稱,其整個平臺都已是基於 Scala 基礎設施編寫的。

2014 年,馬丁·奧德斯基宣佈 Scala 2.12 將要簡化語法,推出 Scala "Don Giovanni" 項目的時候,表示:「Scala 如今是爲聰明人創造的,之後也是爲聰明人服務的。」 不一樣於 Python 讓程序員用一種方法作全部事情,Scala 提供一整套工具,讓程序員自由選擇,不管是 mutable 數據結構,immutable 數據結構,並行(parallel)數據結構。而後在這些選擇中,Scala 再針對他們進行算法層面的特殊優化。Scala 相信程序員的聰明才智,讓程序員自行選擇合適的結構,以針對變化萬千的任務需求,這點是 Scala 作得好的地方。

8. Python 的起源

1989 年的聖誕節期間,吉多·範羅蘇姆爲了在阿姆斯特丹打發時間,決心開發一個新的腳本解釋程序,做爲 ABC 語言的一種繼承。之因此選中 Python 做爲程序的名字,是由於他是 BBC 電視劇——蒙提·派森的飛行馬戲團(Monty Python's Flying Circus)的愛好者。ABC 是由吉多參加設計的一種教學語言。就吉多本人看來,ABC 這種語言很是優美和強大,是專門爲非專業程序員設計的。可是 ABC 語言並無成功,究其緣由,吉多認爲是非開放形成的。吉多決心在 Python 中避免這一錯誤,並獲取了很是好的效果,完美結合了 C 和其餘一些語言。

就這樣,Python 在吉多手中誕生了。實際上,第一個實現是在 Mac 機上。能夠說,Python 是從 ABC 發展起來,主要受到了 Modula-3(另外一種至關優美且強大的語言,爲小型團體所設計的)的影響。而且結合了 Unix shell 和C 的習慣。目前吉多仍然是 Python 的主要開發者,決定整個 Python 語言的發展方向。Python 社區常常稱呼他是仁慈的獨裁者(BDFL),意思是他仍然關注 Python 的開發進程,並在必要的時刻作出決定。

Python 的設計哲學是「優雅」、「明確」、「簡單」。Python 開發者的哲學是「用一種方法,最好是隻有一種方法來作一件事」。在設計 Python 語言時,若是面臨多種選擇,Python 開發者通常會拒絕花俏的語法,而選擇明確沒有或者不多有歧義的語法。這些準則被稱爲「Python 格言」。

9. Go 的起源

Go,又稱 golang,是 Google 開發的一種靜態強類型、編譯型,併發型,並具備垃圾回收功能的編程語言。

羅伯特·格瑞史莫,羅勃·派克(Rob Pike)及肯·湯普遜於 2007 年 9 月開始設計 Go 語言,稍後 Ian Lance Taylor, Russ Cox 加入項目中。谷歌把 Go 做爲一個 20% 項目開始研發,即讓員工抽出本職工做以外時間的 20%, 投入在該項目上。除了派克外,該項目的成員還有其餘谷歌工程師也參與研發。對於開發這門語言的原由,派克說:咱們之因此開發 Go,是由於過去 10 多年間軟件開發的難度使人沮喪。

Go 語言是基於 Inferno 操做系統所開發的。Go 語言於 2009 年 11 月正式宣佈推出,成爲開放源代碼項目,並在 Linux 及 MacOS X 平臺上進行了實現,後追加 Windows 系統下的實現。2010 年 1 月 10 日,Go 語言摘得了 TIOBE 公佈的 2009 年年度大獎,該獎項授予在 2009 年市場份額增加最多的編程語言

10. Android 的起源

2003 年 10 月,安迪·魯賓(Andy Rubin)在美國建立了 Android 科技公司(Android Inc.),並與利奇·米納爾(Rich Miner)、尼克·席爾斯(Nick Sears)、克里斯·懷特(Chris White)共同發展這家公司。Android 系統最初由安迪·魯賓(Andy Rubin)等人開發製做,最初開發這個系統的目的是建立一個數碼相機的先進操做系統,可是後來發現市場需求不夠大,加上智能手機市場快速成長,因而 Android 被改造爲一款面向智能手機的操做系統。談到建立 Android 科技公司的緣由,魯賓說:「聰明的移動設備能更好的意識到用戶的愛好和要求。」儘管 Android 科技公司的創始人和員工過去都具備各自的科技成就,可是 Android 科技公司的經營只顯露出它在智能手機軟件的方面,這時魯賓爲 Android 科技公司花光全部錢。

2005 年 8 月 17 日,Google 低調收購了成立僅 22 個月的高科技企業 Android 及其團隊。安迪魯賓成爲Google 公司工程部副總裁,繼續負責 Android 項目。2007 年 11 月 5 日,谷歌公司正式向外界展現了這款名爲 Android 的操做系統,而且在這天谷歌宣佈創建一個全球性的聯盟組織,該組織由34家手機制造商、軟件開發商、電信運營商以及芯片製造商共同組成,並與 84 家硬件製造商、軟件開發商及電信營運商組成開放手持設備聯盟(Open Handset Alliance)來共同研發改良 Android 系統。

2013 年 09 月 24 日谷歌開發的操做系統 Android 迎來了 5 歲生日,全世界採用這款系統的設備數量已經達到 10 億臺。

11. Swift 的起源

2010 年 7 月,蘋果開發者工具部門總監克里斯·拉特納開始着手 Swift 編程語言的設計工做,以一年時間,完成基本架構後,他領導了一個設計團隊大力參與其中。Swift 大約歷經4年的開發期,2014 年 6 月發表。

蘋果宣稱 Swift 的特色是:快速、現代、安全、互動,並且明顯優於 Objective-C 語言。Swift 以 LLVM 編譯,可使用現有的 Cocoa 和 Cocoa Touch 框架。Xcode Playgrounds 功能是 Swift 爲蘋果開發工具帶來的最大創新,該功能提供強大的互動效果,能讓 Swift 源代碼在撰寫過程當中能即時顯示出其運行結果。拉特納本人強調,Playgrounds 很大程度是受到佈雷特·維克多(Bret Victor)理念的啓發。

2015 年 6 月 8 日,蘋果於 WWDC 2015 上宣佈,Swift 將開放源代碼,包括編譯器和標準庫。

2015 年 12 月 3 日,蘋果宣佈開源 Swift,並支持 Linux,蘋果在新網站 swift.org 和託管網站 Github 上開源了 Swift,但蘋果的 app store 並不支持開源的 Swift,只支持蘋果官方的 Swift 版本,官方版本會在新網站 swift.org 上按期與開源版本同步。

12. Node.js 的起源

Node.js 由 Ryan Dahl 和一些其餘的開發者於2009年在 Joyent 工做時發明。Node.js 在2009年初次發佈於Linux。 開發和維護工做由 Dahl 主持,其工做單位 Joyent 同時贊助這些工做。

Dahl 設計 Node.js 的靈感來自於 Flickr 上的一款上傳進度欄,瀏覽器並不清楚多少文件內容已被上傳,除非向服務器進行查詢。Dahl 因而設計了一個更簡便的方法。這個集成了 Google V8 JavaScript 引擎和一個底層 I/O API 的項目由 Dahl 在 inaugural European JSConf 向公衆進行展現。

Node.js 已經有數十萬模塊,它們能夠經過一個名爲 npm 的管理器免費下載。

相關文章
相關標籤/搜索