分享

编程语言1800年至2018年人事物编年史(14k字,附PDF发“编程语言史”下载)

 超人的归属 2019-09-08

编程语言1800年至2018年人事物编年史

|秦陇纪,数据简化DataSimp©20190107Mon-20190416Tue

编年史指一个整体对纪年的统一的体裁,是一种形象化的历史记录方式。特点是以时间为经、以事件为纬来记载历史事件。有利于读者按照事件发展的先后顺序了解历史事件,便于了解历史事件间的互相联系;但是不便于集中描写人物、事件,一个人物、事件分散在不同的年代,读者不易了解其全貌。自公元9世纪下半叶后,编年史与年代记之间的差别变得模糊不清。

1:编程语言简史Medium网文配图

编程语言的历史早于真正意义的计算机的出现。19世纪就有可编程的织布机和钢琴弹奏装置出现,它们都是领域特定语言(DSL)的样例。有一些常用的或实用的编程语言,比如:

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

编写程序代码用到一门门计算机语言,各种语言搭建了人与计算机沟通的桥梁。通过编写代码,人类可以用各种指令命令计算机执行算术、音像媒体、开发网页、开发软件、搭建游戏... ... 编程语言是前辈们发挥聪明才智创造出来的,前辈们的创造过程虽然充满了有趣与巧合,但是并不神秘。本文综合著名媒体Medium网文https:///commitlog/a-brief-totally-accurate-history-of-programming-languages-cd93ec806124Neostrategos2013417日分享的博文《编程语言的历史》Rackspace公司发布的编程语言演变的数据图表等相关报道,按年份综合梳理编程语言发展历史。描述时加入了很多个人情感和社会流行元素,有调侃语句,但配图基本是靠谱的。

1951年至今,人类一共发明了256种编程语言,每一种语言的出现都带有某些新特征。编程语言不断的在革新,很快就会有超出这个清单的新编程语言出现。从1800年算起总体上编程语言分三阶段:一是1800年到1950年,从最早1800Jacquard写的打孔卡指令开始,到汇编语言;二是1951年到1990年,从Fortran演变,贯穿了CobolBasicCPascalC++Perl等早期高级语言,以及3个曾相当具有影响力的语言:LispAlgol60Smalltalk;三是1991年至2018年,从PythonRubyPHPJavaJavaScript,直到Ruby on Rails为止。两大通用高级语言和三大胶水语言时代,软件架构开始出现并逐步形成当下编程主流。

一、最早1800年到1950年的编程语言

2Joseph Marie Jacquard

1800年,Joseph Marie Jacquard让织布机学会了读穿孔卡片,造出了第一台重度使用多线程处理单元的机器,并打印出了Hello world字样。预见到天网(Skynet)诞生的织布工们激烈地反对该项发明。

31801Jacquard写的打孔卡指令

4Ada Lovelace

1842年,Ada Lovelace(英国诗人拜伦之女)厌倦了贵族生活,于是在记事本上写写画画,而记事本上的这些内容被后世称作第一个发布的计算机程序。可惜当年没有电脑,真是不巧。

5Ada Lovelace写了世界上第一个程序

6Alan Turing

1936年,Alan Turing啥都发明了,但英国法庭看他不顺眼,还阉了他。后来女王免了他的罪名,虽然当时他已经死去几百年了。

7Alan Turing发明了一切程序语言的最终形态

8Alonzo Church

1936年,Alonzo ChurchTuring一样啥都发明了,但他生活在太平洋彼岸(也不是基佬)所以没被女王人道主义。

9Alonzo Church同时发明了一切语言的最终形态,还有λ

1940年代,实现Alonzo ChurchTuring发明的低进制机器(详见科学Sciences网文)成批出现。

二、1951年到1990年的编程语言

二是1951年到1990年,从Fortran演变,贯穿了CobolBasicCPascalC++Perl等早期高级语言,以及3个曾相当具有影响力的语言:LispAlgol60Smalltalk

11John Backus

1957年,John Backus发明Fortran语言,也是真正的编程者使用的第一种计算机语言。

1958年,John McCarthy发明Lisp语言,引入递归。

13John McCarthy

14Grace Hopper

1959年,Grace Hopper发明了第一个面向企业、可用的编程语言,命名为通用的业务导向语言,简称为COBOL

16John Kemeny

1964年,John KemenyThomas Kurtz都觉得现有计算机语言的编程太难了,人们需要回归基础(basic),因而将他们发明的计算机语言称之为BASIC。进一步降低了编程门槛。

17John KemenyThomasKurtz

18Niklaus Wirth

