計算機編程語言的發展史java
1940s,產生了真正意義上的電子計算機,這個時期的語言因爲內存和計算能力的有限,都是使用硬件相關的彙編語言;c++
1950s~1960s,隨着電子技術的進步,計算機進入大型機時代,一些高級語言被逐漸開發出來主要用於系統級編程和數學計算,算法
Fortran(1950s由IBM團隊發明的數學計算語言),編程
COBOL(1950s由IBM等行業領袖推行的金融、商務系統開發語言),c#
LISP(用於人工智能領域,主要的數據結構是Linked List,全名爲List Process語言,引入了不少先進的特性如遞歸、動態類型、自動內存管理等特性)瀏覽器
ALGOL(用於算法描述、學術領域,引入嵌套結構,語法範圍等,很大的影響了BPCL,B,PASCAL等語言服務器
Basic(最先是爲給非科學領域的學生所編寫,Microsoft VB的前身)網絡
1970s,產生了C語言和一些早期的面向對象編程語言數據結構
C(1970s由Dennis Ritchie和Brian Kernighan發明的爲DEC機開發的系統編程語言,前身是BPCL,B語言)併發
Simula(第一個支持面向對象的編程語言)
SmallTalk(第一個完整實現面向對象特性的編程語言)
1980s,向PC時代過渡,語言特性的合併、優化、發展
C++(綜合了SmallTalk面向對象特性和C語言語法,最爲普遍應用的面嚮對象語言之一)
機器語言--->彙編語言-->高級計算機語言
機器語言:最初的計算機所使用的是由「0」和「1」組成的二進制數,二進制是計算機的語言的基礎。計算機發明之初,計算機只能被少部分人使用,人 們須要用0、1組成的指令序列交由計算機執行,對於機器語言的使用與普及都是很使人頭疼的問題。對於程序的移植能力幾乎沒有,從而時間成本,人力成本十分昂貴。但機器語言也不是沒有優點,因爲這種語言是直接對計算機硬件進行操做,因此在特定型號的計算機上面,運算效率也是很高的,機器語言的出 現對於將來的計算機語言發展起到了很好的推進做用,因此機器語言也是第一代計算機語言。
彙編語言:彙編語言是在機器語言的基礎上誕生的一門語言,用一些簡潔的英文字母、符號串來替代一個特定的指令的二進制串,這也提升了語言的記憶性和識別性。對於程序的開發與維護起到了積極做用。彙編語言一樣也是直接對硬件進行操做,這樣依然侷限了它的移植性。可是使用匯編語言針對計算機特定硬件而編制的彙編語言程序,對於計算機硬件的功能和特長的發揮已有了很大進步,它精煉而質量高,因此至今還是一種經常使用的程序開發語言。
高級計算機語言:在與計算機的不斷交流中,人們對計算機程序的移植性需求不斷提升,此時急須要一種不依賴於特定型號的計算機的語言,用這種語言編寫的程序能在在各類平臺都正常運行。從最初的語言誕生至今,已經相繼出現了幾百種語言。高級語言的發展也從最初的結構化語言發展成爲面向過程語言設計和麪向對象語言設計。面向過程語言設計的表明有:C語言,Fortran,cobol,pascal,ada等等一系列語言,而面嚮對象語言設計的表明則爲:java, c++,c#等。
對於面向過程的程序來講,執行順序是流水線似的,在一個模塊被執行完成前,人們不能幹別的事,也沒法動態地改變程序的執行方向,這偏偏與人們的平常處理事情的方式相矛盾。而對於面相對象的程序設計來講,很好的將事物象的部分抽取歸類,各個累與模塊之間能相互組合,完成特定的功能,同時又能重複使用。對使用者的技術要求也相對下降。
MATLAB(工業領域,工程計算語言)
Objective-C(iOS編程語言,已是Top5的語言之一)
Erlang(多重範式編程語言,函數式、併發式、分佈式,80年代由愛立信發明用於通訊網絡編程,現已普遍應用於互聯網高併發分佈式計算領域,最有名的做品包括CouchDB/RabbitMQ)
Perl(源於Unix腳本的動態語言,初衷是爲了使報告更容易處理,借鑑了C/sh/AWK和SED)
Tcl(曾經是很流行的測試腳本語言,如今已經沒落)
1990s,PC時代,互聯網時代萌芽,產生了不少動態語言和可視化編程集成環境IDE
Windows因爲壟斷PC市場,其基於VC/VB的桌面應用開發曾經是客戶端開發技術的主流,
隨之而來催生了大量的基於Windows SDK客戶端應用,MFC是其中最爲知名的一個C++類庫實現
Python/Ruby/Lua/PHP/JS
Java(發展爲3個體系,J2SE/J2EE/J2ME,J2EE包含一些企業特性如JDBC, JPA, JTA/JMS/EJB,J2ME是移動版本)
Visual Basic/Visual C++/Delphi(Object Pascal)/Power Builder
Javascript(瀏覽器客戶端腳本,Netscape發明,包含ECMAScript核心腳本, DOM文檔對象模型, BOM瀏覽器對象模型三部分)
2000s~如今, 互聯網/移動互聯網時代,C/S模式進化爲B/S模式,Java/PHP/.Net大行其道,並行計算/分佈式計算愈來愈重要
ActionScript(Adobe公司發明,面向對象的Flash開發語言)
C#/Visual Basic.Net
Groovy(由VMVare支持,基於Java平臺的動態語言,支持元數據編程Metaprogramming,動態擴展對象數據,如反射,
還好比範型編程(如C++的STL,最先版本由HP實現)能爲語言提供運行時再肯定的動態類型特性,能夠大大簡化編碼)
Go (C語言之父發明的並行計算語言)
Node.js(服務器端的JS運行環境,Js語言在服務器端的延伸,具備單線程,高併發的特性)