C语言:一款因为玩游戏而诞生的“神作”

1969年,阿波罗11号载人飞船登月成功,这项人类历史上的壮举影响了众多美国青年的人生轨迹,这其中就包括了日后被尊称为“UNIX之父”的肯尼迪·汤普森(Ken Thompson)。

此时的肯尼迪·汤普森虽然只有26岁,但已经是被誉为“美国科技梦工厂”贝尔实验室的骨干研究员之一。褪去这层身份,肯尼迪·汤普森在内心深处还是个爱玩的年轻人。他觉得登月这件事实在是太酷了,于是便设计了一个名为“Space Travel(太空降落)”的游戏。玩家可以遨游在浩瀚的星系中,还能降落在各个卫星和行星的表面。

C语言:一款因为玩游戏而诞生的“神作”

肯尼迪很想让他的游戏走进大众,但在那个年代,计算机非常珍贵,是大型机构才能购置的稀缺设备,用来玩游戏实在太过奢侈,想要玩一次游戏需要支付75美元的入场费,这笔高昂的费用让不少玩家望而却步;另外,游戏在大型机的运行效果并不好,显示效果差强人意。这让身为游戏制作人的肯尼迪很是苦恼,于是他找到了好朋友兼同事的丹尼斯·里奇(Dennis M. Ritchie),里奇对肯尼迪想法很感兴趣,二人一拍即合,开始寻找“能够免费玩游戏的机器”。

玩游戏玩出了个图灵奖

然而开发工作要比肯尼迪和里奇想象中复杂得多,因为上世纪七十年代的计算机的主要工作是数据的运算和处理,能够支持图像演算的设备少之又少。肯尼迪和里奇在电脑市场苦寻许久,终于发现了一款运算能力强悍,且价格实惠的迷你机——PDP-7。两人又动手为PDP-7写了一个系统,其名为“UNIX”。时至今日,UNIX依旧是全世界最为安全稳定的操作系统,几乎每个国家都将UNIX用在军队,政府,金融等重要机构的核心业务上,同时,UNIX还是IOS系统的前身,在安卓的底层也有它的影子。


C语言:一款因为玩游戏而诞生的“神作”

设备有了,操作系统也初步完成,剩下的就是编写程序了。UNIX最初使用的是汇编语言——这种语言更接近于机器而非用户,但可读性很差,这就把很多UNIX加Space Trval的爱好者拦在了门外。考虑到玩家们迫切的需求,肯尼迪和里奇再次联手:肯尼迪对UNIX加以润色,里奇则开发新语言,两人一同设计编译器。1972年,一个全新的高级语言面世——C语言。

C语言:一款因为玩游戏而诞生的“神作”

C语言的对于计算机的意义是开天辟地的,它既具有高级语言的优点,又具有汇编语言的特征,简洁的语法结构和快速高效的运行效率是当时任何语言都无法相媲美的。很快,C语言和UNIX被应用在各类大中小计算机上,同时成为了所有计算机从业人员必须掌握的行业准则。

在技术层面,用C编写的程序可读性强,编译效率高。更重要的是,C语言能够直接访问物理地址,进行bit运算,也就是俗称的“操作硬件”。迄今为止,除了C语言以外,没有任何主流高级语言能够做到的事情。所以C语言从诞生那一刻起,就是为了面向底层而存在的:系统内核,驱动程序,编译器和解释器,服务器—客户端……都是用C语言编写的。


很难想象,肯尼迪和里奇的初衷,就是为了能畅快的玩游戏。

鉴于UNIX和C语言的巨大成功,1983年,ken和dmr共同获得了计算机界的最高奖——图灵奖项。但更令人惊讶的是,二人放弃了C语言和UNIX的专利。要知道在那个还没有微软什么事的年代,不论是C语言还是UNIX,只要其中一项便可以让他们成为全球最富有的一批人。但两人从未考虑过去申请专利和知识产权。更难能可贵的是,肯尼迪和里奇将C语言和UNIX的一切毫无保留的公布于众,这其中包含了最为珍贵的源代码。

C语言:一款因为玩游戏而诞生的“神作”

即使光环加身,掌声喝彩不断,肯尼迪和里奇依旧是曾经的少年,分享便是他们最大的快乐。

二人的慷慨是极具价值的,很多机构和个人都具有了自如地为UNIX和C添加代码、做各种贡献的条件,为C语言和UNIX在接下来的几十年中源源不断的注入新鲜力量。肯尼迪·汤普森和丹尼斯·里奇的名字被永远刻在人类文明史册,大家都尊称他们为“ken”和“dmr”(行业规矩,必须小写)。

另外,肯尼迪和里奇还是世界顶尖黑客,是全世界黑客圈奉为神明般的存在。时至今日,没有任何一个黑客敢以“ken”和“dmr”的代号自居。

互联网精神,C语言的传奇永不落幕!

在2019年“最受欢迎的编程语言”排行榜中,C语言高居第二。人们对此并不感到意外——毕竟C语言这十多年就没有跌出过前三甲。

C语言:一款因为玩游戏而诞生的“神作”

其实很多人不清楚的是:状元郎java和探花python,其实都是在吸收了C的设计思想,基于C的理念上设计出来的。和国内“java热”,“python热”的情况截然相反,类似于美国这样的信息强国,对于C语言的人才需求要大得多。可以这么说:最顶级的工程师用C语言开发出Java、Python等语言,供给其他的程序员使用。

除却语言的优势,我相信C语言能连年荣获佳绩的原因,更多的在于它背后所包含的互联网精神开放、平等、协作、快速、分享。从C语言中能感受到ken和dmr对于技术的无私,能看到各个地区的组织和个人对于新事物的探索和认知,这是一种无关于地域的精神领域的交流。正是因为这种精神的存在,人类才得以在科学技术层面不断取得成就。

在这样的态度下,C语言的传奇,还将继续下去。



分享到:


相關文章: