从 1 和 0 开始,编程经历了很长一段路,才达到了如今的抽象状态。过去的程序员用伟大的发明,为现代程序员轻松地完成工做奠基了坚实的基础。若是咱们研究某个软件,也许,它是在若干个库的帮助下编写的,而这些库又有另外一套多年前建立的依赖关系。程序员
当咱们再往前追溯,最终会发现,在计算机软件进化史上,有一位杰出的程序员作出了一项伟大的发明。正则表达式
例如,Anaconda 数据科学环境是用 Python 编写的。而 Python 是用 C 编程语言编写的,C 编程语言是一个庞大的项目,推进了数以百万计的项目。相似的,Android 系统所使用的 Linux 内核也是一个由杰出程序员完成的一个大型项目。编程
下面这些程序员是计算机科学的先驱,他们经过完成一些使人难忘的项目,为软件开发奠基了坚实的基础。安全
Linux 内核赋予了不少操做系统:主要是 Linux 发行版和其余基于 Linux 内核的操做系统,如 Android。另外,互联网上的大多数网络服务器运行的操做系统都是 Linux。服务器
Linus 最初是在大学期间实现了 Linux 内核,由于他想为当时我的电脑很是昂贵的 Unix 创造一个免费的替代方案。此外,他那时使用的 Minix 操做系统一般是为了学术目的而实现的,它在受权模式和硬件支持方面存在一些缺陷。Linux 内核最先是在 Minix 内使用 GNU C 编译器进行编程的。网络
此外,他还建立了 Git 源代码管理工具,专门用于管理 Linux 内核的开发工做流程。Git 是因为他们以前用于源代码管理的 BitKeeper 工具出现了问题。这两个项目都是做为他的我的项目开始的。但如今,数以百万计的人在大量使用它们。在全部为开源作贡献的程序员中,我喜欢 Linus 的性格。编程语言
Linux 项目自己只是一个内核。当 Linus 在研究 Linux 项目的时候,与此同时,Richard 也在试图和社区合做,建立一个自由和开源的 Unix 克隆,并取了一个好听的项目名字 GNU(GNU's Not Unix 的递归缩写)。他建立并整合了操做系统所需的全部自由软件,除了内核这一块以外,全部计算机用户均可以自由使用。编辑器
最终,Linux 内核填补了 GNU 项目的最后一块缺失,而他的概念性操做系统的名字也因给数百万用户以自由而变成现实世界的 GNU/Linux。他还开发了 GNU 项目的几个模块,如 GNU 编译器集合和 GNU Emacs 文本编辑器。工具
除了 GNU 项目外,他还创立了 FSF(Free Software Foundation,自由软件基金会),该基金会鼓励每一个人都能使用自由软件,而不会被专利软件公司所控制。此外,由 Richard 发起的自由软件运动也让人们对现代专利软件和操做系统下的用户隐私和用户权利有了更深入的思考。在他的公开演讲中,他老是这样提到自由软件:学习
“对于软件来讲,只有两种可能:要么用户控制程序,要么程序控制用户。若是程序控制了用户,开发者控制了程序,那么程序就是一种不公正的权力工具。”
几乎全部的计算机技术都以 C 语言为基础。C++ 语言就像是添加到 C 语言的一个扩展,它支持现代通用语言的特性,好比基于类的面向对象程序设计概念。
C 语言编程语言被普遍用于建立操做系统和嵌入式系统。Dennis 创造了 C 编程语言,取代了他的同事 Ken Thompson 创造的 B 编程语言。他的老同事 Brian Kernighan 曾经说过:
“Dennis 制造的工具,还有它们的直接后代,几乎运行着今天的一切。”
除此以外,他还和 Ken Thompson 一块儿在贝尔实验室(Bell Labs)为 Unix 操做系统的开发作出了贡献,并为 C 编程语言撰写了著名的手册《C 编程语言》(The C Programming Language)。
Java installer 所说的是真的;有超过 30 亿台设备运行 Java。Java 编程语言为 Web 服务器、移动电话、电视等各类组件提供了强大的功能,Java 在较短的时间内就吸引了人们的注意,由于用 Java 编写 / 编译的程序能够在任何机器上执行。
毕竟,程序中包含的原子指令将在名为 Java 虚拟机(JVM)的虚拟硬件设备中执行。因为 Java 具备虚拟机和完整的访问控制集,所以,它是一种安全的编程语言。Gosling 用 C/C++ 风格的语法建立了 Java。
它能够用于很是复杂的项目,这要归功于 Java 的、有吸引力的跨平台支持和纯面向对象的行为。另外,他还在 Sun Microsystems 开发了诸如 neWS 窗口系统等多个项目。
Unix 就像是世界上全部流行的操做系统的鼻祖。即使是 Minix 和 Linux 等独立项目,他们也会受到 Unix 的影响。Ken 与 Denis Ritchie 一块儿在贝尔实验室设计并实现了 Unix 的原始版本。Ken 建立了 B 编程语言,并为 Denis 建立 C 编程语言提供了途径。
此外,他对计算机世界的杰出贡献还包括他在正则表达式和 UTF-8 编码方面的研究。正则表达式的概念已经存在。而他写了本身版本的 QED 文本编辑器,用计算机编程的正则表达式来查找文本。从那之后,正则表达式随着计算机技术开始了它的旅程。
事实上,创造一种具备平衡抽象的编程语言无疑是很困难的。换句话说,要创造一种既接近硬件又接近程序员的编程语言是很难的。可是,他与 Google 共同发明了 Go 编程语言,而且得到了成功。
转自:InfoQ
原文连接:
https://medium.com/the-innovation/the-5-most-influential-programmers-in-computer-science-3fa590edc729
若是你对编程感兴趣,想要深刻学习。这里分享素材包及学习资源,还有免费教程哦(包含C语言、C++、Windows、Qt、Linux相关知识点)~不管是小白仍是进阶者,在这里都能得到成长。