淺談語言的過去與未來
各個語言的的出現時間:
1951 – Regional Assembly Language
1952 – Autocode
1954 – IPL (LISP 語言的祖先)
1955 – FLOW-MATIC (COBOL 語言的祖先)
1957 – FORTRAN (第一個編譯型語言)
1957 – COMTRAN (COBOL 語言的祖先)
1958 – LISP
1958 – ALGOL 58
1959 – FACT (COBOL 語言的祖先)
1959 – COBOL
1959 – RPG
1962 – APL
1962 – Simula
1962 – SNOBOL
1963 – CPL (C語言的祖先)
1964 – BASIC
1964 – PL/I
1966 – JOSS
1967 – BCPL (C語言的祖先)
1968 – Logo
1969 – B (C語言的祖先)
1970 – Pascal
1970 – Forth
1972 – C
1972 – Smalltalk
1972 – Prolog
1973 – ML
1975 – Scheme
1978 – SQL
1980 – C++ (既有類的C語言,更名於 1983 年 7 月)
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
1991 – Visual Basic
1993 – Ruby
1993 – Lua
1994 – CLOS (ANSI Common Lisp 的一部分)
1995 – Java
1995 – Delphi (Object Pascal)
1995 – JavaScript
1995 – PHP
1996 – WebDNA
1997 – Rebol
1999 – D
2000 – ActionScript
2001 – C#
2001 – Visual Basic .NET
2002 – F#
2003 – Groovy
2003 – Scala
2007 – Clojure
2009 – Go
2011 – Dart
從 1951 年到 2014 年,人類一共發明了 256 種程式語言,每一種語言的出現都帶有某些新特徵。程式語言不斷的在革新,很快就會有超出這個清單的新程式語言出現。
·第一代語言:機器語言(相當於人類的原始階段)
機器語言由數字組成所有指令。當讓你使用數字程式設計,寫幾百個數字、甚至幾千個數字,每天面對的是純數字,我大膽預測:“程式設計師群體100%會有精神問題”。
機器語言通常由數字串組成(最終被簡化成01),對於人類來說,機器語言過於繁瑣。使用機器語言,人類無法編出複雜的程式。如下為一段典型的機器碼:
1. 0000,0000,000000010000 代表 LOAD A, 16
2. 0000,0001,000000000001 代表 LOAD B, 1
3. 0001,0001,000000010000 代表 STORE B, 16
·第二代語言:組合語言(相當於人類的手工業階段)
為了程式設計的方便,以及解決更加複雜的問題。程式設計師開始改進機器語言,使用英文縮寫的助記符來表示基本的計算機操作。這些助記符構成了組合語言的基礎。如下是一些常見的組合語言助記符(單詞)比如:LOAD、MOVE之類,這樣人更容易使用了。識別幾百、幾千個單詞,感覺要比幾百幾千個數字,美妙多了。組合語言相當於人類的手工業社會,需要技術極其嫻熟的工匠,但是開發效率也非常低。
組合語言雖然能編寫高效率的程式,但是學習和使用都不是易事,並且很難除錯。另一個複雜的問題,組合語言以及早期的計算機語言(Basic、Fortran等)沒有考慮結構化設計原則,而是使用goto語句來作為程式流程控制的主要方法。這樣做的後果是:一大堆混亂的調轉語句使得程式幾乎不可能被讀懂。對於那個時代的程式設計師,能讀懂上個月自己寫的程式碼都成為一種挑戰。
組合語言仍然應用於工業電子程式設計領域、軟體的加密解密、計算機病毒分析等。
·第三代:高階語言(相當於人類的工業階段)
對於簡單的任務,組合語言可以勝任。但是隨著計算機的發展,滲透到了工作生活的更多的方面,一些複雜的任務出現了,組合語言就顯得力不從心(應該說是程式設計師使用匯編語言解決複雜問題出現了瓶頸)。於是,出現了高階語言。像我們熟知的C、C++、Java等等都是高階語言。
高階語言允許程式設計師使用接近日常英語的指令來編寫程式。高階語言的出現,尤其是面嚮物件語言的出現,相當於人類的工業社會,高階語言極其易用,程式設計門檻和難度大大降低,大量的人員進入軟體開發行業,為軟體爆發性的增長提供了充足的人力資源。目前以及可預見的將來,計算機語言仍然處於“第三代高階語言”階段。計算機語言趨勢面向物件程式設計以及資料抽象在現代程式設計思想中佔有很重要的地位,未來語言的發展將不在是一種單純的語言標準,將會以一種完全面向物件,更易表達現實世界,更易為人編寫,其使用計算機語言將不再只是專業的程式設計人員,人們完全可以用訂製真實生活中一項工作流程的簡單方式來完成程式設計。
未來形式:
計算機語言趨勢面向物件程式設計以及資料抽象在現代程式設計思想中佔有很重要的地位,未來語言的發展將不在是一種單純的語言標準,將會以一種完全面向物件,更易表達現實世界,更易為人編寫,其使用計算機語言將不再
只是專業的程式設計人員,人們完全可以用訂製真實生活中一項工作流程的簡單方式來完成程式設計。
未來發展的三個方向:
1.併發式。 2.宣告式。 3.函式式。 4.動態式。