一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

編程語言1800年至2018年人事物編年史(14k字,附PDF發(fā)“編程語言史”下載)

 超人的歸屬 2019-09-08

編程語言1800年至2018年人事物編年史

|秦隴紀(jì),數(shù)據(jù)簡化DataSimp?20190107Mon-20190416Tue

編年史指一個整體對紀(jì)年的統(tǒng)一的體裁,是一種形象化的歷史記錄方式。特點是以時間為經(jīng)、以事件為緯來記載歷史事件。有利于讀者按照事件發(fā)展的先后順序了解歷史事件,便于了解歷史事件間的互相聯(lián)系;但是不便于集中描寫人物、事件,一個人物、事件分散在不同的年代,讀者不易了解其全貌。自公元9世紀(jì)下半葉后,編年史與年代記之間的差別變得模糊不清。

1:編程語言簡史Medium網(wǎng)文配圖

編程語言的歷史早于真正意義的計算機的出現(xiàn)。19世紀(jì)就有可編程的織布機和鋼琴彈奏裝置出現(xiàn),它們都是領(lǐng)域特定語言(DSL)的樣例。有一些常用的或?qū)嵱玫木幊陶Z言,比如:

1951 –Regional Assembly Language

1952 –Autocode

1954 – IPL(LISP語言的祖先)

1955 –FLOW-MATIC (COBOL語言的祖先)

1957 – FORTRAN(第一個編譯型語言)

1957 – COMTRAN(COBOL語言的祖先)

1958 – LISP

1958 – ALGOL58

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語言,更名于19837)

1983 – Ada

1984 – CommonLisp

1984 – MATLAB

1985 – Eiffel

1986 –Objective-C

1986 – Erlang

1987 – Perl

1988 – Tcl

1988 –Mathematica

1989 – FL

1990 – Haskell

1991 – Python

1991 – VisualBasic

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 – VisualBasic .NET

2002 – F#

2003 – Groovy

2003 – Scala

2007 – Clojure

2009 – Go

2011 – Dart

編寫程序代碼用到一門門計算機語言,各種語言搭建了人與計算機溝通的橋梁。通過編寫代碼,人類可以用各種指令命令計算機執(zhí)行算術(shù)、音像媒體、開發(fā)網(wǎng)頁、開發(fā)軟件、搭建游戲... ... 編程語言是前輩們發(fā)揮聰明才智創(chuàng)造出來的,前輩們的創(chuàng)造過程雖然充滿了有趣與巧合,但是并不神秘。本文綜合著名媒體Medium網(wǎng)文https:///commitlog/a-brief-totally-accurate-history-of-programming-languages-cd93ec806124,Neostrategos2013417日分享的博文《編程語言的歷史》,Rackspace公司發(fā)布的編程語言演變的數(shù)據(jù)圖表等相關(guān)報道,按年份綜合梳理編程語言發(fā)展歷史。描述時加入了很多個人情感和社會流行元素,有調(diào)侃語句,但配圖基本是靠譜的。

1951年至今,人類一共發(fā)明了256種編程語言,每一種語言的出現(xiàn)都帶有某些新特征。編程語言不斷的在革新,很快就會有超出這個清單的新編程語言出現(xiàn)。從1800年算起總體上編程語言分三階段:一是1800年到1950年,從最早1800Jacquard寫的打孔卡指令開始,到匯編語言;二是1951年到1990年,從Fortran演變,貫穿了Cobol,Basic,C,Pascal,C++,Perl等早期高級語言,以及3個曾相當(dāng)具有影響力的語言:LispAlgol60Smalltalk;三是1991年至2018年,從PythonRuby,PHP,Java,JavaScript,直到Ruby on Rails為止。兩大通用高級語言和三大膠水語言時代,軟件架構(gòu)開始出現(xiàn)并逐步形成當(dāng)下編程主流。

一、最早1800年到1950年的編程語言

2Joseph Marie Jacquard

1800年,Joseph Marie Jacquard讓織布機學(xué)會了讀穿孔卡片,造出了第一臺重度使用多線程處理單元的機器,并打印出了Hello world字樣。預(yù)見到天網(wǎng)(Skynet)誕生的織布工們激烈地反對該項發(fā)明。

31801Jacquard寫的打孔卡指令

4Ada Lovelace

