当前位置: 首页 > 编程日记 > 正文

Python之父退休,C语言之父与世长辞,各大编程语言创始人现状盘点

640?wx_fmt=jpeg

作者 | 年素清

编辑 | 伍杏玲

来源 | 程序人生(ID:coder_life)

从世界上第一台计算机(ENIAC) 于1946年2月在美国诞生至今的七十多年里,涌现出了许多优秀的计算机编程语言。程序员们在使用它们编写程序的时候,一定很好奇发明这些语言的发明者背后的故事,以及他们现状,是像Python 之父一样功成身退,还是继续奋战在编程一线。

为此,笔者特地盘点了几大语言设计者的事迹和他们的现状。

C语言之父

也许C不是当今编程界最流行最火的计算机语言,但它却是迄今为止最常用、最古老的编程语言之一,于20世纪60年代由肯尼斯•蓝•汤普逊(Kenneth Lane Thompson)和丹尼斯•里奇(Dennis Ritchie)共同创立。

C语言的诞生可谓是现代程序语言革命的起点,是程序设计语言发展史中的一个里程碑。有了C语言,才有后来的以此为根基的C++、Java和C#等面向对象的编程语言的相继诞生。

说到此,两位创立者可谓功不可没,而这两位创立者本身也是集众多IT技术于一身。除了C语言之外,两人还发明了Unix操作系统,被共同誉为“Unix之父”。两人因此先后分别一起获得了1983年的图灵奖和1999年美国政府颁发的国家技术奖章。此外,汤普逊还是另一种编程语言go的作者。

令人感到遗憾的是,丹尼斯在2011年就去世了。而汤普逊也在2000年从贝尔实验室退休,不再从事相关工作。

Python 之父

最近几年,随着人工智能的飞速发展,Python击败C语言,位列排行榜第二,成为最受欢迎的程序设计语言之一。

Python语言的由来,源自计算机编程天才吉多•范罗苏姆(Guido van Rossum)在假期时观看的一部英国剧《Monty Python飞行马戏团》。范罗苏姆本意是想开发一种新的脚本解释程序,以作为ABC语言的一种继承。他认为ABC 语言非常优美和强大,是专门为非专业程序员设计的却并没有成功,究其原因,范罗苏姆觉得是其非开放性造成的,所以他决心在Python 中避免这一错误。同时,他还想实现在ABC 中闪现过但未曾实现的东西。于是,Python横空出世了。

Python语言自从20世纪90年代初诞生至今,被广泛应用于处理系统管理任务和Web编程,在2004年以后,python的使用率呈线性增长。范罗苏姆因为创始并发展了Python语言,并长期领导Python社区,在2018年被收录进计算机历史博物馆荣誉墙,被大家誉为“仁慈的独裁者(BDFL)”。

除了这一荣誉之外,2002年,在比利时布鲁塞尔举办的自由及开源软件开发者欧洲会议上,吉多•范罗苏姆获得了由自由软件基金会颁发的2001年自由软件进步奖。2006年,他被美国计算机协会(ACM)认定为著名工程师。

不久前,这位传奇人物在推特公布了自己从 Dropbox 公司离职的消息,正式宣布退休。

Java之父

毫无疑问,Java是世界上最成功最流行的编程语言之一,它的创始人不止一位,但是被公认为“Java之父”的只有一位——来自加拿大的软件专家詹姆斯•高斯林 (James Gosling)。

和这世界上许多计算机天才一样,詹姆斯在从小就显露出了他在编程方面的天赋及超强的动手能力。在他12岁的时候,詹姆斯已能设计电子游戏机,并且能够帮助附近的村民修理收割机。大学时期在天文系担任程式开发工读生,1977年获得了加拿大卡尔加里大学计算机科学学士学位。1983年获得美国卡内基梅隆大学计算机科学博士学位,

1990年,与Patrick Naughton和Mike Sheridan等人合作“绿色计划”,后来发展一套叫做“Oak”的计算机语言,也就是后来的Java。1994年底,詹姆斯在硅谷召开的“技术、教育和设计大会”上展示了Java程式。2000年,Java成为世界上最流行的电脑语言。

因为詹姆斯在编程领域做出的杰出贡献,他分别在2002年被经济学人杂志授予发明奖,在2007年被授予二级 加拿大勋章。曾经在甲骨文、谷歌就职过的詹姆斯目前在一家从事海洋机器人研究的创业公司Liquid Robotics担任首席软件架构师。他认为当前的工作系统还存在着各种各样的问题,并将致力解决。很显然,年过六旬的詹姆斯仍然保持着充沛的精力去迎接新的挑战。

