编程语言的“别样”编年史

全世界只有3.14 % 的人关注了

数据与算法之美


640?wx_fmt=png


代码是一门语言,这门语言搭建了人与计算机沟通的桥梁。通过编写代码,人类可以“命令”计算机开发网页、开发软件、搭建游戏... ... 


这门语言并不是上帝的发明,它是前辈们发挥聪明才智创造出来的,前辈们的创造过程虽然充满了有趣与巧合,但是并不神秘!本文就从1980年开始,带你一览编程语言发展的“别样”历史。


640?wx_fmt=jpeg

1800年,Joseph Marie Jacquard让织布机学会了读穿孔卡片,造出了第一台重度使用多线程处理单元的机器。


预见到天网(Skynet)诞生的织布工们激烈地反对该项发明。


640?wx_fmt=jpeg

Ada Lovelace


1842年,Ada Lovelace厌倦了贵族生活,于是在记事本上写写画画,而记事本上的这些内容被后世称作第一个发布的计算机程序。


可惜当年没有电脑,真是不巧。


640?wx_fmt=jpeg


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


640?wx_fmt=jpeg

Alonzo Church


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


640?wx_fmt=jpeg

John Backus


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


640?wx_fmt=jpeg


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


640?wx_fmt=jpeg


1964年,John Kemeny和Thomas Kurtz都觉得现有计算机语言的编程太难了,人们需要回归基础(basic),因而将他们发明的计算机语言称之为BASIC。


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


640?wx_fmt=jpeg

Dennis Ritchie


1972年,Dennis Ritchie在贝尔实验室里对工作产生了厌倦,于是决定搞个带大括号的C语言,并取得了巨大的成功。之后,他在语言中加入分段错误和其它一些对开发者友好的功能来增强C语言的生产力。


干完这些工作后,离下班还有几小时,所以他和贝尔实验室的小伙伴们决定开发个程序来展示C语言,然后他们就造了个叫Unix的操作系统(红红火火恍恍惚惚)。


640?wx_fmt=jpeg

Alan Kay


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


640?wx_fmt=jpeg

Larry Wall


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


640?wx_fmt=jpeg

Jean David Ichbiah


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


但她的语言也没运行过。


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


640?wx_fmt=jpeg

Bjarne Stroustrup


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


640?wx_fmt=jpeg

Guido van Rossum


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


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


640?wx_fmt=jpeg

Rasmus


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


640?wx_fmt=jpeg

Yukihiro Matsumoto


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


640?wx_fmt=jpeg

Brendan Eich


1995年,Brendan Eich花了个周末设计了门语言,希望能够为世上所有的网页浏览器赋能,最终也影响天网。他最开始去了网景,并称自己设计的语言为LiveScript,但Java在代码审查环节火了,于是他们决定用大括号才好,改名叫JavaScript。


后来Java一团糟,于是他们觉得这语言跟Java沾亲带故会出事,所以又在标准化时候把它改名叫ECMAScript,但人们还是按习惯称之为JavaScript。


640?wx_fmt=jpeg

James Gosling


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


640?wx_fmt=jpeg

Anders Hejlsberg


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


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


640?wx_fmt=jpeg

David Heinemeier Hansson


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


640?wx_fmt=png

John Resig


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


640?wx_fmt=jpeg

Ken Thompson


2009年,Ken Thompson和Rob 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并没有像Matz和Ruby开发者那样开心。


640?wx_fmt=jpeg

Chris Lattner


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


版权归原作者所有,转载仅供学习使用,不用于任何商业用途,如有侵权请留言联系删除,感谢合作。


640?wx_fmt=png精品课程推荐:

640?wx_fmt=png

640?wx_fmt=png

选购数学科普正版读物

严选“数学思维好物”

送给孩子的益智礼物   |   办公室神器

算法工程师成长阅读   |   居家高科技

理工科男女实用型礼物精选 

640?wx_fmt=jpeg

超模君准备了几份 数学思维好物

《超模定制笔记本》《数学原来会说谎》

《数学的故事》《简单微积分》......

免费 送给大家,参与就有机会获得

活动时间:1月22号 至 1月31号

