1951 – Regional Assembly Languagepython
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 – Java
1995 – PHP
1996 – WebDNA
1997 – Rebol
1999 – D
2000 – Action
2001 – C#
2001 – Visual Basic .NET
2002 – F#
2003 – Groovy
2003 – Scala
2007 – Clojure
2009 – Go
2011 – Dart
一張圖讓你瞭解編程語言發展史
咱們都知道,編程語言是一組用來定義計算機程序的語法規則。它是一種被標準化的交流語言,用來向計算機發出指令。一種計算機語言讓程序員可以準確地定義計算機所須要使用的數據,並精確地定義在不一樣狀況下所應當採起的行動。儘管人們屢次試圖創造一種通用的程序設計語言,卻沒有一次嘗試是成功的。之因此有那麼多種不一樣的編程語言存在的緣由是設計程序語言的初衷不一樣,對語言學習曲線的追求不一樣,不一樣程序之間的運行成本差別等。
下面這張圖片描繪了整個編程語言的歷史。包括各類編程語言的發明人,編程語言的特色和適用領域,被什麼網站或公司使用等。
從1951年2014年,人類一共發明了256種編程語言,每一種語言的出現都帶有某些新特徵。編程語言不斷的在革新,很快就會有超出這個清單的新編程語言出現
1801- Joseph Marie Jacquard用打孔卡爲一臺織布機編寫指令,在掛毯上織出了「hello, world」字樣。當時的reddit網友對這項工做的反響並不熱烈,由於它既缺乏尾遞歸調用,又不支持併發,並且甚至都沒有注意在拼寫時恰當地區分大小寫。
Jacquard織布機是第一臺可進行程序控制的織布機。用打孔卡進行編程的概念,直到電子計算機被髮明出來以後仍然被普遍運用。
最先的(出自K&R C)打印的是全小寫的字符串:"hello, world"。
在許多英文技術社區裏,不正確地使用大小寫發貼會被視做是小白的行爲。(如把「Python」拼做「python」,把「FreeBSD」拼做「freebsd」,把「Qt」拼做「QT」)
1842- Ada Lovelace寫了世界上第一個程序。她的努力只遇到了一點點小小的麻煩,那就是:實際上並無任何計算機可以用來運行她的程序。後來的企業架構師們從新吸取了她的這個技能,用來學習如何更好地使用UML進行編程。
Ada Lovelace爲Charles Babbage的分析機寫了一個計算伯努利數的算法實現,所以被後世公認爲是世界上第一個程序員。實際上,分析機因爲其設計思想過於先進,在當時根本沒有 被製造出來。(Babbage的分析機通常被認爲是現代電子通用計算機的先驅)
諷刺如今的某些「軟件架構師」頂多只會紙上談兵地畫畫UML。
1936- Alan Turing發明了世間一切程序語言的最終形態,但很快他就被英國軍情六處「請」去當007了,以致於他根原本不及爲這些語言申請專利。
與通用圖靈機(Universal Turing machine)等價的語言被稱爲圖靈完備的(Turing completeness),它定義了「什麼樣的語言能夠被稱做是程序語言」。
二戰期間Turing曾祕密地爲英國軍方工做,破解德軍的Enigma密碼機,並在戰後被授予大英帝國勳章。但這項事實直到多年之後才向公衆公開。
1936- Alonzo Church同時也發明了世間一切程序語言的最終形態,甚至作得更好。但他的λ演算被絕大部分人忽視了,由於它與C語言「不夠像」。儘管存在着這樣的批評,但事實上,C在當時尚未被髮明出來。
Church是Turing在Princeton的博士生導師,他在λ演算方面的工做先於Turing指出了不存在一個對可斷定性問題的通用解法,這後來證實和Turing針對停機問題提出的圖靈機模型是等價的。即著名的。
說Church「甚至作得更好」,由於λ演算爲後世全部的函數式語言提供了理論基礎。
如今一種常見的關於函數式編程的批評就是:「它們與C語言不夠像」。
1940年代- 一些直接採用佈線和開關來進行程序控制的「計算機」出現了。工程師們當時這麼作,聽說是爲了避開「用空格仍是用製表符縮進」這樣的論戰。
聽說當時負責設計ENIAC的工程師中間曾經發生過這樣的爭論:
空格比製表符好。
製表符比空格好。
4個空格比8個空格好。
什麼?用2個空格的通通燒死。
關於這臺具備里程碑意義的人類史上第一臺電子計算機ENIAC上應該預裝何種編輯器,工程師們還發生過這樣的爭吵:
Vim比Emacs好!
Emacs比Vim好!
強烈推薦Sublime Text。
你丫用編輯器的都是找虐,IDE纔是王道。
沒錯,要用就用世界上最好的公司微軟開發出來的世界上最好的IDE:Visual Studio。
我早就看透了無謂的編輯器論戰什麼的了,我要告訴樓上吵架的,大家全都是傻逼!
最後,工程師們一致決定使用佈線和開關來爲他們即將發明的計算機進行編程,機智地避開了全部這些無謂的爭吵,最終齊心合力創造出了人類歷史上第一臺電子計算