Cobol之母

在男性数量占绝对优势的IT领域,不乏女性的身影,她们中的有些佼佼者甚至一度取得了辉煌卓绝的成就,令许多程序员望尘莫及。编译语言之母格雷丝•霍普(Grace Hopper)就是这样一位伟大的程序媛。

霍普在计算机方面的突出贡献体现在她设计完成了第一个编译程序,并发

现世界上第一个BUG。同时,作为Cobol语言的主要设计者,霍普被誉为“Cobol之母”。

霍波早年在自然科学,特别是数学和物理方面表现出超群的能力。1928年她获得美国优等生的荣誉。同年,取得数学物理学士学位,留校担任了教师,被聘为韦莎学院的副教授。1930年,霍普获得耶鲁大学数学硕士学位;1934年成为耶鲁大学历史上第一位女数学博士。

命运的转折点发生在第二次世界大战期间,30多岁的霍普进入海军学校学习,机缘巧合之下,成为了“世界上第一台大型数字计算机的第三名程序员”。在此期间及之后的岁月里,霍普先是研制出世界上第一个编译程序A-O,后又开发出Flow-Matic语言。1959年5月,在五角大楼的支持下,霍普率领团队成功地设计出第一个商用编程语言Cobol。这种语言最重要的特征是语法与英文非常接近,可以让不懂电脑的人也能看懂程序,编译器软件只需做少许修改就能运行在任何类型的电脑之上,一时间使用Cobol编写的软件数量遥遥领先其他语言。

遗憾的是,霍普早已于1992年1月1日与世长辞。我们再也无法目睹一代编程大师的风采,关于霍普在计算机方面所做出的丰功伟绩,我们只从她生前所获得的无数荣誉中去揣测一二。

在霍普的一生中,她一共获得了世界各地大学的40个荣誉学位,并获得了许多奖项和荣誉,包括:

1969年,数据处理管理协会颁发的“年度计算机科学年度风云人物”奖;1973年,第一个获得英国计算机协会杰出会士的美国人,也是全球获此殊荣的第一个女性;

1980年国际IEEE组织颁发的首届计算机先驱奖;

1991年第一个获得国家科技奖章的女性。

Ruby之父

Ruby之父松本行弘来自日本,是一众编程大牛之中鲜见的东方面孔。

1993,年仅28岁的松本行弘设计出Ruby语言。他的初衷是开发一种更人性化的编程语言,松本行弘认为以往人们在开发编程语言时过于看重"计算机",而忽视了"人"的作用,过分强调运行速度。松本行弘提倡的一种理念是机器只是工具而非人,真正的主人应该是"人"。

松本行弘提出语言不仅是表达思想的工具,也是人类进行思想的方法,使用的语言不同,人也会产生不同的思想模式,编程语言也会产生类似的作用。一个好的编程语言不但应该可以执行程序任务,也应该帮助程序员形成更好的编程逻辑。

松本行弘同时强调编程语言应该不单给程序员带来工资,也要给他们带来乐趣(小编想也许这就是为什么这么多的大好青年投身到编程行业中的重要原因吧)。

这两年 Ruby 不被看好,松本行弘常常被问到 Ruby 会不会“死”这类的问题。松本行弘的回答是“这说明 Ruby 已经趋于稳定。但我们会不断改进,Ruby3 的性能预计会提升3倍。”他表示希望自己可以继续快乐地为这门语言工作。

计算机及相关技术发展至今,第一代编程先驱们有的已经离开人世,有的年迈归隐,有的仍然深耕在技术领域,但有一点是共同的:他们对编程的发展所做出的杰出贡献将会被永久地载入史册。

作者简介:年素清,公众号码农故事汇(ID:sunianqingshi),一个会讲故事的程序员,讲述关于程序员与程序媛的悲喜人生。

