向奠定软件开发基础的计算机科学先驱致敬。编程从1和0到目前的抽象状态已经走过了漫长的道路。过去的程序员用伟大的发明为现代程序员打下了坚实的基础,可以轻松完成工作。如果我们看一个软件,也许它是在多个库的帮助下编写的,而这些库又具有多年前创建的另一组依赖项。当我们再往前追溯,最终会发现,在计算机软件的进化史上,一位杰出的程序员做出了一项伟大的发明。例如,Anaconda数据科学环境是用Python编写的。而Python是用C编程语言编写的,这是一个庞大的项目,可以驱动数百万个项目。同样,Android系统所使用的Linux内核也是由优秀的程序员完成的一个大工程。下面的程序员是计算机科学的先驱,他们通过完成一些令人难忘的项目为软件开发打下了坚实的基础。1.LinusTorvaldsLinux内核为很多操作系统赋能:主要是Linux发行版和其他基于Linux内核的操作系统,比如Android。此外,Internet上的大多数Web服务器都运行Linux。Linus最初在大学时实现了Linux内核,因为他想在个人计算机非常昂贵的时候创建一个免费的Unix替代品。此外,他当时使用的Minix操作系统(通常用于学术目的)在许可模式和硬件支持方面存在一些缺陷。Linux内核最初是在Minix中使用GNUC编译器编写的。此外,他还创建了专门用于管理Linux内核开发工作流程的Git源代码管理工具。Git是由于他们以前用于源代码控制的BitKeeper工具存在问题。这两个项目都是从他的个人项目开始的。但现在,数百万人正在大量使用它们。在所有为开源做出贡献的程序员中,我喜欢Linus的性格。2.RichardStallmanLinux项目本身只是一个内核。在Linus研究Linux项目的同时,Richard也在尝试与社区合作创建一个自由开源的Unix克隆,并取了一个好听的项目名称GNU(GNU'sNotUnix的递归首字母缩写)。他创建并集成了操作系统所需的所有免费软件,但内核除外,所有计算机用户均可免费使用。最终,Linux内核填补了GNU项目最后一个缺失的部分,他的概念操作系统的名字成为了现实世界中的GNU/Linux,为数百万用户提供了自由。他还开发了GNU项目的几个模块,例如GNUCompilerCollection和GNUEmacs文本编辑器。除了GNU项目,他还创立了FSF(FreeSoftwareFoundation,自由软件基金会),鼓励大家使用自由软件,不受专有软件公司的控制。此外,理查德发起的自由软件运动也让人们更深入地思考现代专有软件和操作系统下的用户隐私和用户权利。在他的公开演讲中,他总是这样提到自由软件:“对于软件来说,只有两种可能:要么是用户控制程序,要么是程序控制用户。如果程序控制用户,开发者控制程序,那么程序是一种不公正的权力工具。”3.DennisRitchie几乎所有的计算机技术都是基于C语言的。C++语言就像是对C语言的扩展,支持现代通用语言的特性,比如基于类的面向对象的编程概念。C编程语言被广泛用于创建操作系统和嵌入式系统。Dennis创建了C编程语言以取代他的同事KenThompson创建的B编程语言。他的老同事BrianKernighan曾说过:“Dennis制作的工具,以及它们直接后代,运行我们今天所做的几乎所有事情。”他还在贝尔实验室与KenThompson一起工作。为Unix操作系统的开发做出了贡献,并为C编程语言编写了著名的手册《C 编程语言》(C编程语言)。4.JamesGoslingJava安装程序所说的是真实的;有超过30亿台设备运行Java。Java编程语言为Web服务器、移动电话、电视等各种组件提供支持isions等。Java在相对较短的时间内获得了关注,因为用Java编写/编译的程序可以在任何机器上执行。毕竟,程序中包含的原子指令将在称为Java虚拟机(JVM)的虚拟硬件设备中执行。Java是一种安全的编程语言,因为它具有虚拟机和完整的访问控制集。Gosling使用C/C++风格的语法创建了Java。由于Java具有吸引力的跨平台支持和纯面向对象的行为,它可以用于非常复杂的项目。此外,他还在SunMicrosystems参与过多个项目,例如newWS窗口系统。5.KenThompsonUnix就像是世界上所有流行操作系统的祖父。甚至像Minix和Linux这样的独立项目也受到了Unix的影响。Ken在贝尔实验室与DenisRitchie一起设计并实现了Unix的原始版本。Ken创建了B编程语言,并为Denis创建了C编程语言提供了路径。此外,他对计算世界的杰出贡献包括他在正则表达式和UTF-8编码方面的工作。正则表达式的概念已经存在。相反,他编写了自己版本的QED文本编辑器,该编辑器使用计算机编程的正则表达式来查找文本。从那时起,正则表达式开始了它与计算机技术的旅程。事实上,创建一种具有平衡抽象的编程语言无疑是困难的。换句话说,很难创建一种既贴近硬件又贴近程序员的编程语言。然而,他与谷歌共同发明了Go编程语言,并取得了成功。