1842年,Ada Lovelace(英國詩人拜倫之女)厭倦了貴族生活,于是在記事本上寫寫畫畫,而記事本上的這些內(nèi)容被后世稱作第一個發(fā)布的計算機程序??上М?dāng)年沒有電腦,真是不巧。

5Ada Lovelace寫了世界上第一個程序

6Alan Turing

1936年,Alan Turing啥都發(fā)明了,但英國法庭看他不順眼,還閹了他。后來女王免了他的罪名,雖然當(dāng)時他已經(jīng)死去幾百年了。

7Alan Turing發(fā)明了一切程序語言的最終形態(tài)

8Alonzo Church

1936年,Alonzo ChurchTuring一樣啥都發(fā)明了,但他生活在太平洋彼岸(也不是基佬)所以沒被女王人道主義。

9Alonzo Church同時發(fā)明了一切語言的最終形態(tài),還有λ

1940年代,實現(xiàn)Alonzo ChurchTuring發(fā)明的低進制機器(詳見科學(xué)Sciences網(wǎng)文)成批出現(xiàn)。

二、1951年到1990年的編程語言

二是1951年到1990年,從Fortran演變,貫穿了Cobol,Basic,C,Pascal,C++,Perl等早期高級語言,以及3個曾相當(dāng)具有影響力的語言:Lisp,Algol60Smalltalk。

11John Backus

1957年,John Backus發(fā)明Fortran語言,也是真正的編程者使用的第一種計算機語言。

1958年,John McCarthy發(fā)明Lisp語言,引入遞歸。

13John McCarthy

14Grace Hopper

1959年,Grace Hopper發(fā)明了第一個面向企業(yè)、可用的編程語言,命名為通用的業(yè)務(wù)導(dǎo)向語言,簡稱為COBOL。

16John Kemeny

1964年,John KemenyThomas Kurtz都覺得現(xiàn)有計算機語言的編程太難了,人們需要回歸基礎(chǔ)(basic),因而將他們發(fā)明的計算機語言稱之為BASIC。進一步降低了編程門檻。

17John KemenyThomasKurtz

18Niklaus Wirth

1970年,Niklaus Wirth創(chuàng)造了Pascal和幾門其它語言(他就是這么愛創(chuàng)造語言),他還創(chuàng)造了沃斯定律。相形之下摩爾定律就過時了,因為軟件開發(fā)者基于摩爾定律寫的軟件太臃雜了,連主機都帶不動。后來Electron.js的發(fā)明和基于它的抽象概念也證明了這一點。

19Guy SteeleGeraldSussman

20Dennis Ritchie

1972年,Dennis Ritchie在貝爾實驗室里對工作產(chǎn)生了厭倦,于是決定搞個帶大括號的C語言,并取得了巨大的成功。之后,他在語言中加入分段錯誤和其它一些對開發(fā)者友好的功能來增強C語言的生產(chǎn)力。干完這些工作后,離下班還有幾小時,所以他和貝爾實驗室的小伙伴們決定開發(fā)個程序來展示C語言,然后他們就造了個叫Unix的操作系統(tǒng)(紅紅火火恍恍惚惚)。

24Alan Kay

1980年,Alan Kay建立了一門叫做Smalltalk的面向?qū)ο蟮木幊陶Z言。這門語言里,什么都是對象,對象本身也是一個對象??上Т蠹叶紱]時間思考閑聊(small talk)的意義。

26Jean David Ichbiah

1983年,Jean Ichbiah發(fā)現(xiàn)Ada Lovelace的程序就從來沒真正運行過,于是決定以她名字創(chuàng)建一門語言。但她的語言也沒運行過。

28Bjarne Stroustrup

1983年,Bjarne Stroustrup從未來穿越過去,發(fā)現(xiàn)C語言沒給編譯留足時間,于是他把所有能夠想到的功能加進去了,并命名為C++。幾乎所有的編程者都在使用它,這樣他們就有理由在工作的時候擼貓片和看科學(xué)Sciences科普了。

1986年,Brac BoxTom love決定要創(chuàng)建一門基于Smalltalk、不可讀版本的C語言,并稱之為Objective C語言,但沒人看得懂這門語言的語法。

31Larry Wall

1987年,Larry Wall經(jīng)歷了一次宗教體驗,成為了一名傳教者,他傳播的教義就是Perl

三、1991年到2018年的編程語言

