B语言的发明者 Ken Thomson & C语言的发明者Dennis Ritchie

C语言的发明者Ken Thomson因为没有参加C语言考试,在Google没有提交代码的权力。

哀悼结束,生活还要继续。

说段趣闻吧。大家都知道,C语言和Unix的发明者、图灵奖得主、最具传奇性的程序员Ken Thompson加盟Google之后,与一帮高手一起捣鼓出了又一惊天之作:并发时代的系统编程语言Go。Go一经面世就闯入了编程语言排行榜前20,创造了奇迹。

可是,Gawker网站今天爆料,他在Google居然没有提交代码的权力!原因呢,只不过是按公司规定,所有程序员必须通过编程语言考试,而他还没有参加过这种考试,至少在《Coders at Works》一书写作前:

Peter Seibel: 我知道Google有一个规定,每个新员工都要在接受编程语言测试之后,才允许提交代码。那就是说你也得考(你自己发明的)C罗?

Thompson: 是啊,我还没考呢。

Seibel: 你还没考? 难道你还不能提交代码吗?

Thompson: 是啊,我不能提交代码,不行……我只是还没有去考试,还没觉得有必要去考。

看来Google真是一家唯算法唯规则的公司。三年前,Google曾被曝光用算法和机器人程序来给申请者提交的简历打分。此外还有很多招聘和面试程序中的古怪事情不断见诸报端。

无独有偶,昨天成为CSDN头条的文章“从盖茨到扎克伯格:极客的力量”中,也爆出开发Mac操作系统核心程序员之一Hertzfeld现在在Google也不快乐:

使赫兹菲尔德发生变化的不只是时间,还有他的工作环境。谷歌将工程师看作最重要的资产,认为员工必须喜欢自己从事的工作,同时支持开源软件。但赫兹菲尔德承认,谷歌是一家大公司,在产品设计方面有严格的标准和程序,因此减少了他工作中的乐趣。他说:“我与工作的关系是艺术家与他的作品的关系,但在谷歌,我无法从自己的工作中获得快乐。”

尽管个人的控制力降低了,但赫兹菲尔德拥有了产生更大影响的可能性。有时,谷歌的几行代码可能会影响成千上万的人,这为他的工作带来了一种激情。他说:“这里的一切都是主流的。谷歌、iPhone,这些比上世纪60年代甲壳虫乐队更能影响文化,它们甚至会影响整个人类。”

对了,《Coders at Work》一书是对15位顶级程序员(包括图灵奖得主高德纳、Erlang和JavaScript 之父、Norvig、Guy Steele等等大师)的访谈集,在同类书中是最有趣、最有料而且最精彩的一本。中文版还在翻译中,将由人民邮电出版社图灵公司出版。微软研究院的邹欣做了不错的读书笔记1234,大家可以去先睹为快。搞技术的,了解高手的思想有时候至关重要。



【人物小传】

Ken Thompson 计算机科学先驱,最具传奇性的程序员。C语言前身B语言和Go语言、Unix和Plan 9操作系统、UTF-8和正则表达式的发明者。1983年图灵奖得主,美国科学院和工程院院士。1943年2月4日生于新奥尔良。加州大学伯克利分校电子工程与计算机硕士。1966年加入贝尔实验室,2000年退休。

据文献记载,1969年,他在Multics操作系统项目失败后的无聊时间里,为了在一台PDP-7计算机上玩自己编写的“太空旅行”游戏,而用汇编开发了Unix的最早部分(文件系统)。是的,伟大的操作系统是玩出来的。

他还开发过一个名为Belle的象棋程序,打遍天下无敌手。

Andy Hertzfeld Apple的第一个软件魔术师,也是Mac操作系统的主要开发者之一。他还是著名苹果公司轶事网站Folklore.org的创始人,这个网站后来编成了《苹果往事》(电子工业出版社博文公司出版)一书。

原文:https://www.csdn.net/article/1970-01-01/276155

时间: 2024-08-29 10:20:50

B语言的发明者 Ken Thomson & C语言的发明者Dennis Ritchie的相关文章

《自学C语言》第一章:C语言简介

这一章主要介绍什么是C语言,以及它的产生.发展历史.如其中所说的计算机术语有不懂的请百度,例如什么是强类型,什么是高级语言. 1.C语言是什么? 答:C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言.它是一种强类型的高级语言,几乎能做任何你想要做的事情. 既然它是强类型的语言,那肯定还有弱类型的语言咯?当然,强类型的语言还有很多,如C.C++.Fortran.Java:弱类型的语言

