改变世界的五位顶级程序员!

2023-05-16

点击上方“Java基基”,选择“设为星标”

做积极的人,而不是积极废人!

源码精品专栏

 
  • 原创 | Java 2020 超神之路,很肝~

  • 中文详细注释的开源项目

  • RPC 框架 Dubbo 源码解析

  • 网络应用框架 Netty 源码解析

  • 消息中间件 RocketMQ 源码解析

  • 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析

  • 作业调度中间件 Elastic-Job 源码解析

  • 分布式事务中间件 TCC-Transaction 源码解析

  • Eureka 和 Hystrix 源码解析

  • Java 并发源码

作者 | Shalitha Suranga

译者 | 刘志勇

策划 | 刘燕

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

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

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

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

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

1Linus Torvalds

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

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

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

2Richard 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 发起的自由软件运动也让人们对现代专利软件和操作系统下的用户隐私和用户权利有了更深刻的思考。在他的公开演讲中,他总是这样提到自由软件:

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

3Dennis Ritchie

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

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

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

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

4James Gosling

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

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

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

5Ken 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



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

已在知识星球更新源码解析如下:

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 20 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

改变世界的五位顶级程序员! 的相关文章

随机推荐

  • 机器学习实战项目汇总

    ML assignments about Regression Classification CNN RNN Explainable AI Adversarial Attack Network Compression Seq2Seq GAN
  • C++类的运算符重载

    11 8 类的运算符重载 运算符重载是一种形式的C 43 43 多态 运算符重载将充值该的概念扩展到运算符上 xff0c 允许赋予C 43 43 运算符多种含义 C 43 43 允许将运算符重载扩展到用户定义类型 xff0c 例如 xff0
  • qgc通过mavros连接到Pixhawk飞控

    qgc通过mavros连接到Pixhawk飞控 mavros设置QGC设置 mavros确实是一个不错的工具 xff0c 在机载电脑上进行无人机开发的时候 xff0c 有时候想调飞控的参数看一下飞控的一些信息 xff0c 但是直接接飞控又不
  • 【视觉 SLAM】2D-2D:对极几何

    本文为视觉 SLAM 学习总结 xff0c 讲解 2D 2D 对极几何 欢迎交流 理论 现在相机得到了两张图片 xff08 通常为初始帧和第二帧 xff09 xff0c 已知两张图片中的像素坐标点和特征点的匹配关系 xff0c 已知相机内参
  • C调用python生成的so动态库

    目标 python代码实现的功能 xff0c 转成so动态链接库库 xff0c 然后被C语言调用 环境 ubuntu 18 04 思路 写一个pyx xff0c 用Cython生成so xff0c 写一个main c调用so 过程记录 写
  • 树莓派连接电源时,红灯常亮,绿灯连续闪两下后一直灭的问题

    可能原因 xff1a 1 解压途径不正确 IMG不能用RAR软件解压 xff0c 要用7ZIP xff08 官网有 xff1a 7ZIP xff09 用7ZIP解压 xff0c 然后重新刷系统 2 可能是SPI EEPROM的问题 xff0
  • 树莓派不能上网的可能原因以及解决方法

    不能上网的具体表现为树莓派的Web浏览器不能进入百度 xff0c 且运行sudo apt get update指令会报错 xff0c 提示 暂时不能解析域名 在百度上尝试了很多办法 xff0c 比如在 etc resolv conf文件中修
  • 树莓派4B学习笔记(3)—— 原理图与设置界面

    一 树莓派4B介绍 戳这里获取原理图 目前树莓派4只支持 xff0c 2019年7月10日发布的新系统raspbian buster xff0c 有精简版和全功能版 对于之前任何能与树莓派3兼容的系统 xff0c 树莓派4一概不支持 树莓派
  • 机器人正运动学(2)—— 自由度

    目录 1 自由度的定义2 自由度的计算2 1 刚体的自由度2 2 运动副2 3 自由度算例 3 总结 1 自由度的定义 自由度在很多领域中会出现 xff0c 对于机器人而言 xff0c 我们这里谈的也就是机构的自由度 任何一台机器人都可以认
  • 机器人正运动学(8)—— DH坐标系建立技巧

    目录 1 引言2 建立DH坐标系的技巧2 1 理清关节和连杆2 2 画 z 轴2 3 确定 x 轴2 3 1 x轴方向2 3 2 x轴起始点 xff08 坐标系原点 xff09 2 4 小结 3 总结 1 引言 关于DH参数上一篇文章介绍了
  • ROS 学习笔记(13)—— 常用可视化工具的使用

    常用可视化工具的使用 1 QT 工具箱1 1 日志输出工具 rqt console1 2 数据绘图工具 rqt plot1 3 图像渲染工具 rqt image view1 4 计算图可视化工具 rqt graph1 5 综合工具 rqt
  • 树莓派4B安装 ubuntu20.04 & VNC远程桌面 & 安装ROS noetic

    树莓派4B安装 ubuntu20 04 amp VNC远程桌面 amp 安装ROS noetic 1 安装ubuntu方式1 xff1a 下载Imager文件 方式2 xff1a 下载镜像文件 2 查询树莓派 IP 地址3 使用ssh远程登
  • ROS踩坑记录

    ROS踩坑记录 问题 xff1a ubuntu 没有 dev ttyUSB0问题 xff1a 运行 launch 文件或 ROS 节点时出现 exit code 9 错误提示问题 xff1a windows使用vscode远程连接 xff0
  • ROS中的分布式通讯(树莓派与虚拟机)

    ROS中的分布式通讯 xff08 树莓派与虚拟机 xff09 一 前言二 树莓派连接WIFI三 查找局域网下的其他设备 IP四 确定可以ping通五 配置文件修改六 配置主机 IP七 配置从机 IP八 测试九 可能会遇到的问题 一 前言 在
  • Laravel Passport-不支持授予类型("error": "unsupported_grant_type")

    如果你在Laravel里使用Passport授权验证的时候出现 xff1a span class token punctuation span span class token double quoted string string 34
  • NanoPi M4开发opencv图像识别aruco码全过程(超详细)(一:搭环境)

    NanoPi M4介绍 NanoPi M4是基于RK3399 SoC设计的一款接口尺寸与树莓派3兼容的嵌入式ARM计算机 它的尺寸只有85x56mm xff0c 接口丰富 布局紧凑 非常适合二次开发 并方便嵌入到最终产品中去 NanoPi
  • NanoPi M4开发opencv图像识别aruco码全过程(超详细)(二:测试)

    进入 usr local bin 这里是aruco提供的一些测试案例 xff0c 可执行文件 这里我们用这些例程来测试是否opencv及aruco是否安装完好并且可执行 1 相机标定 1 1先打印生成标定板 在https sourcefor
  • NanoPi M4开发opencv图像识别aruco码全过程(超详细)(二:测试补充)

    一 ArUco项目源码简析 声明 xff1a 以下内容均是在虚拟机Ubuntu系统下进行操作 xff0c 用开发板Nano Pi的同学亦可同样实现 xff0c 但这里为了方便截图以及界面复制 1 首先来看一下ArUco项目的源码结构 bin
  • 麻将清一色判和

    麻将清一色判和 C语言 题目示例 题目 是这样的 xff0c 雀儿最近迷上了打麻将 但是她不知道怎么才能清一色和牌 麻将的清一色和牌规则是 xff1a 雀儿手里有13张同一类型的牌 xff08 万 筒或索中的一种 xff0c 从1到9 xf
  • 改变世界的五位顶级程序员!

    点击上方 Java基基 xff0c 选择 设为星标 做积极的人 xff0c 而不是积极废人 xff01 源码精品专栏 原创 Java 2020 超神之路 xff0c 很肝 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析网络应用框