漫画 | 这个北欧小国发明的编程技术,竟然占领全世界了!

news2024/11/29 20:49:52

上世纪60年代 ,挪威计算中心。

一个新来员工刚上班,发现有两个人居然在一楼的黑板前打架

46f0adf700a2735f0675f44fd92aeee8.jpeg

新员工立刻跑到电话接线员那里报告

dd7dac546181401c06a0fe8cc61c3477.jpeg

什么样的编程语言,能让两人大动肝火?

当时Nygaard正在编写复杂系统的模拟程序,模拟程序要求先定义通用的行为,然后再创建大量的实例出来。

586b6a101c0218de714479d594202d22.jpeg

dafee51fda4dc10407f6bdaf9b39abcb.jpeg

挪威不是计算机和软件的强国,挪威计算中心也不是资金雄厚的研究所。

Dahl和Nygaard要发明新编程语言的事情,遭到了组织内部的批评。

4616789b4d06a028136c1b0fe0a5f1d4.jpeg

但是Dahl和Nygaard并不在意,他们以ALGOL 60 为基础,开始设计Simula 。

54faaa8de336ddb45d5d1435143aebf8.jpeg

在不断的设计迭代中,两人迸发出来强大的创造力,在Simula中发明了现代面向对象的所有关键概念!

87dcfc317ff5bae5903e88c98fcc2697.jpeg

Simula本意是为了做“模拟”,但后来大家认识到,这是一种新的编程泛型,它完全可以作为通用的编程语言。

292762be292b9dcc75918ea3aa478241.jpeg

Simula是世界上第一个面向对象的语言,Dahl和Nygaard因为对面向对象的卓越贡献获得了计算机界最高奖:图灵奖。

可惜的是,2002年,Dahl和Nygaard不幸去世,在这里向两位前辈致敬。cbce62ddc64e67b7ff6dda3b7c9175ec.jpeg

让我们再把目光转向美国,1968年,博士生Alan Kay 提了一个非常超前的想法:制作一台适合所有年龄段儿童的个人电脑!Dynabook。

0958a67141b12b0d618d8be85acade0f.jpeg

Dynabook需要有图形用户界面,有无线网络,可以协作,并且本身就是个强大的编程环境。

13a4fda1a0d2afc35ff3c7a26f659c71.jpeg

1970年,Alan Kay 加入了著名的施乐帕洛阿托研发中心,Dynabook的想法成功地激发施乐开发了Alto电脑。

Alto电脑是个划时代的产品,里边有很多影响后世计算机的重大创新

385ccf3216e164acf061799dd7ff910d.jpeg

d3addf486eee9f6c376828f78d406184.jpeg

Smalltalk是第一个纯粹的面向对象编程语言,在Smalltalk中,一切都是对象!

aef468d88382a24f11aa2f3814d317c4.jpeg

所有的计算都是通过发送消息来完成的,消息传递是Smalltalk最重要的概念。

7574a6a77c14333d533b16e0a036d066.jpeg

Smalltalk对后来的编程语言产生了巨大的影响力,它发明的MVC被后来各种框架采用。

c95b867567987dbe80415757d3a3ffba.jpeg

它实现的消息传递、GC、字节码、纯粹的面向对象被很多语言借鉴。

d1fe10ac98ae62c6af62d6f37f30d544.jpeg

重构、设计模式、极限编程后来也被发扬广大。

bc8a0910e7b067e034542a4ed86b0d9f.jpeg

Simula和Smalltalk作为两个面向对象的先驱,可以说是领先时代,但它们都没有大范围地流行起来

a3554a66ad182f0c9fbd50b3358821e1.jpeg

1969年,一个叫Bjarne Stroustrup的年轻人进入丹麦Aarhus大学学习计算机专业。

在这里他遇到了Simula的发明人Nygaard,挪威离丹麦不远,Nygaard经常来这里讲学。

c71c46dd437f0c16ba23f8ffa800ffe3.jpeg

面向对象的思想就此在Bjarne Stroustrup脑海中埋下了种子。

1979年,Bjarne Stroustrup 在剑桥大学写博士论文的时候,他再次注意到了Simula。