三是1991年至2018年,從Python,Ruby,PHPJava,JavaScript,直到Ruby on Rails為止。膠水語言時代,軟件架構(gòu)開始出現(xiàn)并逐步形成編程主流。

34Guido van Rossum

1991年,Guido van Rossum寫了本關(guān)于蛋蛋和火腿的食譜(Python之父)。

35Guido van Rossum

36Roberto Ierusalimschy

1993年,Roberto Ierusalimschy和他的朋友們覺得他們需要一門英國本地化的腳本語言,在本地化過程中出了個錯,使得本應(yīng)該從0開始的計數(shù)從1開始了,然后他們把這個叫做Lua。

37Rasmus Lerdorf

1994年,Rasmus Lerdorf為他個人主頁的CGI腳本弄了個模版引擎,并把這個文件發(fā)布在網(wǎng)上了。世界各國人民欽定這個文件哪哪都要用上,于是興奮炸裂的Rasmus又放了點額外的綁定數(shù)據(jù)庫上去,并稱之為PHP

39Yukihiro Matsumoto

1995年,Yukihiro Matsumoto不是很開心,還發(fā)現(xiàn)其它碼農(nóng)也不是很開心,所以他創(chuàng)建了Ruby語言讓大家開心開心。Ruby語言面世后,Matz挺開心,Ruby社區(qū)也挺開心,大家都很開心(*^__^*)。

40Mad Matz

41Brendan Eich

1995年,Brendan Eich花了個周末設(shè)計了門語言,希望能夠為世上所有的網(wǎng)頁瀏覽器賦能,最終也影響天網(wǎng)。他最開始去了網(wǎng)景,并稱自己設(shè)計的語言為LiveScript,但Java在代碼審查環(huán)節(jié)火了,于是他們決定用大括號才好,改名叫JavaScript。后來Java一團糟,于是他們覺得這語言跟Java沾親帶故會出事,所以又在標(biāo)準(zhǔn)化時候把它改名叫ECMAScript,但人們還是按習(xí)慣稱之為JavaScript。

43James Gosling

1996年,James Gosling創(chuàng)建了Java,第一個真正的過于詳細(xì)的、設(shè)計模式高于實用性的、面向?qū)ο蟮木幊陶Z言。這么一個非常有效的、管理員供應(yīng)商集裝箱供應(yīng)商服務(wù)管理者單件模式管理者供應(yīng)商模式就誕生了。

45Anders Hejlsberg

2001Anders Hejlsberg重建了Java,并稱之為C#,因為用C語言編程比Java要更酷。

大家都很愛這個Java新版本因為它一點也不像Java。

2003年,Martin Odersky創(chuàng)造Scala語言。

48David Heinemeier Hansson

2005年,David Hanselmeyer Hansen創(chuàng)建了個叫做Ruby on Rails的網(wǎng)頁框架,人們從此把紅寶石與鐵路聯(lián)系起來了。

49John Resig

2006年,John ResigJavaScript寫了個助手庫,所有人都覺得這也是門計算機語言,給許多從網(wǎng)上復(fù)制粘貼jQuery代碼的人們解決了就業(yè)問題。

50Ken Thompson

2009年,Ken ThompsonRob Pike打算也造個類似于C語言但有更安全的設(shè)備的語言,而且用金花鼠當(dāng)作吉祥物讓它更好推銷。他們把這門語言叫做Go語言,也開源了,支持社區(qū)的資金來源就是賣金花鼠的周邊護膝和頭盔。

2010年,Graydon Hoare也想造一門類似C語言的語言,并稱之為Rust。人們表示,所有的軟件都應(yīng)該現(xiàn)在立即馬上用Rust語言重寫一遍。但Graydon喜歡一閃一閃的亮晶晶而不是生銹的(rust)東西,所以去Apple開發(fā)Swift去了。

2012年,Anders Hjelsberg想在網(wǎng)頁瀏覽器里重寫C#,于是他設(shè)計了TypeScript,其實也是JavaScript的一種,但更像Java了。

2013年,Jeremy Ashkenas也想像Ruby開發(fā)者那么開心,所以他搞了個CoffeScript,也就是JavaScript的編譯,但看起來更像Ruby。然鵝,Jeremy并沒有像MatzRuby開發(fā)者那樣開心。

51Chris Lattner

2014年,Chris Lattner設(shè)計Swift的初衷是讓它別像Objective-C一樣,所以最后Swift看起來就像是Java了。