640?wx_fmt=gif

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

----640?点击头像关注----

640?wx_fmt=png

超级数学建模

640?wx_fmt=png

数据与算法之美

640?wx_fmt=jpeg

少年数学家

640?wx_fmt=jpeg

数锐学堂

640?wx_fmt=jpeg

惊喜酱(个人号)

640?wx_fmt=jpeg

玩酷屋COOL

640?wx_fmt=gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301914.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql目录树_无限级目录树+记忆节点状态(PHP+mysql)

借鉴 网友 iuhxq 的设计制作而成的目录树,在此感谢 iuhxq 的代码对我大帮助。特点:1、无限级节点。2、直接产生html代码,容易修改。3、目录清楚,类似于资源管理器,(csdn论坛的,层数多了就不容易分清楚层次了…

NET问答: 如何使用 C# 比较两个 byte[] 的相等性 ?

咨询区 Hafthor:我现在业务中遇到了一个场景:如何简洁高效的判断两个 byte[] 的相等性?我现在是这么实现的,有一点繁琐:static bool ByteArrayCompare(byte[] a1, byte[] a2) {if (a1.Length ! a2.Length)return false…

也可以改为while(input[0])或while(cininput[0])

2019独角兽企业重金招聘Python工程师标准>>> <<c primer plus>> // static.cpp -- using a static local variable #include <iostream> // constants const int ArSize 10; // function prototype void strcount(const char * str); int main()…

.NET Core HttpClient请求异常分析

【导读】最近项目上每天间断性捕获到HttpClient请求异常&#xff0c;感觉有点奇怪&#xff0c;于是乎观察了两三天&#xff0c;通过日志以及对接方沟通确认等等&#xff0c;查看对应版本源码&#xff0c;尝试添加部分配置发布后&#xff0c;观察十几小时暂无异常情况出现&#…

python 小甲鱼 代码_Python小代码

先自我介绍一下&#xff0c;本人是正在自学Python的小白&#xff0c;没事分享一下自己写的小代码&#xff0c;欢迎在评论区补充。游戏管理系统&#xff1a;代码如下&#xff1a;def healthe(m):if m"Y"or y:print("欢迎&#xff0c;请进入游戏&#xff01;"…

原来这些行业的“潜规则”是这样的...

全世界只有3.14 % 的人关注了数据与算法之美在日常生活中&#xff0c;我们往往受限于专业和工作&#xff0c;对自己所处行业之外的事物了解不多。今天&#xff0c;数据汪带大家扒一扒各个行业中不为人知的“潜规则”&#xff0c;看看你们知道几个&#xff1f;看完上面20个“潜规…

“工业互联网平台“将成为工业制造企业的标配

目 录1. 概述2. 背景3. 评述1. 概述“‘工业互联网平台’将成为工业制造企业的标配”的命题既是基于工业生产企业现实情况的判断&#xff0c;又是对工业企业未来发展的需求判断。前途是光明的&#xff0c;但是道路是曲折的。前途的光明是基于工业企业现实…

5.[BX]和Loop指令

1.Debug和MASN中读取内存单元的区别&#xff1a;Debug中:mov ax,0ffffhmov ds,axmov al,[1]MASN中:mov ax,0ffffhmov ds,axmov bx,1mov al,[bx]或者mov ax,0ffffhmov ds,axmov al,ds:[1]2.Loop指令assume cs:codecode sementmov ax,2mov cx,3s: add ax,axloop scode ednsend 其…

linux mysql安装教程 方大帝_discuz论坛出现Can not connect to MySQL server错误的解决方法...

网站出现了问题&#xff0c;大家一定很着急吧&#xff0c;特别是做网站的&#xff0c;这几天有一台MySQL数据库服务器频繁出现掉线&#xff0c;经排查&#xff0c;并没有哪个网站受攻击&#xff0c;网上搜索了一下&#xff0c;很多人都碰到这问题&#xff0c;全是Windows系统上…

预售┃每个人都应该学习编程,因为它会教你如何思考

▲数据汪特别推荐点击上图进入玩酷屋扎克伯格11岁开始学习编程&#xff0c;创办Facebook&#xff1b;比尔盖茨13岁学习编程&#xff0c;创办微软……乔布斯说&#xff1a;“每一个人都应该学习电脑编程&#xff0c;因为它会教你如何思考。"现在在北京上海&#xff0c;顶级…

数据库(杂)

like查询是区分大小写的转载于:https://blog.51cto.com/cyxinda/1226040

python3抓取图片_通过Python3 爬虫抓取漫画图片

引言&#xff1a;最近闲来无事所以想着学习下python3&#xff0c;看了好长时间的文档&#xff0c;于是用python3写了一个漫画抓取的程序&#xff0c;好了 废话不多说上码&#xff01;第一步&#xff1a;准备环境 和类库&#xff0c;我用的是python3.5 禁用 python2.x &…

被同事嘲笑说技术方案没深度?

大家好&#xff0c;我是Z哥。程序员群体中有个很好玩的现象。工作年限短的程序员热衷于设计“高大上”的技术方案&#xff0c;而工作年限长的则对技术方案好像不太感冒&#xff0c;上手就撸代码。然后呢&#xff0c;年限短的程序员们想的技术方案又不好意思拿出来讲&#xff0c…

有个厉害的程序员女朋友是什么体验?

全世界只有3.14 % 的人关注了数据与算法之美自古妇女能顶半边天&#xff0c;在 IT 界&#xff0c;女生的力量也越来越强大&#xff0c;杰出的女性闪耀在我们身边。有人说&#xff1a;世界上有两种程序员一种是程序员一种是女程序员据数据汪了解&#xff0c;世界上第一个程序员 …

oracle 11g ORA-12541: TNS: 无监听程序 (DBD ERROR: OCIServerAttach)

em无法浏览&#xff0c;同时监听起不来。同时他的监听服务还是正常的&#xff0c;我做了两步修改 这个问题&#xff0c;最被大家认可的原因是IP地址变动&#xff0c;或者是其它原因&#xff0c;导致Oracle配置文件中的机器名或者IP不能被识别。有种解决办法是修改Network Confi…

out参数不用赋值?这么神奇吗!

首先提醒大家一下&#xff0c;docs.microsoft.com上的《C# 指南》是这样描述out 参数修饰符[1]的&#xff1a;作为 out 参数传递的变量在方法调用中传递之前不必进行初始化。但是&#xff0c;被调用的方法需要在返回之前赋一个值。请注意上面加粗的话&#xff0c;然后看看下面的…

SVN客户端--TortoiseSVN使用说明

TortoiseSVN是windows下其中一个非常优秀的SVN客户端工具。通过使用它&#xff0c;我们可以可视化的管理我们的版本库。不过由于它只是一个客户端&#xff0c;所以它不能对版本库进行权限管理。 TortoiseSVN不是一个独立的窗口程序&#xff0c;而是集成在windows右键菜单中&…

年底求职难?起薪28万的数据岗位,人才缺口达150万,不限专业学历……

全世界只有3.14 % 的人关注了数据与算法之美2018下半年开始&#xff0c;“寒冬”说愈演愈烈。事实上企业的结构调整、人才升级是常见的现象&#xff0c;而且并非所有互联网企业都在“缩招”&#xff0c;很多企业甚至计划在明年扩大校招。人工智能、数据技术的迅猛发展&#xff…

helm安装postgres_添加到postgres数据库外的keycloak k8s helm chart环境参数

我是Kubernetes和helm-charts的新手&#xff0c;并试图让Keycloak在Postgres中保存数据而不是在H2中(因为他默认情况下这样做) . Postgres将由单独的头盔图创建 . 首先我按命令创建Postgres&#xff1a;helm install --namepostgres-keycloak stable/postgresql然后我看一下新的…

在.NET 6中使用DateOnly和TimeOnly

千呼万唤始出来在.NET 6(preview 4)中引入了两个期待已久的类型&#xff0c;将作为核心库的一部分。DateOnly和TimeOnly允许开发人员表示DateTime的日期或时间部分。这两个类型为值类型&#xff08;struct type&#xff09;&#xff0c;可以在代码中独立处理日期或时间概念时使…