1970年,Niklaus Wirth创造了Pascal和几门其它语言(他就是这么爱创造语言),他还创造了沃斯定律。相形之下摩尔定律就过时了,因为软件开发者基于摩尔定律写的软件太臃杂了,连主机都带不动。后来Electron.js的发明和基于它的抽象概念也证明了这一点。

19Guy SteeleGeraldSussman

20Dennis Ritchie

1972年,Dennis Ritchie在贝尔实验室里对工作产生了厌倦,于是决定搞个带大括号的C语言,并取得了巨大的成功。之后,他在语言中加入分段错误和其它一些对开发者友好的功能来增强C语言的生产力。干完这些工作后,离下班还有几小时,所以他和贝尔实验室的小伙伴们决定开发个程序来展示C语言,然后他们就造了个叫Unix的操作系统(红红火火恍恍惚惚)

24Alan Kay

1980年,Alan Kay建立了一门叫做Smalltalk的面向对象的编程语言。这门语言里,什么都是对象,对象本身也是一个对象。可惜大家都没时间思考闲聊(small talk)的意义。

26Jean David Ichbiah

1983年,Jean Ichbiah发现Ada Lovelace的程序就从来没真正运行过,于是决定以她名字创建一门语言。但她的语言也没运行过。

28Bjarne Stroustrup

1983年,Bjarne Stroustrup从未来穿越过去,发现C语言没给编译留足时间,于是他把所有能够想到的功能加进去了,并命名为C++。几乎所有的编程者都在使用它,这样他们就有理由在工作的时候撸猫片和看科学Sciences科普了。

1986年,Brac BoxTom love决定要创建一门基于Smalltalk、不可读版本的C语言,并称之为Objective C语言,但没人看得懂这门语言的语法。

31Larry Wall

1987年,Larry Wall经历了一次宗教体验,成为了一名传教者,他传播的教义就是Perl

三、1991年到2018年的编程语言

三是1991年至2018年,从PythonRubyPHPJavaJavaScript,直到Ruby on Rails为止。胶水语言时代,软件架构开始出现并逐步形成编程主流。

34Guido van Rossum

1991年,Guido van Rossum写了本关于蛋蛋和火腿的食谱(Python之父)

35Guido van Rossum

36Roberto Ierusalimschy

1993年,Roberto Ierusalimschy和他的朋友们觉得他们需要一门英国本地化的脚本语言,在本地化过程中出了个错,使得本应该从0开始的计数从1开始了,然后他们把这个叫做Lua

37Rasmus Lerdorf

1994年,Rasmus Lerdorf为他个人主页的CGI脚本弄了个模版引擎,并把这个文件发布在网上了。世界各国人民钦定这个文件哪哪都要用上,于是兴奋炸裂的Rasmus又放了点额外的绑定数据库上去,并称之为PHP

39Yukihiro Matsumoto

1995年,Yukihiro Matsumoto不是很开心,还发现其它码农也不是很开心,所以他创建了Ruby语言让大家开心开心。Ruby语言面世后,Matz挺开心,Ruby社区也挺开心,大家都很开心(*^__^*)

40Mad Matz

41Brendan Eich

1995年,Brendan Eich花了个周末设计了门语言,希望能够为世上所有的网页浏览器赋能,最终也影响天网。他最开始去了网景,并称自己设计的语言为LiveScript,但Java在代码审查环节火了,于是他们决定用大括号才好,改名叫JavaScript。后来Java一团糟,于是他们觉得这语言跟Java沾亲带故会出事,所以又在标准化时候把它改名叫ECMAScript,但人们还是按习惯称之为JavaScript

43James Gosling

1996年,James Gosling创建了Java,第一个真正的过于详细的、设计模式高于实用性的、面向对象的编程语言。这么一个非常有效的、管理员供应商集装箱供应商服务管理者单件模式管理者供应商模式就诞生了。

45Anders Hejlsberg

2001Anders Hejlsberg重建了Java,并称之为C#,因为用C语言编程比Java要更酷。

大家都很爱这个Java新版本因为它一点也不像Java

2003年,Martin Odersky创造Scala语言。

48David Heinemeier Hansson

2005年,David Hanselmeyer Hansen创建了个叫做Ruby on Rails的网页框架,人们从此把红宝石与铁路联系起来了。

49John Resig

2006年,John ResigJavaScript写了个助手库,所有人都觉得这也是门计算机语言,给许多从网上复制粘贴jQuery代码的人们解决了就业问题。

50Ken Thompson

2009年,Ken ThompsonRob Pike打算也造个类似于C语言但有更安全的设备的语言,而且用金花鼠当作吉祥物让它更好推销。他们把这门语言叫做Go语言,也开源了,支持社区的资金来源就是卖金花鼠的周边护膝和头盔。