四、總結(jié)1950年匯編到2018Simula

在互聯(lián)互通日益增多的世界中,編程語言構(gòu)成了基礎(chǔ)。您是否知道由一位女性Ada Lovelace撰寫第一種編程語言已有近180多年歷史?現(xiàn)在的編程語言是一種正式語言,旨在將指令傳達給機器,特別是計算機。編程語言可用于創(chuàng)建控制機器行為的程序,并用于構(gòu)建Web應(yīng)用程序,計算機軟件或任何其他應(yīng)用程序。計算機編程使用戶能夠為特定算法編寫程序。第一批計算機代碼專門用于其應(yīng)用程序。在20世紀(jì)的前幾十年,數(shù)值計算基于十進制數(shù)。

第一種編程語言早于現(xiàn)代計算機。19世紀(jì)發(fā)現(xiàn)了可編程織機和播放器鋼琴卷軸,兩者都實現(xiàn)了領(lǐng)域特定語言的例子。從1951年到今年,共開發(fā)了256種編程語言,所有這些語言都帶來了新的功能。編程語言總是更新,并且總是如您在列表中看到的那樣增長。

The firstprogramming languages predate the modern computer. The 19th century saw theinvention of “programmable” looms and player piano scrolls, both of whichimplemented examples of domain-specific languages. 1951 to upto this year thereare Totally 256 Programming Languages are Developed and that all are comingwith the something new features. the programming languages are always updatedand always growing as you seen on the list.

編程語言本身并不是架構(gòu)的人工制品,但我覺得如果我不寫它的話,軟件架構(gòu)編年史會遺漏一些東西。因此,讓我們快速回顧一下編程語言的歷史,它的演變并檢查我們可以從中學(xué)到什么。我作為一個好奇心添加了一些日期,他們應(yīng)該被視為粗略的估計,重要的是進化序列和他們試圖解決的問題。

Programminglanguages themselves are not an artefact of architecture, but I would feel thatThe Chronicles of Software Architecture would be missing something if Iwouldn’t write about it. So, let’s make a quick review of programming languageshistory, its evolution and check what we can learn from it. I’ve added somedates to the post just as a curiosity, they should be seen as roughestimates, the important is the evolution sequence and the problems they weretrying to solve.

20世紀(jì)50年代——非結(jié)構(gòu)化編程

匯編?1951

軟件開發(fā)是一項非常模糊的活動,僅在世界上的幾個地方進行。匯編是當(dāng)時的熱門語言,它使用非常低級的操作,如“add”,“sub”,“goto”和直接操作的內(nèi)存地址。構(gòu)建一個簡單的應(yīng)用程序既緩慢又困難。要創(chuàng)建一個簡單的IF語句,我們需要很少的代碼行,對于一個循環(huán),它需要多行...后來分組和重用代碼片段的可能性,所以編碼風(fēng)格非常線性,代碼重用是僅限于文件內(nèi)或文件之間的復(fù)制粘貼代碼。

1950s –Non-structured Programming

Assembly ~1951

SoftwareDevelopment was a very obscure activity, performed in only a few places in theworld. Assembly was the hot language back then, it used very low-leveloperations like “add”, “sub”, “goto” and manipulated memory addresses directly.It was slow and difficult to build a simple application. To create asimple IF statement we needed few lines of code and for a loop, it would takemore than a few lines… The possibility of grouping and reusing pieces of codecame later on, so the coding style was very linear and code reuse was limitedto copy-pasting code within a file or between files.

20世紀(jì)60年代——結(jié)構(gòu)化編程

Algol~1958

結(jié)構(gòu)化編程出現(xiàn)了,引入了代碼塊,控制結(jié)構(gòu)的構(gòu)造(if / then /else,case,for,while,do,...)和子例程。然后,我們可以創(chuàng)建更有趣的代碼流,更重要的是,我們可以將代碼指令分組并重用它,盡管有一些限制,例如子例程總是作用于相同的全局變量。正是在這個時候,可重用性的第一個想法開始實踐。

1960s –Structured Programming

Algol ~1958

Structuredprogramming came up, introducing code blocks, constructs for controlstructures (if/then/else, case, for, while, do, …) and sub-routines. We could,then, create more interesting code flows and, more important, we could groupcode instructions and reuse it, although with some limitations, like thesub-routines always acting on the same global variables. It was at this timethat the first ideas of reusability came to practice.

