现在的位置: 主页 > 商讯 > 文章正文

是计算机科学的杰作

作者:陕西芙爱尔婚庆礼仪服务有限公司 来源:www.fair521.com 未知发布时间:2018-10-15 13:49:16
没有C语言之父,就没有乔布斯 C语言之父 C语言 如何学好C语言

如果没有丹尼斯·里奇(Dennis Ritchie),就不会有我们现在所熟知的现代计算。他是 C 语言之父和 UNIX 操作系统的联合发明人。四年前我们失去了两位对业界有巨大影响的人。不可否认,乔布斯带给我们世上从未见过的创新和标志性的产品,还有一大批对他顶礼膜拜的狂热消费者和终端用户。诸如此类的事情可能再也看不到了。

(伯乐在线编注:其实原作者还漏了一位,2011年10月24日 Lisp 之父约翰·麦卡锡离世。)

尽管我对乔布斯和他的公司有看法是有据可查的,当他去世时,我和很多业界的人一样表达了我的敬意和对他的影响力的认可。

但是苹果和乔布斯以及很多其他公司所创造的“神奇的”产品,和所有现在我们了解和写在现代计算里的东西,都要归功于丹尼斯·里奇,他于 2011 年 10 月 12 号离开人世,享年 70 岁。

丹尼斯·里奇何许人也?

没的年轻人可能都要摇头。丹尼斯·里奇是谁?

丹尼斯·里奇不像某位来自硅谷,精致的和少年得志的亿万富翁,穿着简约黑色的高领毛衣在站满粉丝的屋子里,演示新酷产品和恶意攻击对手。

不,丹尼斯·里奇是一位胡子有些凌乱的计算机科学家,他穿着羊毛衫坐在一间凌乱的办公室里。

和乔布斯在大学辍学不同,他毕业于哈佛大学,有物理学和应用数学的博士学位。他工作于新泽西的 AT&T 贝尔实验室,而不是闪闪发光的硅谷。

是的,就是 “What exit?” 的新泽西。(编注:“What exit?”是新泽西当地俚语,Garden State Parkway 是一条南北走向的高速公路,它穿过整个新泽西州,所以是一个很有用的地标。新泽西当地人问地方都问从这条高速的哪个出口出来就可以到达。)

鉴于乔布斯古怪的个性又极富创造力,人们经常把他和爱迪生作比较。我不赞同这种比较,因为实际上我们错把乔布斯当做一个真正的技术专家和发明东西的人。

有一件重要的事情我们必须要意识到:尽管乔布斯有他擅长的事情,而且他为技术和计算机业界做出很大的贡献,但事实上他并不是一个技术专家。

他对于时尚和工业设计的确很有感觉,他理解用户想要什么,他还是一个营销大师和推销员。所有这些让他成为业界的巨人。

但是说到发明家?不,他不是。

但是丹尼斯·里奇发明了和共同发明了两个关键的软件技术,它们是构成每一款计算机软件产品的DNA,现在我们直接或间接都在使用这些软件产品。这听起来让人难以置信,但它确实是真的。

首先,让我们从《 C 程序设计语言》开始

C 语言是里奇在 1969-1973 开发的,它被认为是第一个真正意义上可移植的现代编程语言。自它诞生差不多 45 年以来,它已经被移植到几乎每一个出现过的系统架构和操作系统上。

因为它是一种命令的、编译的和程序化的编程语言,它允许语法变量作用域和递归,允许内存的底层访问,还有复杂的 I/O 和字符串操作功能,这种语言变得相当通用。

里奇和布莱恩·克尼汉(Brian Kernighan)对它进行了一定程度的优化,最终于 1989 年被美国国家标准协会的 X3J11 委员会进一步细化为 ANSI C 程序设计语言。

1978年,克尼汉和里奇合著出版了《C 程序设计语言》这本书。该书被很多人简称为 “K&R C” ,是计算机科学的杰作,它也是解释现代程序设计概念的一个关键参考,甚至到今天,它还是计算机科学课程里学习程序设计的经典教材。