2010年,Graydon Hoare也想造一门类似C语言的语言,并称之为Rust。人们表示,所有的软件都应该现在立即马上用Rust语言重写一遍。但Graydon喜欢一闪一闪的亮晶晶而不是生锈的(rust)东西,所以去Apple开发Swift去了。

2012年,Anders Hjelsberg想在网页浏览器里重写C#,于是他设计了TypeScript,其实也是JavaScript的一种,但更像Java了。

2013年,Jeremy Ashkenas也想像Ruby开发者那么开心,所以他搞了个CoffeScript,也就是JavaScript的编译,但看起来更像Ruby。然鹅,Jeremy并没有像MatzRuby开发者那样开心。

51Chris Lattner

2014年,Chris Lattner设计Swift的初衷是让它别像Objective-C一样,所以最后Swift看起来就像是Java了。

四、总结1950年汇编到2018Simula

在互联互通日益增多的世界中,编程语言构成了基础。您是否知道由一位女性Ada Lovelace撰写第一种编程语言已有近180多年历史?现在的编程语言是一种正式语言,旨在将指令传达给机器,特别是计算机。编程语言可用于创建控制机器行为的程序,并用于构建Web应用程序,计算机软件或任何其他应用程序。计算机编程使用户能够为特定算法编写程序。第一批计算机代码专门用于其应用程序。在20世纪的前几十年,数值计算基于十进制数。

第一种编程语言早于现代计算机。19世纪发现了可编程织机和播放器钢琴卷轴,两者都实现了领域特定语言的例子。从1951年到今年,共开发了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.

编程语言本身并不是架构的人工制品,但我觉得如果我不写它的话,软件架构编年史会遗漏一些东西。因此,让我们快速回顾一下编程语言的历史,它的演变并检查我们可以从中学到什么。我作为一个好奇心添加了一些日期,他们应该被视为粗略的估计,重要的是进化序列和他们试图解决的问题。

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世纪50年代——非结构化编程

汇编1951

软件开发是一项非常模糊的活动,仅在世界上的几个地方进行。汇编是当时的热门语言,它使用非常低级的操作,如“add”“sub”“goto”和直接操作的内存地址。构建一个简单的应用程序既缓慢又困难。要创建一个简单的IF语句,我们需要很少的代码行,对于一个循环,它需要多行...后来分组和重用代码片段的可能性,所以编码风格非常线性,代码重用是仅限于文件内或文件之间的复制粘贴代码。

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世纪60年代——结构化编程

Algol~1958

结构化编程出现了,引入了代码块,控制结构的构造(if / then /elsecaseforwhiledo...)和子例程。然后,我们可以创建更有趣的代码流,更重要的是,我们可以将代码指令分组并重用它,尽管有一些限制,例如子例程总是作用于相同的全局变量。正是在这个时候,可重用性的第一个想法开始实践。

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世纪70年代——程序和功能编程

Pascal~1970C~1972

程序和功能代码在20世纪70年代开始生动。此时我们终于:

·程序:一组不返回数据的指令;

·功能:一组返回数据的指令;

·数据结构:记录,类似于关联数组;

·模块:可以导入其他代码文件的代码文件。

20世纪70年代,意大利面条代码一词也被创造出来,继Edsger W.Dijkstra1968年致计算机械协会通讯(CACM)后,题为“Go ToStatement Considered Harmful”

20世纪70年代后期,面向事件的编程表面和TrygveReenskaug的第一个想法写了他关于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).

因此,通过这些改进,我们具有更好的可重用性,因为子程序(过程和函数)可以使用不同的数据执行相同的逻辑。我们还可以通过将相关数据分组到复杂数据结构中来对域概念进行建模。最后,我们给出了解耦和模块化的第一步,我们可以在其他代码文件和事件中创建可重用的代码,以将客户端代码与正在执行的逻辑分离。

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世纪80年代——面向对象编程

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

Phyton~1991Ruby~1993DelphiJavaJavascriptPHP~1995

OOP的理论和思想早在20世纪60年代就已开始,并在20世纪60年代首次实施:Simula

然而,正是在20世纪80年代,当前编程范式的使用变得普遍:面向对象编程,具有可见性级别,方法(消息),对象,类以及稍后的包。这与增加封装和模块化相同:

·可见性级别允许我们控制哪些代码可以访问特定的数据集;

·类允许我们定义/建模域概念;

·对象允许我们拥有相同域概念的不同实例;

·包允许我们将表示域或功能概念的类分组,并一起工作以执行某些任务;