20世紀(jì)70年代——程序和功能編程

Pascal~1970,C~1972

程序和功能代碼在20世紀(jì)70年代開始生動。此時我們終于:

·程序:一組不返回數(shù)據(jù)的指令;

·功能:一組返回數(shù)據(jù)的指令;

·數(shù)據(jù)結(jié)構(gòu):記錄,類似于關(guān)聯(lián)數(shù)組;

·模塊:可以導(dǎo)入其他代碼文件的代碼文件。

20世紀(jì)70年代,意大利面條代碼一詞也被創(chuàng)造出來,繼Edsger W.Dijkstra1968年致計算機械協(xié)會通訊(CACM)后,題為“Go ToStatement Considered Harmful”

20世紀(jì)70年代后期,面向事件的編程表面和TrygveReenskaug的第一個想法寫了他關(guān)于MVC(使用事件)的論文。

1970s – Procedural& Functional Programming

Pascal ~1970,C ~1972

Procedural andfunctional code came to life during the 1970s. At this point wefinally had:

·    Procedures: Set ofinstructions that don’t return data;

·    Functions: Set ofinstructions that do return data;

·    Data structures: Records,similar to an associative array;

·    Modules: Code filesthat could be imported into other code files.

During the1970s was also when the term “Spaghetti code” got coined, following Edsger W.Dijkstra letter to the Communications of the Association for ComputingMachinery (CACM) in 1968, titled “Go To Statement Considered Harmful“.

It was duringthe late 1970s that the first ideas of Event Oriented Programmingsurfaces and Trygve Reenskaug writes his paper about MVC (which used events).

因此,通過這些改進,我們具有更好的可重用性,因為子程序(過程和函數(shù))可以使用不同的數(shù)據(jù)執(zhí)行相同的邏輯。我們還可以通過將相關(guān)數(shù)據(jù)分組到復(fù)雜數(shù)據(jù)結(jié)構(gòu)中來對域概念進行建模。最后,我們給出了解耦和模塊化的第一步,我們可以在其他代碼文件和事件中創(chuàng)建可重用的代碼,以將客戶端代碼與正在執(zhí)行的邏輯分離。

Thus, withthese improvements, we had better reusability, as subroutines(procedures and functions) could perform the same logic with different data. Wecould also model domain concepts by grouping related data into complexdata structures. And, finally, we gave the first steps in decoupling andmodularity where we could create code reusable in other code files andevents to decouple the client code from the logic being executed.

20世紀(jì)80年代——面向?qū)ο缶幊?/span>

Simula~1965Smalltalk-71~1971,C ++?1980Erlang~1986,Perl~1987,

Phyton~1991,Ruby~1993,DelphiJava,JavascriptPHP~1995

OOP的理論和思想早在20世紀(jì)60年代就已開始,并在20世紀(jì)60年代首次實施:Simula

然而,正是在20世紀(jì)80年代,當(dāng)前編程范式的使用變得普遍:面向?qū)ο缶幊?,具有可見性級別,方法(消息),對象,類以及稍后的包。這與增加封裝和模塊化相同:

·可見性級別允許我們控制哪些代碼可以訪問特定的數(shù)據(jù)集;

·類允許我們定義/建模域概念;

·對象允許我們擁有相同域概念的不同實例;

·包允許我們將表示域或功能概念的類分組,并一起工作以執(zhí)行某些任務(wù);

·方法,在功能上表示過程和函數(shù),但在概念上應(yīng)該被視為可以發(fā)布到特定類型對象的消息(或更好的命令)。

1980s – ObjectOriented Programming

Simula ~1965,Smalltalk-71 ~1971, C++ ~1980, Erlang ~1986, Perl ~1987,

Phyton ~1991,Ruby ~1993, Delphi, Java, Javascript, PHP ~1995

Theory and thoughts on OOP start as early as the 1960s, and was implementedfor the first time during the 1960s: Simula.

Nevertheless,it was during the 1980s that the usage of the current programming paradigmbecame generalized: Object Oriented Programming, with visibility levels,methods (messages), objects, classes, and later on packages. This is the sameas saying increased encapsulation and modularity:

·    Visibility levels allow us tocontrol what code can access a specific set of data;

·    Classes allow us todefine/model domain concepts;

·    Objects allow us tohave different instances of the same domain concepts;