直到今天, ANSI C 作为一种编程语言还被大量地使用,后来它还发展出很多的姊妹语言,这些语言又都有很多的追随者。

最 流行的 C++ 是由本贾尼·斯特劳斯特卢普(Bjarne Stroustrup) 于 1985 年发明,它增加了面向对象编程和类的支持,用在各式各样的操作系统上,包括像 Linux 和 Mac 这样的 UNIX 衍生品上,它作为微软 Windows 软件开发的主要编程语言长达20多年。

Objective-C,是 由达石软件(Stepstone,Lumesse(路敏思)的前身)的布莱德·考克斯(Brad Cox) 和 Todd Love 在八十年代发明的,增加了 Smalltalk 消息传递功能,进一步拓展了这种语言面向对象和代码重用的特性。

Objective-C 很大程度上被认为是一个鲜为人知的 C 语言衍生品,直到它在八十年代末和九十年代初被广泛用于 NeXT 计算机系统公司的 NeXTStep 和 OpenStep 操作系统上,NeXT 是乔布斯在 1985 被赶出苹果公司后所创办的。

“下一个”发生了什么就是一段计算机领域的传奇。NeXT 于 1996 年被苹果公司收购,乔布斯在 1997 年重新回归苹果并出任公司的CEO。

2001 年苹果发布了 Mac OS X,其中大量使用了 Objective-C ,以及 NeXTStep 和 OpenStep 所引入的面向对象技术。

当 C++ 也被大量应用在 Mac 上,Objective-C 被用来在 XCode IDE 下编写本地面向对象的 “Cocoa” API ,这些 API 是 iOS 上手势识别和动画功能的核心,这些功能为 iPhone 和 iPad 增光不少。

Objective-C 还提供了 Foundation Kit 和 Application Kit,用于构建本地的 OS X 和 iOS 应用程序。

微软也有自己的 C 语言衍生品—— C# (读作 “C Sharp”),于 2001 年发明并作为 .NET 框架的编程基础。

C# 还是编写基于 Windows 运行时(WinRT)的现代应用程序的基础,WinRT 在 Windows 10上发展成统一的Windows 平台(UWP, Universal Windows Platform)。作为开发 Mono(一个.NET 框架的可移植版本)的编程环境,它也被用在 Linux 和其他 Unix 衍生系统上。

但是 C 语言的影响并不仅局限在它的衍生品上。Java 这样一个重要的企业级编程语言,在很大程度上也是基于 C 语言语法(本身也演变为 Dalvik 和 Android 运行时,它们是 Android 最基本的编程环境)。

其它语言例如 Ruby、Perl 和 PHP 等,它们是构成动态现代网络的基础,也都使用了丹尼斯·里奇发明的 C 语言语法。

所以说如果没有丹尼斯·里奇的工作,我们根本就不可能有现代的软件。

除了 C 语言,他还有 Unix

只谈 C 语言对于现代计算的重要性和它对于每个人的影响,我其实就可以结束这篇文章。但这个人的工作生涯我才讲了一半而已。

里奇还是 UNIX 操作系统的共同发明人。当然 UNIX 的原型是用汇编语言编写,到七十年代早期就完全用 C 重写了。

早在1969年,在一台 DEC PDP-7 上引导了第一个版本的“Unics”,从那开始 UNIX 已经演变出很多类似的操作系统,并运行在各种各样的系统架构上。

每一个主要的计算机供应商都曾经实现过自己的 UNIX。甚至连微软也曾经拥有一个叫做 XENIX 的产品,后来卖给了SCO(已经不存在了)。

你可点击和放大看这张图,可更好地理解这个“家族”。

UNIX 本质上有三个主要分支:

推荐阅读/观看:武汉网站设计公司 https://www.666rj.com


上一篇:独家-酷骑单车创始人否认解散团队:要被收购做人员优 下一篇:最后一页