·方法,在功能上表示过程和函数,但在概念上应该被视为可以发布到特定类型对象的消息(或更好的命令)

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世纪90年代——主题和面向方面的编程

20世纪90年代,面向主题的编程和面向方面的编程被曝光。

面向主题的编程根据谁它来调用对象的不同表示。例如,当一个人看到一棵树时可能看到木头,一只鸟可能会看到一定数量的食物和住所。将其转换为编程,这意味着对象属性和行为可以不同,具体取决于谁向对象发送消息(谁触发对象上的方法)

面向方面编程试图通过在编译时注入额外的代码来完全将交叉问题与实际业务逻辑分开。一方面是,例如,方法名称。例如,一个跨领域的问题是伐木。使用AOP,我们可以简单地配置系统以注入执行登录到符合特定模式的所有方法的代码,例如,记录对名称以'find'开头的方法的所有调用(TYPO3是使用AOPCMS的示例)

超越OOP

OOP建立之后,我们的重点一直是调整自己的网络编程,发展现有语言,创建专门用于Web开发的新语言,开发框架,调整工具和架构,以满足当今大量的请求和数据。

有一些尝试发展编程语言,如面向主题编程(对象行为不同,取决于主题触发行为),或面向方面编程(编译时代码注入),但实质上是编程语言范例由于我们在大多数情况下仍然使用OOP,但是功能语言似乎最近已经获得了一些采用(可能是炒作?)

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?).

结论

我想说的是,在软件开发历史的前几十年,编程语言的发展是为了提供可重用性,同时也为变革准备软件(无论是改变功能,重构还是完全交换一段代码) ),它们朝着模块化(低耦合)封装(高内聚)的方向发展。正如我们将在下一篇文章中看到的那样,架构继续这种演变,尽管在更高的抽象层次上。正如我们将在下一篇文章中看到的那样,架构继续这种演变,尽管在更高的抽象层次上。

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 KiczalesJohn LampingAnuragMendhekarChris MaedaCristina Videira LopesJean-Marc LoingtierJohn Irwin——面向方面编程

2005——David R. Tribble——Go To Statement认为有害:回顾

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

编程语言是一组用来定义计算机程序的语法规则。它是一种被标准化的交流语言,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。尽管人们多次试图创造一种通用的程序设计语言,却没有一次尝试是成功的。那么多种不同的编程语言,因为设计程序语言的初衷不同、对语言学习曲线的追求不同、不同程序之间的运行成本差异等而无法统一。如果追求极致简化的通用编程语言,则必须跳出来。

 (注:材料来自网文[1-16],相应图文版权归原作者。)


参考文献(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. 以上图片上的文字内容来自这篇文章[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,编译:狗小白、云舟,大数据文摘翻译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. 鲜为人知的编程语言的发展史--编程语言1800年至2018年人事物编年史. [EB/OL], csdn, https://blog.csdn.net/iteye_8644/article/details/82102129,2011-08-04, visiting data: 2019-01-07.

[14]. 编译:狗小白、云舟, 大数据文摘. 编程语言的别样编年史. [EB/OL], baijiahao,https://baijiahao.baidu.com/s?id=1621988430705465609, 2019-01-07, visitingdata: 2019-01-07.

[15].herbertograca. 1.软件架构编年史().[EB/OL], herbertograca,https:///2017/07/03/the-software-architecture-chronicles/,2017-07-03, visiting data: 2019-01-07.

[16]. qinyu. 1.软件架构编年史(). [EB/OL],https://www.jianshu.com/p/b477b2cc6cfa, 2018.08.27, visiting data: 2019-01-07.

简介:编程语言1800年至2018年人事物编年史。作者:秦陇纪等。素材wikipedia/medium,/soimort/wordpress/vaikan/aliyun/csdn/baijiahaohu/知识简化/数据简化社区NC非商业授权/秦陇纪微信群聊公众号,参考文献附引文出处。下载:本文185225PDF资料,公号输入栏发送关键字编程语言史或文末阅读原文链接;关注数据简化DataSimp分类菜单版权:科普文章仅供学习研究,公开资料©版权归原作者,请勿用于商业非法目的。秦陇纪2010数据简化DataSimp汇译编,投稿合作、转载授权/侵权、原文引文错误等请联系DataSimp@126.com转载:请写明并保留作者、出处、时间等信息:如此文出自:©数据简化DataSimp,作者:秦陇纪,时间:20190107Mon等字样©秦陇纪2010-2019汇译编。数据简化社区保留相应版权,若有引文/译注/出处不明或遗漏/版权问题等,请给公号留言或邮件咨询QinDragon2010@qq.com

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多