·    Packages allow us togroup  classes that together represent a domain or functional conceptand work together to perform some task;

·    Methods, whichfunctionally represent procedures and functions, but conceptually should beseen as messages (or better yet, commands) that can be issued to a specifictype of objects.

20世紀(jì)90年代——主題和面向方面的編程

20世紀(jì)90年代,面向主題的編程和面向方面的編程被曝光。

面向主題的編程根據(jù)誰它來調(diào)用對象的不同表示。例如,當(dāng)一個人看到一棵樹時可能看到木頭,一只鳥可能會看到一定數(shù)量的食物和住所。將其轉(zhuǎn)換為編程,這意味著對象屬性和行為可以不同,具體取決于誰向?qū)ο蟀l(fā)送消息(誰觸發(fā)對象上的方法)

面向方面編程試圖通過在編譯時注入額外的代碼來完全將交叉問題與實際業(yè)務(wù)邏輯分開。一方面是,例如,方法名稱。例如,一個跨領(lǐng)域的問題是伐木。使用AOP,我們可以簡單地配置系統(tǒng)以注入執(zhí)行登錄到符合特定模式的所有方法的代碼,例如,記錄對名稱以'find'開頭的方法的所有調(diào)用(TYPO3是使用AOPCMS的示例)

超越OOP

OOP建立之后,我們的重點一直是調(diào)整自己的網(wǎng)絡(luò)編程,發(fā)展現(xiàn)有語言,創(chuàng)建專門用于Web開發(fā)的新語言,開發(fā)框架,調(diào)整工具和架構(gòu),以滿足當(dāng)今大量的請求和數(shù)據(jù)。

有一些嘗試發(fā)展編程語言,如面向主題編程(對象行為不同,取決于主題觸發(fā)行為),或面向方面編程(編譯時代碼注入),但實質(zhì)上是編程語言范例由于我們在大多數(shù)情況下仍然使用OOP,但是功能語言似乎最近已經(jīng)獲得了一些采用(可能是炒作?)。

1990s –Subject & Aspect Oriented Programming

During the1990s Subject Oriented Programming and Aspect Oriented Programming came tolight.

SubjectOriented Programming calls for the different representations of objects,according to who is “looking” at it. For example, while a human mightsee wood when he looks at a tree, a bird might see an amount of food andshelter.  Translating this to a programming, it means that objectproperties and behaviour can be different, depending on who sends a message tothe object (who triggers a method on an object).

AspectOriented Programming tries to completely separate cross-cutting concerns fromthe actual business logic by injecting the extra code at “compile” time. An aspectis, for example, a method name. A cross-cutting concern is, for example,logging. Using AOP, we can simply configure the system to inject code thatperforms logging into all methods that comply to a specific pattern, forexample, “log all calls to methods whose name starts with ‘find’“. (TYPO3 is an exampleof a CMS using AOP)

Beyond OOP

After theestablishment of OOP, the big focus has been in adjusting ourselves toprogramming for the web, evolving existing languages, creating newlanguages specialised for web development, developing frameworks,adjusting the tools and architectures for the massive amount of requests anddata of today.

There weresome attempts to evolve the Programming Languages, like Subject-OrientedProgramming (objects behavior is different, depending on the subject firing thebehavior), or Aspect-Oriented Programming (code injection at compile time), butin essence the programming language paradigm didn’t change much as we still useOOP for most cases, although functional languages seem to have been gainingsome adoption as of late (maybe a hype?).

結(jié)論

我想說的是,在軟件開發(fā)歷史的前幾十年,編程語言的發(fā)展是為了提供可重用性,同時也為變革準(zhǔn)備軟件(無論是改變功能,重構(gòu)還是完全交換一段代碼) ),它們朝著模塊化(低耦合)封裝(高內(nèi)聚)的方向發(fā)展。正如我們將在下一篇文章中看到的那樣,架構(gòu)繼續(xù)這種演變,盡管在更高的抽象層次上。正如我們將在下一篇文章中看到的那樣,架構(gòu)繼續(xù)這種演變,盡管在更高的抽象層次上。

Conclusion

The point I amtrying to make is that in the first decades of software development history,programming languages evolved in order to provide for reusability, but also toprepare software for change (be it changing the functionality, refactoring orswapping a section of code completely), they evolved in the direction of Modularity (lowcoupling) and Encapsulation (high cohesion). As we will see inmy next posts, Architecture continues this evolution, although at a higherlevel of abstraction. As we will see in my next posts, Architecture continuesthis evolution, although at a higher level of abstraction.