b1edd891e84e208a06d53ceea72641cd.jpeg

Bjarne Stroustrup毕业后加入了贝尔实验室,在这里他近距离接触到了C语言。

0356214ad07e5bfa3a748ba5456ed866.jpeg

Bjarne Stroustrup决定为C语言增加一些类似Simula的面向对象特征

c9f2fbf181108817aa6a9bdf2ea3cc86.jpeg

1985年,C++的第一个版本发布,它既有C语言闪电般的速度,又支持面向对象,受到了大家的热烈欢迎。面向对象从此进入主流。

到了90年代,Java出现,更是将面向对象推向最高峰。

7d3b834544739e9e8a5d7349af84f97f.jpeg

与此同时,在世界的另一端

d05878f8951e6c55276e3caaad15a1f5.jpeg

点击下方图片,查看更多编程语言的故事

6fbfd0ec9685ca95f324e8e823dacf69.png

3e209c13de47330d3a7e58a0e5238b99.png

571f0bb9f77b3532eaed6eaea879f3c0.png

a549b177679d0655872836321d91c2b8.png

2674517f8f08260a884ff9edd84ed994.png

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

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

相关文章

【猿如意】中的『XMind』工具详情介绍

目录 一、工具名称 二、下载安装渠道 2.1 什么是猿如意? 2.2 如何下载猿如意? 2.3 如何在猿如意中下载开发工具? 三、XMind工具功能简介 四、XMind的下载和安装 4.1下载 4.2安装 五、XMind的基本使用 5.1新建项目 5.2系统模板的使…

【java】程序员基础能力测试33问,持续整理中

Java基础: 1:八大基本数据类型,及所占字节数? 2:讲下对面向对象的理解? 特征:封装、继承、多态; 基础:抽象 面向对象,主要就是将现实中的对象抽象成一个类,这个对象具有一定的属性…

[附源码]Python计算机毕业设计服装商城平台Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

项目管理之Git---submodule

0. 简介 在面对复杂系统时,所有的模块不可能同时开发在一个project下的,而更多的可能就是每个人开发不同的模块,并通过一个模块将这些模块都整合到一起,这时候submodule的作用就非常明显了。通过设置submodule可以轻易地对不同的…

通信基站安装步骤

基站设备安装步骤(移动通信基站施工过程),并说明施工要点和注意事项。 安装机柜流程。安装电源线和系统接地。 安装电源机柜时应直流配电柜接出-48V直流电源至RNC810机柜和NodeB机柜顶端配线盒。 将保护地线接至机柜接地螺栓上并紧固螺栓。 天馈系统安装。 天馈系统安装前的…

大数据学习:压缩与打包

文章目录任务一:压缩文件任务二:解压文件任务三:生成打包文件任务四:将打包文件解压到当前文件任务五:将打包的文件解压缩到指定目录任务六:解压打包文件里的某个目录任务一:压缩文件 在/tmp目…

redis地理位置和MongoDB地理索引的使用

比较 经度纬度都要在有效区间。经度范围介于 -180 到 180,纬度范围大致介于-90和到90。redis使用Zset结构存储,将经度值、纬度值转换为一个值,二维量变成一维量找附近的位置,效率极高,不过限于平面,且无法…

测量学:水准和导线测量实验报告+详细解析

目录 00 说明 实验1 闭合导线测量 实习目的 实习任务和内容 控制点的布置和测量技术要求(绘制导线略图) 导线略图 外业测量数据和记录相关表格(附原始观测记录) 原始观测数据记录如下: 记录表格如下&#xff…

Web3中文|星巴克拥抱Web3,新项目Odyssey开启数字旅程

12月8日,成立用于1971年,全球82个市场拥有超过32,000家门店的美国咖啡公司星巴克对其备受期待的Odyssey体验进行了测试,该体验将客户忠诚度奖励与NFT以及其他游戏元素相结合。 早在9月12日,星巴克宣布将推出Web3平台“Starbucks …

openEuler社区开源项目:CPDS(容器故障检测系统)介绍

