改变世界的五位程序员
Python实战社群
Java实战社群
长按识别下方二维码,按需求添加
扫码关注添加客服
进Python社群▲
扫码关注添加客服
进Java社群▲
作者 | Shalitha Suranga
译者 | 刘志勇
策划 | 刘燕
本文最初发表于 Medium 博客,经原作者 Shalitha Suranga 授权,InfoQ 中文站翻译并分享。
致敬那些为软件开发奠定坚实基础的计算机科学先驱。
从 1 和 0 开始,编程经历了很长一段路,才达到了现在的抽象状态。过去的程序员用伟大的发明,为现代程序员轻松地完成工作奠定了坚实的基础。如果我们研究某个软件,也许,它是在若干个库的帮助下编写的,而这些库又有另一套多年前创建的依赖关系。
当我们再往前追溯,最终会发现,在计算机软件进化史上,有一位杰出的程序员做出了一项伟大的发明。
例如,Anaconda 数据科学环境是用 Python 编写的。而 Python 是用 C 编程语言编写的,C 编程语言是一个庞大的项目,推动了数以百万计的项目。类似的,Android 系统所使用的 Linux 内核也是一个由杰出程序员完成的一个大型项目。
下面这些程序员是计算机科学的先驱,他们通过完成一些令人难忘的项目,为软件开发奠定了坚实的基础。
1 Linus Torvalds
Linux 内核赋予了很多操作系统:主要是 Linux 发行版和其他基于 Linux 内核的操作系统,如 Android。另外,互联网上的大多数网络服务器运行的操作系统都是 Linux。
Linus 最初是在大学期间实现了 Linux 内核,因为他想为当时个人电脑非常昂贵的 Unix 创造一个免费的替代方案。此外,他那时使用的 Minix 操作系统通常是为了学术目的而实现的,它在授权模式和硬件支持方面存在一些缺陷。Linux 内核最早是在 Minix 内使用 GNU C 编译器进行编程的。
此外,他还创建了 Git 源代码管理工具,专门用于管理 Linux 内核的开发工作流程。Git 是由于他们之前用于源代码管理的 BitKeeper 工具出现了问题。这两个项目都是作为他的个人项目开始的。但现在,数以百万计的人在大量使用它们。在所有为开源做贡献的程序员中,我喜欢 Linus 的性格。
2 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 发起的自由软件运动也让人们对现代专利软件和操作系统下的用户隐私和用户权利有了更深刻的思考。在他的公开演讲中,他总是这样提到自由软件:
“对于软件来说,只有两种可能:要么用户控制程序,要么程序控制用户。如果程序控制了用户,开发者控制了程序,那么程序就是一种不公正的权力工具。”
3 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)。
4 James Gosling
Java installer 所说的是真的;有超过 30 亿台设备运行 Java。Java 编程语言为 Web 服务器、移动电话、电视等各种组件提供了强大的功能,Java 在较短的时间内就吸引了人们的注意,因为用 Java 编写 / 编译的程序可以在任何机器上执行。
毕竟,程序中包含的原子指令将在名为 Java 虚拟机(JVM)的虚拟硬件设备中执行。由于 Java 具有虚拟机和完整的访问控制集,因此,它是一种安全的编程语言。Gosling 用 C/C++ 风格的语法创建了 Java。
它可以用于非常复杂的项目,这要归功于 Java 的、有吸引力的跨平台支持和纯面向对象的行为。另外,他还在 Sun Microsystems 开发了诸如 neWS 窗口系统等多个项目。
5 Ken Thompson
Unix 就像是世界上所有流行的操作系统的鼻祖。即便是 Minix 和 Linux 等独立项目,他们也会受到 Unix 的影响。Ken 与 Denis Ritchie 一起在贝尔实验室设计并实现了 Unix 的原始版本。Ken 创建了 B 编程语言,并为 Denis 创建 C 编程语言提供了途径。
此外,他对计算机世界的杰出贡献还包括他在正则表达式和 UTF-8 编码方面的研究。正则表达式的概念已经存在。而他写了自己版本的 QED 文本编辑器,用计算机编程的正则表达式来查找文本。从那以后,正则表达式随着计算机技术开始了它的旅程。
事实上,创造一种具有平衡抽象的编程语言无疑是很困难的。换句话说,要创造一种既接近硬件又接近程序员的编程语言是很难的。但是,他与 Google 共同发明了 Go 编程语言,并且获得了成功。
原文链接:
https://medium.com/the-innovation/the-5-most-influential-programmers-in-computer-science-3fa590edc729
程序员专栏 扫码关注填加客服 长按识别下方二维码进群
近期精彩内容推荐:
朋友入职中软一个月(外包华为)就离职了!
再见,胡阿姨!再见,共享单车!
一代经典销声匿迹:WinXP彻底再见了!
2021年1月编程语言排行榜
在看点这里好文分享给更多人↓↓
改变世界的五位程序员相关推荐
- 【报告分享】如何嫁给“改变世界的男人”-程序员之理想女友大调查.pdf(附下载链接)...
今天给大家分享用户行为洞察研究院在2020年情人节之际推出的报告<如何嫁给"改变世界的男人"--程序员理想女友大调研.pdf>,本报告共收集2000份有效问卷,从中抽取 ...
- 5 位改变世界的女性程序员
计算机编程是一个由男性主导的领域,对吧? 就纯粹的数字而言,这确是真的.美国劳工统计局的数据显示,73% 的美国计算机科学工作者是男性,只有 27% 是女性程序员.一般来说在整个计算机编程技术领域,女 ...
- 程序员爬虫竟构成犯罪?
近期,一起关于爬虫与反爬虫的诉讼案件再次被推到了公众面前. 公交作为互联网从业者的必备通勤工具之一,是出行领域必争的板块.实时公交 APP 也就成为了热门的应用场景,它们不仅可以为用户提供定位.公交路 ...
- 程序员在网吧敲代码,这波操作真的太秀了!
Linux编程点击右侧关注,免费入门到精通! 在今天这个互联网时代,网络已经成为了人们生活中的一部分. 而网吧这个词大家也一定不陌生,可以说现在的年轻人或多或少都去过网吧. 不过,一般情况下,大家都认 ...
- 我坦白!我是第五位飞上太空的程序员游客
作者 | 年素清 责编 | 王晓曼 出品 | 程序人生 (ID:coder _life) 查尔斯·西蒙尼(Charles Simonyi)是软件史上的传奇人物.他高中时就开发出程序卖给政府,大学期间则 ...
- 如何嫁给改变世界的男人:程序员理想女友大调查
大家好,我是文文(微信:sscbg2020),今天给大家分享用户行为洞察研究院发布的报告<如何嫁给改变世界的男人:程序员理想女友大调查.pdf>,在分享报告前先代技术小哥们说段话呀: 尽管 ...
- 写代码是人命关天的工作:盘点那些改变世界的代码 ,程序员惊了
| 本文约 4900 字,阅读约需 3 分钟 | 2009 年,Facebook 推出了一份改变世界的代码--点「赞」按钮.「赞」是包括 Leah Pearlman 和 Justin Rosenste ...
- 世界排名前五位的女程序员
提到编程,给人一种令人着迷的感觉,它神秘.充满魅力和金钱,只要你足够努力工作就能获得最好的结果.这是一个由男性主导的领域.我们经常听到顶级程序员的名字,他们都是男性.然而,也有许多女性程序员为自己取得 ...
- 1024程序员节:向改变世界的程序员致敬
今天是1024程序员节. 这个节日诞生后的短短几年,程序员已经变成了网络上段子最多的群体之一.但是我却越来越深刻地感觉到,如果要问谁是这个时代最可爱的人,那一定是我们的程序员. 也许有人觉得不以为然: ...
最新文章
- Java 8 vs. Scala之Lambda表达式
- 如何高效学习Java?本文给你一些建议!
- 洛谷P2462 [SDOI2007]游戏(哈希+最长路)
- labuladong 的算法小抄_关于算法笔试的几个套路,一点就透
- Laravel源码分析之Session
- Windows 2000的电源管理
- FreeRTOS源码分析与应用开发09:低功耗Tickless模式
- 面试题:在O(1)空间复杂度范围内对一个数组中前后连段有序数组进行归并排序...
- python 堆栈溢出_IAR堆栈溢出的问题
- Matter-JS Composite.add 符合材料添加约束
- 卖家如何做亚马逊、Lazada、Shopee、速卖通、wish、eBay、沃尔玛、mercari、Newegg自养号测评?技术分享,带你开启掘金之路。
- jsdroid 教程_ps教程自学平台
- 大内高手—常见内存错误
- 美团店铺评价语言处理以及分类(tfidf,SVM,决策树,随机森林,Knn,ensemble)...
- 【论文解读】持续学习三种情形
- 网络寻宝图 v1.0 官方
- 如何第一次办理港澳通行证、护照、台湾通行证
- 源码阅读之Splitter
- 人工智能导论笔记-第四章-不确定性推理方法
- Mysql引擎之MyISAM引擎
热门文章
- 如何用光盘映像文件重装服务器系统,光盘映像文件怎么安装,小编教你光盘映像文件怎么安装系统...
- 《数字图像处理》冈萨雷斯版 读书笔记(二)
- 网易滑块识别-通用滑块识别
- 如何使用R批量处理文件
- 从校招时间谈大学求职准备
- 华为认证报考流程(详细步骤)-手把手教你注册华为账号,预约华为考试,下载华为证书
- 两连杆机器鱼的简单建模以及MATLAB仿真(2)
- Python实现抓取微信公众号文章
- Unity 解决 An asset is marked with HideFlags.DontSave but is included in the build 问题
- 腾讯地图微信小程序JavaScript SDK