C语言教程:第二讲-C语言的发展历史

上一讲:计算机语言概述 1967年,英国剑桥大学的Martin Richards对CPL(Combined Programming Language)语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言. 1970年,美国贝尔实验室的Ken Thompson以BCPL语言为基础,设计出了一种新的语言,这种新的语言以“BCPL”的第一个字母命名,叫作“B语言”.Ken Thompson还用B语言编写了世界上第一个UNIX操作系统. 197

【Go语言】【14】GO语言的接口类型

1.什么是接口? 在面向对象的语言中,接口是用来限制实现类行为的.怎么理解这句话呢? 定义一个Person接口,我只会站在我的角度上考虑问题,比如Person(人),自然想到会吃饭.睡觉等: interface Person { // 人会吃饭 void eat(); // 人会睡觉 void sleep(); } 我是站在接口角度上考虑接口如何定义,此时不会过多考虑实现类的行为. 这很正常,因为我不能确定谁会使用我的接口,有一天SuperMan说:"我要用你定义的接口",那Super

除了C语言,C++······竟然还有Z语言?

只能说自己见识短,头一次听说Z语言.先普及一下吧: Z语言是由牛津大学程序设计研究小组开发的一种形式语言,它是一种以一阶谓词演算为主要理论基础的规约语言,是一种功能性语言.Z语言是将事物的状态和行为用数学符号形式化表达的语言,为编写计算机程序和验证计算机程序的正确性提供依据,是软件工程中编码之前的规格说明语言. 形式化描述语言Z指的是著名数学家Zermelo,它是目前使用最广泛的一种形式化描述语言,在软件产业的一些大型项目中已经获得成功的应用,Z以带等词的一阶谓词逻辑ZF(Zermelo-Fra

《Go语言入门》第一个Go语言Web程序——简单的Web服务器

概述 上一篇讲了 <Go语言入门>第一个Go语言程序--HelloWorld,接下来讲一下Go语言Web开发入门必修课:第一个Go语言Web程序--简单的Web服务器. 与其它Web后端语言不同,Go语言需要自己编写Web服务器. 有关本地环境的搭建与基础学习,请参考: <Go语言入门>如何在Windows下安装Go语言编程环境 Go语言Web应用:IBM的云平台Bluemix使用初体验--创建Go语言 Web 应用程序,添加并使用语言翻译服务 Web服务器代码 Google在ht

Objective-C语言介绍 、 Objc与C语言 、 面向对象编程 、 类和对象 、 属性和方法 、 属性和实例变量

Objective-C语言介绍 . Objc与C语言 . 面向对象编程 . 类和对象 . 属性和方法 . 属性和实例变量 1 第一个OC控制台程序 1.1 问题 Xcode是苹果公司向开发人员提供的集成开发环境(非开源),用于开发Mac OS X,iOS的应用程序.其运行于苹果公司的Mac操作系统下. 本案例要求使用集成开发工具Xcode编写OC的HelloWorld程序,在Xcode的控制台中, 1.2 方案 首先,启动集成开发工具Xcode. 然后,创建OC语言的工程. 最后,运行所创建的工

【Go语言】【12】GO语言的结构体

当我第一次接触到C语言时,就对结构体投入了极大的兴趣,认为这个东西以后大有作为,后来接触Java.C++,面向对象编程中的对象进入我的视线,经过了这么多年的磨练,回过头来再看结构体依旧是那么亲切:同时从另一个角度上看结构体与面向对象中的成员对象是多么的相像 :) 一.结构体元素 结构体由关键字.结构体类型名称和具体成员构成,如下: 二.结构体初步认识 下面通过对比数组(复合类型)来了解一下结构体: 1.从存储类型来看 数组只能存储相同的类型: s := []string{"a", &q

C语言学习-01第一个C语言程序

一 C语言的历史 C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言. 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台. 二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为A

动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言

关于如题这几个概念,大部分人应该比较熟悉,但是我昏了好久,所以写下来加深印象. 1. 动态语言 又叫动态编程语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化.比如众所周知的ECMAScript(JavaScript)便是一个动态语言.除此之外如Ruby.Python等也都属于动态语言,而C.C++等语言则不属于动态语言. 而其实我们平时说的"动态语言"应该指的是"动态类型语言".至少我之前一直是这么认为的. 2. 动态类