容器故障检测系统 CPDS (Container Problem Detect System) 是由北京凝思软件股份有限公司(以下简称“凝思软件”)设计并开发的容器集群故障检测系统,该软件系统实现了对容器TOP故障、亚健康状态的监测与识别。 2022年11月,凝思软…

isp,iap,sw-jtag

https://blog.csdn.net/weixin_45905650/article/details/107707858?ops_request_misc%257B%2522request%255Fid%2522%253A%2522167098526816800180634199%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id167098526816800180634199&biz_i…

JS:通过setTimeout和promise来了解js代码执行机制(面试题讲解)

目录 1.setTimeout定时器 2.promise函数 补充:1.什么是宏任务与微任务 补充:2.宏任务和微任务的执行顺序 补充:3.js的执行顺序 补充:4.答案揭晓 前几天碰到一个关于js执行顺序的面试题,一时间竟然有点模糊&#…

BCN-PEG-Folate 环丙烷环辛炔聚乙二醇叶酸 BCN-PEG-FA

双环[6,1,0]壬炔 (BCN) (环丙烷环辛炔)可以通过无铜的点击化学与叠氮化物标记的分子或生物分子反应生成稳定的三氮唑连接。 产品名称 BCN-PEG-Folate 环丙烷环辛炔聚乙二醇叶酸 中文名称 环丙烷环辛炔聚乙二醇叶酸 英文名称 BCN-PEG-Folate BCN…

统信软件高级系统研发工程师:sysOM 在系统可靠性与安全上实践

一、系统可靠性 SRE是判断系统是否可靠、可用、有效重要标准,它包括: 服务水平指标SLI:衡量服务使用情况量化指标。 比如IO读写速率、网络延迟。通常量化指标会转换为比率、平均值或百分比。服务水平目标SLO:一段时间、区间内的目…

花1块钱让你的网站支持 ChatGPT

点击上方卡片“前端司南”关注我您的关注意义重大原创前端司南最近 ChatGPT 在技术圈子可太火了,票圈也被刷屏。我也决定来凑个热闹,给自己的博客加一个 ChatGPT 对话功能。先附上体验链接[1],源码在底部也可以找到。体验 ChatGPTChatGPT[2] …

1区SCI潜力刊,中科院分区即将更新,有望冲击2区

1区 计算机物联网类SCI&EI 01 期刊详情 【出版社】Elsevier 【指标情况】自引率6.30% 【期刊简介】IF:5.5-6.0,JCR1区,中科院分区预计月底公布 【检索情况】SCI&EI 双检,正刊 【参考周期】3-4个月左右录用 【截稿日期】2023.2.…

cv2.circle()函数报错(tensor 转 array 感觉是bug)

前言 我不理解为啥opencv-python可视化一堆报错,同一个三通道图像,cv2.imshow()没有问题,cv2.circle()就一直有问题,搞了一晚,心态炸了!!! cv2需要的图片矩阵(H, W, C&…

FKM规范 针对非焊接构件疲劳强度评估的实例介绍(下篇)

本文主要结合FKM规范及FKM inside ANSYS软件针对非焊接构件的手动计算实例及软件计算实例进行介绍,希望大家对FKM规范在非焊接构件疲劳强度评估中的手动及软件计算过程有基本的了解。 一、写在前面 FKM Inside ANSYS软件,该软件是在FKM 规范的基础上&a…

不想写日报、周报,这个报表自动化软件太牛了,仅需三分钟

昨天看到一个哥们发帖说IT部门负责做报表的同事阳了,再加上年底各个业务部门报表需求旺盛,现在他们是忙的饭都吃不上,天天凌晨才能回家。京东的人倒是被解放了,毕竟强东说汇报只能1页ppt。但对于万千其他公司的朋友们来说&#xf…

【POJ No. 2114】 游船之旅 Boatherds

【POJ No. 2114】 游船之旅 Boatherds 北大OJ 题目地址 【题意】 河流总是形成一棵树(以村庄为节点),超过两条河流时可以在交叉路口汇入。游船的定价政策非常简单:两个村庄之间的每条河流都有一个价格(两个方向的价格…