写点什么

这 5 个程序员,改变了世界

  • 2020-12-18
  • 本文字数:2178 字

    阅读完需:约 7 分钟

这5个程序员,改变了世界

本文最初发表于 Medium 博客,经原作者 Shalitha Suranga 授权,InfoQ 中文站翻译并分享。


致敬那些为软件开发奠定坚实基础的计算机科学先驱。


从 1 和 0 开始,编程经历了很长一段路,才达到了现在的抽象状态。过去的程序员用伟大的发明,为现代程序员轻松地完成工作奠定了坚实的基础。如果我们研究某个软件,也许,它是在若干个库的帮助下编写的,而这些库又有另一套多年前创建的依赖关系。


当我们再往前追溯,最终会发现,在计算机软件进化史上,有一位杰出的程序员做出了一项伟大的发明。


例如,Anaconda 数据科学环境是用 Python 编写的。而 Python 是用 C 编程语言编写的,C 编程语言是一个庞大的项目,推动了数以百万计的项目。类似的,Android 系统所使用的 Linux 内核也是一个由杰出程序员完成的一个大型项目。


下面这些程序员是计算机科学的先驱,他们通过完成一些令人难忘的项目,为软件开发奠定了坚实的基础。


Linus Torvalds


Linux 内核赋予了很多操作系统:主要是 Linux 发行版和其他基于 Linux 内核的操作系统,如 Android。另外,互联网上的大多数网络服务器运行的操作系统都是 Linux。


Linus 最初是在大学期间实现了 Linux 内核,因为他想为当时个人电脑非常昂贵的 Unix 创造一个免费的替代方案。此外,他那时使用的 Minix 操作系统通常是为了学术目的而实现的,它在授权模式和硬件支持方面存在一些缺陷。Linux 内核最早是在 Minix 内使用 GNU C 编译器进行编程的。


此外,他还创建了 Git 源代码管理工具,专门用于管理 Linux 内核的开发工作流程。Git 是由于他们之前用于源代码管理的 BitKeeper 工具出现了问题。这两个项目都是作为他的个人项目开始的。但现在,数以百万计的人在大量使用它们。在所有为开源做贡献的程序员中,我喜欢 Linus 的性格。


Richard Stallman



Linux 项目本身只是一个内核。当 Linus 在研究 Linux 项目的时候,与此同时,Richard 也在试图和社区合作,创建一个自由和开源的 Unix 克隆,并取了一个好听的项目名字 GNU(GNU's Not Unix 的递归缩写)。他创建并整合了操作系统所需的所有自由软件,除了内核这一块之外,所有计算机用户都可以自由使用。


最终,Linux 内核填补了 GNU 项目的最后一块缺失,而他的概念性操作系统的名字也因给数百万用户以自由而变成现实世界的 GNU/Linux。他还开发了 GNU 项目的几个模块,如 GNU 编译器集合和 GNU Emacs 文本编辑器。


除了 GNU 项目外,他还创立了 FSF(Free Software Foundation,自由软件基金会),该基金会鼓励每个人都能使用自由软件,而不会被专利软件公司所控制。此外,由 Richard 发起的自由软件运动也让人们对现代专利软件和操作系统下的用户隐私和用户权利有了更深刻的思考。在他的公开演讲中,他总是这样提到自由软件:


“对于软件来说,只有两种可能:要么用户控制程序,要么程序控制用户。如果程序控制了用户,开发者控制了程序,那么程序就是一种不公正的权力工具。”


Dennis Ritchie



几乎所有的计算机技术都以 C 语言为基础。C++ 语言就像是添加到 C 语言的一个扩展,它支持现代通用语言的特性,比如基于类的面向对象程序设计概念。


C 语言编程语言被广泛用于创建操作系统和嵌入式系统。Dennis 创造了 C 编程语言,取代了他的同事 Ken Thompson 创造的 B 编程语言。他的老同事 Brian Kernighan 曾经说过:


“Dennis 制造的工具,还有它们的直接后代,几乎运行着今天的一切。”


除此之外,他还和 Ken Thompson 一起在贝尔实验室(Bell Labs)为 Unix 操作系统的开发做出了贡献,并为 C 编程语言撰写了著名的手册《C 编程语言》(The C Programming Language)。


James Gosling



Java installer 所说的是真的;有超过 30 亿台设备运行 Java。Java 编程语言为 Web 服务器、移动电话、电视等各种组件提供了强大的功能,Java 在较短的时间内就吸引了人们的注意,因为用 Java 编写 / 编译的程序可以在任何机器上执行。


毕竟,程序中包含的原子指令将在名为 Java 虚拟机(JVM)的虚拟硬件设备中执行。由于 Java 具有虚拟机和完整的访问控制集,因此,它是一种安全的编程语言。Gosling 用 C/C++ 风格的语法创建了 Java。


它可以用于非常复杂的项目,这要归功于 Java 的、有吸引力的跨平台支持和纯面向对象的行为。另外,他还在 Sun Microsystems 开发了诸如neWS窗口系统等多个项目。


Ken Thompson



Unix 就像是世界上所有流行的操作系统的鼻祖。即便是 Minix 和 Linux 等独立项目,他们也会受到 Unix 的影响。Ken 与 Denis Ritchie 一起在贝尔实验室设计并实现了 Unix 的原始版本。Ken 创建了 B 编程语言,并为 Denis 创建 C 编程语言提供了途径。


此外,他对计算机世界的杰出贡献还包括他在正则表达式和UTF-8编码方面的研究。正则表达式的概念已经存在。而他写了自己版本的QED文本编辑器,用计算机编程的正则表达式来查找文本。从那以后,正则表达式随着计算机技术开始了它的旅程。


事实上,创造一种具有平衡抽象的编程语言无疑是很困难的。换句话说,要创造一种既接近硬件又接近程序员的编程语言是很难的。但是,他与 Google 共同发明了 Go 编程语言,并且获得了成功。


作者介绍:


Shalitha Suranga,软件工程师,供职于 99X。同时也是 Apache PMC 成员、开源贡献者(Neutralinojs 的作者)、技术作者。


原文链接:


https://medium.com/the-innovation/the-5-most-influential-programmers-in-computer-science-3fa590edc729

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2020-12-18 14:243871
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 492.6 次阅读, 收获喜欢 1966 次。

关注

评论 4 条评论

发布
用户头像
那么问题来了,文中随便一位大佬动不动就50 60+了。中国的互联网公司有两种情况。一是做到30多快40的程序员,时刻要思考怎么不被公司干掉,二是没有被干掉而继续爬升的幸运儿,往往后面就专注于向老板汇报漂亮的PPT,还有就是怎么样剽窃下属的成果来成为各种大会上的明星。
2020-12-29 13:58
回复
这很正常的现象,哪里都有这种情况
2020-12-29 15:21
回复
用户头像
Salute to Ritchie
2020-12-28 13:27
回复
用户头像
什么时候才能有来自中国的大神
2020-12-25 19:46
回复
没有更多了
发现更多内容

在阿里巴巴,我们如何先于用户发现和定位 Kubernetes 集群问题?

阿里巴巴云原生

阿里云 云原生 分享 KubeProbe

CNCF Serverless工作流社区携手华为云FunctionGraph,开拓Serverless编排新时代

华为云开发者联盟

json Serverless 华为云 FunctionGraph CNCF Serverless Workflow

千万级学生管理系统的考试试卷存储方案

Geek_8d5fe5

「架构实战营」

Java 中线程池的 7 种创建方式!

王磊

Java 面试

Java培训高并发之线程的6种状态

@零度

线程 JAVA开发 状态

uni-app技术分享| uni-app常见问题(二)

anyRTC开发者

uni-app 音视频 WebRTC 移动开发 视频通话

安全大讲堂 | 2022产业趋势洞察:网络安全的下一个十年

腾讯安全云鼎实验室

网络安全 未来发展

方舟开发框架容器类API的介绍与使用

HarmonyOS开发者

方舟 HarmonyOS 开发框架

基于小熊派开发板设计的云端绿化管理系统

DS小龙哥

IoT 3月月更

构建 Go 应用 docker 镜像的十八种姿势

万俊峰Kevin

微服务 web开发 go-zero docker image Go 语言

测性能,拿周边|OceanBase 3.1.2版本邀你来玩

OceanBase 数据库

oceanbase OceanBase 开源 OceanBase 社区版

一图了解龙蜥社区 2 月运营大事件

OpenAnolis小助手

Linux 开源 操作系统 运营

3月技术专题月火热开启!快来一睹为快!

用友BIP

用友 用友iuap

最佳实践:Kubernetes 集群中 DNS 故障的可观测性与根因诊断

阿里巴巴云原生

阿里云 Kubernetes 云原生 服务器 DNS

【模块四】千万级学生管理系统考试试卷存储方案设计

yhjhero

#架构训练营

工作想法小计(4):2/28 - 3/4

非晓为骁

个人成长 工作 细节 工作想法

Python二分查找,字符串模板,textwrap模块,每天写写Python自然就会了,每日Python第2天

梦想橡皮擦

3月月更

数据分析不能落地?快来围观,学会数据分析应用,一起升职加薪!

博文视点Broadview

为什么说程序猿也要有产品思维

慕枫技术笔记

技术思维 内容合集 3月月更

ScrollView 和 RelativeLayout两个布局技巧

逆锋起笔

android xml 3月月更 android布局

如何在windows下成功的编译和安装python组件hyperscan

华为云开发者联盟

正则表达式 windows hyperscan python组件 正则表达式引擎

峰会报名|从金融行业技术选型,看 RocketMQ 如何应对严苛挑战

阿里巴巴云原生

阿里云 RocketMQ 云原生 消息队列 峰会报名

千万级学生管理系统考试试卷存储方案

Geek_36cc7c

强大的JSON.stringify,你真的会使用吗?

战场小包

JavaScript 前端 3月月更

【BBC learningenglish】with Tango

IT蜗壳-Tango

3月月更

几种如何判断环境是否连上网方法!推荐最后一种

华为云开发者联盟

网络 nodejs ipv4 上网 网络接口

前端实现word、excel、pdf、ppt、mp4、图片、文本等文件的预览

CRMEB

黄东旭: 关于基础软件产品价值的思考

PingCAP

分布式数据库排序及优化

vivo互联网技术

分布式数据库

列存Delta表是个什么东东

华为云开发者联盟

存储 GaussDB(DWS) 列存表 delta表

大数据培训:RDD、DataFrame的区别

@零度

大数据 spark

这5个程序员,改变了世界_AI&大模型_Shalitha Suranga_InfoQ精选文章