來源

1979——Trygve Reenskaug——MVC

1993——Alan C. Kay——Smalltalk的早期歷史

1993——威廉哈里森,哈羅德奧索爾——面向主題的編程:對純粹物體的批判

1997——Gregor Kiczales,John Lamping,AnuragMendhekar,Chris Maeda,Cristina Videira Lopes,Jean-Marc Loingtier,John Irwin——面向方面編程

2005——David R. Tribble——Go To Statement認(rèn)為有害:回顧

2017 *——維基百科——編程范式

2018*——維基百科——Simula

Sources

1979 – TrygveReenskaug – MVC

1993– Alan C. Kay – TheEarly History of Smalltalk

1993 – WilliamHarrison, Harold Ossher – Subject-Oriented Programming: A Critique ofPure Objects

1997 – GregorKiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes,Jean-Marc Loingtier, John Irwin – Aspect Oriented Programming

2005 – DavidR. Tribble – GoTo Statement Considered Harmful: A Retrospective

2017* –Wikipedia – ProgrammingParadigm

2018* – Wikipedia – Simula

編程語言是一組用來定義計算機程序的語法規(guī)則。它是一種被標(biāo)準(zhǔn)化的交流語言,用來向計算機發(fā)出指令。一種計算機語言讓程序員能夠準(zhǔn)確地定義計算機所需要使用的數(shù)據(jù),并精確地定義在不同情況下所應(yīng)當(dāng)采取的行動。盡管人們多次試圖創(chuàng)造一種通用的程序設(shè)計語言,卻沒有一次嘗試是成功的。那么多種不同的編程語言,因為設(shè)計程序語言的初衷不同、對語言學(xué)習(xí)曲線的追求不同、不同程序之間的運行成本差異等而無法統(tǒng)一。如果追求極致簡化的通用編程語言,則必須跳出來。

 (注:材料來自網(wǎng)文[1-16],相應(yīng)圖文版權(quán)歸原作者。)


參考文獻(2780)

[1]. From Wikipedia, the free encyclopedia. History of programminglanguages. [EB/OL], wikipedia.https://en./wiki/History_of_programming_languages, 22 December2018, at 01:50 (UTC), visiting data: 2019-01-06.

[2]. shared by Neostrategos. The History ofProgramming Languages. [EB/OL],  > infographic > Computers,https:///community/infographic/computers/history-programming-languages,on Apr 17, 2013, visiting data: 2019-01-06.

[3]. 可訪問但404. 以上圖片上的文字內(nèi)容來自這篇文章[1]。[EB/OL], soimort, https://www./posts/160/

[4]. 可訪問但404. 英文原文:James Iry’shistory of programming languages[2]. [EB/OL], wordpress, http://thequickword./2014/02/16/james-irys-history-of-programming-languages-illustrated-with-pictures-and-large-fonts/

[5]. via:http://www./history-of-programming-languages-illustrated-with-pictures-and-large-fonts/

[6]. medium. a brief totally accurate history ofprogramming languages. [EB/OL], medium,https:///commitlog/a-brief-totally-accurate-history-of-programming-languages-cd93ec806124,2019-01-01, visiting data: 2019-01-06.

[7]. Infographics · Programming by Harshil Barot.Homepage ? Infographics ? History of Programming Languages Must Know[Infographic]. History of Programming Languages Must Know [Infographic].[EB/OL], justwebworld,https://www./history-programming-languages-infographic/,September 3, 2017, visiting data: 2019-01-07.

[8]. @herbertograca. Programming Languageevolution. [EB/OL], herbertograca. https:///2017/07/10/programming-language-evolution/,July 10, 2017, visiting data: 2019-01-07.

[9]. jack-zhu. 作為程序員必須知道的編程語言編年史.[EB/OL], csdn, https://blog.csdn.net/zhu_xun/article/details/17347289,2013-12-16, visiting data: 2019-01-07.

[10]. 惡搞版的大話編年史. 圖文大話編程語言史. [EB/OL],linux, https:///article-2659-1.html, 2014-03-10 21:34, visiting data:2019-01-07.

[11]. 阿里云. 編年史-簡介. [EB/OL], aliyun,https://www.aliyun.com/zixun/aggregation/20312.html, visiting data: 2019-01-05.