(*本文为AI科技大本营转载文章,转载联系原作者


精彩推荐



2019 中国大数据技术大会(BDTC)再度来袭!豪华主席阵容及百位技术专家齐聚,15 场精选专题技术和行业论坛,超强干货+技术剖析+行业实践立体解读,深入解析热门技术在行业中的实践落地。6.6 折票限时特惠(立减1400元),学生票仅 599 元!

640?wx_fmt=png

推荐阅读

相关文章:

linux修正系统错误指令fsck和badblocks

fsck [-t文件系统][-ACay]装置名称-t 指定文件系统-A 扫描需要的装置-a 自动修复检查到有问题的扇区-y 与-a类似-C 在检查过程中,显示进度********************************************************** EXT2/EXT3额外选项功能:-f 强制检查-D 针对文件系…

Ubuntu定时任务crontab命令介绍

通过Linux上的crontab命令,我们可以在规定的间隔时间执行指定的系统指令或脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。 crontab默认在Ubuntu上是已经安装的,若未安装,则可执行以下命令进行安装: sudo …

swift 进入后台或者点击home键是程序进入后台后,持续定位

进入后台的方法 import UIKit UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate,CLLocationManagerDelegate { var locationManager : CLLocationManager? var window: UIWindow? var notificationDict NSDictionary() func applicationDidEnterBa…

求助:我有一辆机器人小车,怎么让它跑起来,还会避障、目标跟踪、路径规划?...

也许,你曾见过能灵活地绕开障碍物的它在桌子边缘“疯狂试探”的它它是谁?没错,它就是是英伟达推出的一款入门级人工智能小车——Jetbot ,估计对机器人,尤其是对车械感兴趣的朋友们一定对它不陌生。组装完成后能够通过摄…

Python-常用字符串转换实例

当字符串是:\u4e2d\u56fd >>>s[\u4e2d\u56fd,\u6e05\u534e\u5927\u5b66]>>>strs[0].decode(unicode_escape) #.encode("EUC_KR")>>>print str 中国 当字符串是: >>>print unichr(19996) 东 ord()支持unicode&…

什么是静态UItableView

iOS开发UI篇—简单介绍静态单元格的使用 iOS开发UI篇—简单介绍静态单元格的使用 一、实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变。 要完成上面的…

Python3中PyMongo使用举例

MongoDB是一个基于分布式文件存储的开源数据库,由C语言编写,与平台无关,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富,最像关…

PyTorch踩过的12坑 | CSDN博文精选

作者 | hyk_1996 来源 | CSDN博客1. nn.Module.cuda() 和 Tensor.cuda() 的作用效果差异无论是对于模型还是数据,cuda()函数都能实现从CPU到GPU的内存迁移,但是他们的作用效果有所不同。对于nn.Module:model model.cuda() model.cuda() 上面两句能够达到…

解决ubuntu14.04下Qt 5.3.1下的QtCreator fcitx,ibus不能输入中文

2019独角兽企业重金招聘Python工程师标准>>> ubuntu 14.04从Qt官网下载的最新版qt,安装过程很顺利,但却发现没办法输入中文(我用的是 fcitx), 即使下载了fcitx-frontend-qt5和fcitx-frontend-qt4也还是没用。 想必是qt版本的原因吧…

实战:基于技术分析的Python算法交易

译者 | Tianyu 出品 | AI科技大本营(ID:rgznai100)本文是用 Python 做交易策略回测系列文章的第四篇。上个部分介绍了以下几个方面内容:介绍了 zipline 回测框架,并展示了如何回测基本的策略导入自定义的数据并使用 zipline评估交…

深度学习中的Dropout简介及实现

在训练神经网络模型时候,如果模型相对复杂即参数较多而训练样本相对较少,这时候训练出的模型可能对训练集中的数据拟合的比较好,但在测试集上的表现较差,即出现了过拟合的情况。这种情况下可以使用Dropout来降低过拟合的可能性进而…

swift中字符串截取方法(substring)

下面介绍2种swift的字符串截取方法,实际上用到了substringFromIndex,substringToIndex,substringWithRange 1.将String转化为NSString再截取,代码如下: var s"1234567890"var ns1(s as NSString).substringFromIndex(5) var ns2(s as NSString).substrin…

设置IE兼容模式

文件兼容性用于定义让IE如何编译你的网页。此文件解释文件兼容性,如何指定你网站的文件兼容性模式以及如何判断一个网页该使用的文件模式。 前言 为了帮助确保你的网页在所有未来的IE版本都有一致的外观,IE8引入了文件兼容性。在IE6中引入一个增设的兼容…

程序员的自我修养--链接、装载与库笔记:静态链接

1. 空间与地址分配 对于链接器来说,整个链接过程中,它就是将几个输入目标文件加工后合并成一个输出文件。测试代码a.c和b.c内容如下: // a.c extern int shared;int main() {int a 100;swap(&a, &shared); } // b.c int shared 1;void swap(int* a, in…

开启JAVA自学新篇章

MyEclipse Enterprise Workbench简称MyEclipse,是一款专门用于开发Java, J2EE的 Eclipse 插件集合,该软件不仅功能丰富而且强大,包括了完备的编码、调试、测试和发布功能,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序…

12306系统的秒杀“艺术”:如何抗住100万人同时抢1万张票?

作者 | IT牧场 编辑 | 阿秃每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题——抢火车票。虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用 1230…

C#不错的扩展工具类

FSLibExtension.NET https://github.com/iccfish/FSLib.Extension WebEssentials2013 https://github.com/iccfish/WebEssentials2013

自己写的程序密码功能 ------数字功能

自己写的程序密码功能 ------数字功能 class LockedViewController: UIViewController { var dataBase:FMDatabase? var i 0 var passwordStr : String? var tempStr : String "" var numStr : String "" //初始输入密码 var reNumStr : String &…

程序员的自我修养--链接、装载与库笔记:Windows PE/COFF

1. Windows的二进制文件格式PE/COFF 在32位Windows平台下,微软引入了一种叫PE(Portable Executable)的可执行格式。作为Win32平台的标准可执行文件格式,PE有着跟ELF一样良好的平台扩展性和灵活性。PE文件格式事实上与ELF同根同源,它们都是由…

神州数码与神州控股、神州信息共同主办首届技术年会,透露出什么信号?

11 月 8 日,神州控股、神州数码集团、神州信息共同主办“数字中国 2019 技术年会”,聚焦云计算、大数据、人工智能、区块链、5G 等前沿技术创新与应用实践,众多领域的技术专家展开了深度交流,共同探讨数字时代的技术创新与协同发展…

osi七层协议和tcp/ip四层协议

(大部分内容为转载)OSI(Open System Interconnection)是一个开放性的通行系统互连参考模型,他是一个定义的非常好的协议规范,共包含七层协议。OSI七层协议是由ISO (International Standards Organization)在…

Swift中页面跳转与传值:

1.简单方式 首先,Swift的跳转可分为利用xib文件跳转与storyboard跳转两种方法,我这里选择使用storyboard的界面跳转方法。 1、通过在storyboard中拉button控件建立segue跳转。 2、通过presentViewController方法进行界面跳转。 这里需要注意presentV…

知乎热议!学完Python之后,我的编程能力竟然退化了!

在知乎上有一个特别火的问题:如何学Python?你会看到很多高赞回答是:我一天就学完了。在大家群嘲的背后,我们来分析一下,为什么在已经学过的人眼里,Python这么容易学,甚至简单到被某些人鄙视呢&a…

libjpeg-turbo介绍及测试代码

很多年之前在https://blog.csdn.net/fengbingchun/article/details/10171583 中简单介绍过libjpeg-turbo的安装,因为libjpeg-turbo一直在维护更新,较之前有了些变化,这里再次整理下,并增加更多的测试代码。 libjpeg-turbo的主页为…

高级特性-多线程,GUI

2019独角兽企业重金招聘Python工程师标准>>> 创建线程两种方式第一种,导入improt thread 模块,thread.start_new_thread(功能函数名称,(参数1,参数2...)) 后面参数为功能函数的参数第二个方式类似于java,导…

Hulu视频如何提升推荐多样性?

作者 | 余沾 整理 | 深度传送门(ID: deep_deliver)导读:本文主要介绍Hulu在NIPS 2018上发表的《Fast Greedy MAP Inference for Determinantal Point Process to Improve Recommendation Diversity》中,提出的DPP算法解决视频推荐…

UITextField长度限制的写法

1.遵循代理 UITextFieldDelegate 2.点击响应方法 userNameText.addTarget(self, action: "tappedOne:", forControlEvents: UIControlEvents.EditingChanged) 3.方法的实现 func tappedOne(textField: UITextField) { textField.text textField.text?.uppercaseS…

通过Python在Windows或Linux上快速搭建HTTP服务器

在Windows 7/10或Ubuntu上可以通过python2.x或python3.x来快速搭建一个简单的HTTP服务器。 如果python为2.x,则可执行:$ python -m SimpleHTTPServer 或 $ python2 -m SimpleHTTPServer 如果python为3.x,则可执行:$ python -m h…

NAND FLASH

NAND Flash 以Micron公司的MT29F2G08为例介绍NAND Flash原理和使用。 1. 概述 MT29F2G08使用一个高度复用的8-bit总线(I/O[7:0])来数据传输、地址、指令。5个命令脚(CLE、ALE、CE#、WE#)实现NAND命令总线接口规程。3个…

swift 中跳转web view的两种方法

首先 遵循代理 引入头文件 #import <WebKit/WebKit.h> 第一种情况 直接跳转 了解不含特殊字符的 import UIKit class NewsViewController: UIViewController,WKNavigationDelegate,UIScrollViewDelegate { var webView : WKWebView WKWebView() override func viewW…