[12]. 百家號最近更新:2019-01-07 16:11,編譯:狗小白、云舟,大數(shù)據(jù)文摘翻譯2019/01/05 18:45. 編程語言的別樣編年史.[EB/OL], jiqizhixin, https://www./articles/2019-01-07-16,2019-01-05, visiting data: 2019-01-07.

[13]. iteye_8644. 鮮為人知的編程語言的發(fā)展史--編程語言1800年至2018年人事物編年史. [EB/OL], csdn, https://blog.csdn.net/iteye_8644/article/details/82102129,2011-08-04, visiting data: 2019-01-07.

[14]. 編譯:狗小白、云舟, 大數(shù)據(jù)文摘. 編程語言的別樣編年史. [EB/OL], baijiahao,https://baijiahao.baidu.com/s?id=1621988430705465609, 2019-01-07, visitingdata: 2019-01-07.

[15].herbertograca. 1.軟件架構(gòu)編年史().[EB/OL], herbertograca,https:///2017/07/03/the-software-architecture-chronicles/,2017-07-03, visiting data: 2019-01-07.

[16]. qinyu. 1.軟件架構(gòu)編年史(). [EB/OL],https://www.jianshu.com/p/b477b2cc6cfa, 2018.08.27, visiting data: 2019-01-07.

簡介:編程語言1800年至2018年人事物編年史。作者:秦隴紀(jì)等。素材wikipedia/medium,/soimort/wordpress/vaikan/aliyun/csdn/baijiahaohu/知識簡化/數(shù)據(jù)簡化社區(qū)NC非商業(yè)授權(quán)/秦隴紀(jì)微信群聊公眾號,參考文獻附引文出處。下載:本文185225PDF資料,公號輸入欄發(fā)送關(guān)鍵字編程語言史或文末閱讀原文鏈接;關(guān)注數(shù)據(jù)簡化DataSimp分類菜單版權(quán):科普文章僅供學(xué)習(xí)研究,公開資料?版權(quán)歸原作者,請勿用于商業(yè)非法目的。秦隴紀(jì)2010數(shù)據(jù)簡化DataSimp匯譯編,投稿合作、轉(zhuǎn)載授權(quán)/侵權(quán)、原文引文錯誤等請聯(lián)系DataSimp@126.com。轉(zhuǎn)載:請寫明并保留作者、出處、時間等信息:如此文出自:?數(shù)據(jù)簡化DataSimp,作者:秦隴紀(jì),時間:20190107Mon等字樣?秦隴紀(jì)2010-2019匯譯編。數(shù)據(jù)簡化社區(qū)保留相應(yīng)版權(quán),若有引文/譯注/出處不明或遺漏/版權(quán)問題等,請給公號留言或郵件咨詢QinDragon2010@qq.com。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日韩欧美91在线视频| 国产精品免费自拍视频| 亚洲天堂有码中文字幕视频| 亚洲一区二区欧美激情| 国产精品久久熟女吞精| 免费一级欧美大片免费看| 中国美女偷拍福利视频| 精品欧美日韩一区二区三区| 久久91精品国产亚洲| 日本少妇中文字幕不卡视频| 久草国产精品一区二区| 亚洲午夜福利不卡片在线| 好吊日成人免费视频公开| 色综合视频一区二区观看| 亚洲av秘片一区二区三区| 亚洲国产精品无遮挡羞羞| 在线观看视频日韩成人| 开心激情网 激情五月天| av在线免费观看在线免费观看| 日本高清视频在线观看不卡| 日韩美成人免费在线视频| 色涩一区二区三区四区| 日韩欧美91在线视频| 中文字幕在线区中文色| 亚洲精品av少妇在线观看| 国产传媒免费观看视频| 国产色偷丝袜麻豆亚洲| 亚洲视频一区自拍偷拍另类| 欧洲亚洲精品自拍偷拍| 中文字字幕在线中文乱码二区| 欧洲日本亚洲一区二区| 搡老熟女老女人一区二区| 亚洲精品中文字幕无限乱码| 日韩国产传媒在线精品| 免费观看在线午夜视频| 欧美日韩国产欧美日韩| 亚洲国产精品一区二区毛片| 四十女人口红哪个色好看| 日本黄色高清视频久久| 亚洲熟女少妇精品一区二区三区| 国产免费成人激情视频|