版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机人物传记(一)美媒披露世界最早一批女性电脑高手往事她们60年前开始玩电脑,曾为世界上第一台计算机编程序,也是世界上第一批“黑客”,曾为世界第一台电子计算机ENIAC编写过程序。
据美国媒体5日报道,在电脑时代,许多老年人不甘落后,然而鲜为人知的是,在美国仍然生活着几名80多岁的“奶奶级”电脑高手:她们曾在二战中帮助军方精确地计算出炮弹发射轨迹,曾为世界上第一台电子计算机编写程序,还是世界上第一批“黑客”.半个多世纪来,人们对这批“奶奶级”电脑高手毫无所知,直到日前,她们的故事才首次浮出水面,并正在被拍成一部名叫《隐形电脑:ENIAC程序师的故事》的纪录片.
纪录片制片人(左)和4名“奶奶级”电脑高手在一起,她们分别是贝蒂(左二)、马琳(左三)、凯瑟琳(右一),前排坐着的贝蒂·辛德·霍伯顿目前也已去世.
孙子炫耀牵出传奇故事
现年83岁的美国新泽西州老太太贝蒂·巴蒂克是5个孙子的祖母,喜欢上网打桥牌.然而鲜为人知的是,她其实是世界上最早的一批女性电脑高手,她曾为世界上第一台计算机编过程序.
对于这一点,即使十分熟悉贝蒂的朋友也不知道.不过,贝蒂的孙子亚历克斯却早就知道奶奶的秘密.一天,他在学校里向老师炫耀说,自己的奶奶是世界上最早的计算机先驱和电脑高手.当时,老师以为小孩子是在吹牛,还狠狠批评了他一顿.为了还儿子一个诚实的名声,亚历克斯的父母亲自到学校向那名教师解释了一切.
帮助军方计算弹道轨迹
贝蒂的传奇故事随即引起了历史学家的关注.
据悉,贝蒂和计算机打上交道可以说是阴差阳错.1945年,当时20岁的贝蒂还是美国密苏里州西北教师学院一名数学专业的女大学生.随着二战接近尾声,美国陆军由于缺少男数学家计算弹道发射轨迹,开始在宾夕法尼亚州大学发起了一项绝密的“阿伯丁试验场”行动,招募女性成为计算弹道轨迹的“人体计算机”.
贝蒂成功地被美国陆军录用,成了一名“军中数学家”,帮助陆军精确地计算各种武器的弹道轨线.与贝蒂一同被招募的还有另外5名女学生.
为首台计算机编写程序
二战结束后,贝蒂继续为军方从事计算机研究工作.1946年,她和另外5名女伙伴开始为世界上第一台电子计算机ENIAC编写程序.1949年,她又帮助美国诺斯罗普航空公司为世界上第一台商用计算机UNIVACI设计逻辑程序,这台计算机在1951年首次被美国人口普查署投入了使用.
据悉,为世界上第一台计算机ENIAC编写程序堪称是一项考验身体毅力、创造力和耐力的严峻工作,因为这台机器在当时来说实在太复杂了,它占地170平方米,重达30吨,包含了大约18000个电子管、70000个电阻器和至少3000多个开关.1946年2月,美国陆军军械部和宾夕法尼亚大学莫尔学院联合向世界宣布ENIAC的诞生,从此揭开了现代电子计算机发展和应用的序幕.
世界上第一批“黑客”
据悉,贝蒂甚至还是世界上最早的女“电脑黑客”,因为在早期的计算机程序研究中,她和其他5名女同事还曾合法地“黑”过世界上首批计算机中的一台,并将它转变成了一台程序储存器,从而帮助计算机真正地迈入了数字化时代.
贝蒂婚后生有3名儿女,为了照顾3个孩子,几年后她被迫离开了计算机研究行业.
被美国计算机史遗忘
据悉,在6名最早的女性电脑高手中,目前只有3人还活在世上,都已是80多岁高龄.
几十年来,贝蒂和她的5名女同事一直被美国计算机史所忽略和遗忘.在ENIAC计算机发明40周年庆祝典礼中,这些最早的先行者甚至没有获得邀请,唯一一名被邀请的女性还是作为另一名计算机专家的配偶出现的.
最近,贝蒂的故事正被拍成一部纪录片.据纪录片制片人、计算机历史学家凯西·克莱曼说:“这部纪录片不仅仅是讲述她们的传奇故事,而且对美国目前的计算机业具有重要意义,因为如今的美国计算机界仍是男性主宰的世界.而这几位'奶奶级'电脑高手的事迹证明,女性在计算机研究上的能力丝毫不亚于男性.”丹尼斯·利奇·传奇的缔造者——C语言之父访谈DennisMRitchie(丹尼斯·里奇),C语言之父,UNIX之父。C语言是使用最广泛的语言之一,可以说,C语言的诞生是现代程序语言革命的起点,是程序设计语言发展史中的一个里程碑。自C语言出现后,以C语言为根基的C++、Java和C#等面向对象语言相继诞生,并在各自领域大获成功。但今天C语言依旧在系统编程、嵌入式编程等领域占据着统治地位。C语言,这种最有效、最通用的编程语言,就是他开发的,而这还是他在做另一个项目时的副产品。DennisRitchie还和KenThompson一起开发了Unix操作系统,因此,他还是名副其实的UNIX之父。现年64岁的40年如一日在贝尔实验室/朗讯科技公司(原AT&T实验室)工作,现在是计算科学研究中心系统软件研究部主任。从二十世纪七十年代起,他的工作得到了很多计算机组织的公认和表彰,如:美国计算机协会(ACM)授予的系统及语言杰出论文奖(1974);电气和电子工程师协会(IEEE)的EmmanuelPiore奖(1982);贝尔实验室特别人员奖(1983);美国计算机协会(ACM)的图灵奖(1983);NEC公司的C&C基金奖(1989);电气和电子工程师协会(IEEE)的优秀奖章(HammingMedal)(1990)等等。目前,DennisM.Ritchie正担任贝尔实验室/朗讯科技公司(原AT&T实验室)下属的计算科学研究中心系统软件研究部的主任一职。该中心位于美国新泽西州的MurrayHill。1978年BrianW.Kernighian和DennisM.Ritchie出版了名著《C程序设计语言(TheCProgrammingLanguage)》,现在此书已翻译成多种语言,成为C语言方面最权威的教材之一。大师的修炼之道在Ritchie的成长历程中,有两个人对他的影响最大,一个是他父亲,而另一个是他的挚友,同为UNIX发明人的KenThompson。尤其是后者,我们可以从后面他对此问题的回答中得到印证。有人问过Dennis,他的偶像是谁,不论在计算机领域还是其他领域?他说:我不是在英雄熏陶下成长起来的。很显然,对我职业生涯影响最大的人物是KenThompson。UNIX大部分是他的工作,同样也是C语言的前辈,同样Plan9系统的大部分工作也是他做的。并且在这其间Ken做了第一个计算机象棋大师。Ritchie生于1941年9月9日的纽约Bronxville,获得学士学位并且获得哈佛大学更高的学位,在那里以肄业生资格学习物理,以研究生资格学习应用数学。也正是在这时候,一个偶然的机会改变了他一生的选择。Ritchie这样描述他的转变,当他听取一些非课程类的计算机讲座后(大约1960年),开始对计算机着迷,并选择了一学期正规(介绍性的)课程。第一部分是模拟计算机,后面是关于打孔卡片设备的,然后是关于真正的数字式计算机的,并为UnivacI号机准备了一个程序。当时他是一个主修物理学的学生,但是更加着迷于计算机处理的理论和实际问题。因此,他的毕业论文大部分是理论方面的(递归函数的层次),但是也开始投入更大精力到实践方面。作为助教为同一个介绍性课程的后续版本工作了三年——不过那时计算机已经成了IBM7049。1968年获得数学博士,而论文正是上面的《递归函数的的层次》。1967年加入贝尔实验室,他的父亲AlistairE.Ritchie在那里有长时间的工作经历,他的父亲对晶体管电路类的东西很有研究,正是由于父亲的影响,也使得他走上了科学研究之路。不久后,加入了Multics项目,那时由贝尔实验室、麻省理工学院和通用电器三家的合作项目。Ritchie负责多道处理机的BCPL语言和GE650的编译器,它们都是属于GECOS系统的。同样的,他也写了ALTRAN语言的代数编译器,那是用于符号计算机的一种语言和系统。图:Dennis在办公室里后来,Ritchie先生协助KenThompson做UNIX操作系统。在UNIX系统基本就绪并且在教育、政府和商业中得到一定程度的应用时,SteveJohnson和他(在Ken帮助下)开始将这个操作系统移植到Interdata8/32上,通过这种方式证明其轻便性,基于UNIX快速的传播:贝尔实验室的第7版已经成为商业化UNIX的第五版和BSDUNIX的基础。在UNIX发展之前,他向Thompson的B语言中加入数据类型和新的句法,就这样产生了一种新语言——C,这也是他说Thompson是C语言的前辈的原因。C是便携式UNIX的基础,并且它也在其它领域得到了广泛应用;计算机各方面的应用程序和系统发展,从手持设备到巨型机,都有对它的应用。有美国标准和国际标准的C语言,并且它是后来Stroustrup写的C++语言的基础。他从来没有间断过在计算机及其操作系统方面的工作。也因此,他所领导的研究小组开发出了Plan9和Inferno。Ritchie的业余生活也非常精彩,工作之余,他喜欢干什么呢?他这样描述自己的生活,干好多纠缠不清的事,大部分是和计算机相关的。另一方面,也读读书看看报。另一项爱好是旅行,他到过很多地方,特别喜欢旅行,但每次时间都不是很长。他是一个恋家的人,因而有时旅行不久后感到相当疲乏,但喜欢回想旅行经历,这时就很希望能挤出时间在一个具有异国情调的地方待得时间长一点。曾有人问过下面的问题,对于一个人是如何涉足软件工业领域的,不同人有不同的回答。是什么使Ritchie选择了她,又是什么使得他在此领域如此潇洒呢?他的回答很简洁:兴趣和好奇心!他说:我开始对于物理学比较感兴趣,现在仍然是一个业余爱好者,试图跟上物理学的一些新东西。早先上大学时包括读研究生,我在计算机理论方面花了不少时间(如图灵机、复杂性理论)。这其间,我对真实的电脑也非常着迷,着迷于所编即所见的经历:当你编出一个程序,便能立即看到你的思想的实现!所有的事情以一种非常有趣的方式联系在了一起,也正是这一类的东西促使我进入这一领域。但不知什么原因,我没有想过我正在这一领域做什么,即使时光倒流到1968年,我想也是如此。DMR先生对问题的描述非常简洁。问:您的生活是怎样和计算机联系在一起的?DMR:在大学的时候我开始对它感兴趣(大约1960-61年),我参加了一个非学术性的讲座,关于大学里的UnivacI(通用自动计算机I号),然后就选修了一些课程。问:您觉得怎样才是学编程的好方法?学习语言时一种好的工具是不是必需的?DMR:我想你最有必要做下面的事情——编一些小程序,然后编大一点的。问:怎样才算是一种好的大学教育呢?尤其对计算科学来说。DMR:教育知识面最好要宽一些,不要仅仅局限于编程。即使是编程,最好多学几种语言。我在大学时花了几年时间学习物理和计算理论知识,现在我仍然对当时的选择比较满意。贝尔实验室出大师图:图片看贝尔实验室的发展C语言或Unix,任一项发明足以让Dennis成为一代又一代程序员们的偶像。但当我们接触这位伟人之后发现,Dennis是一位非常低调的人,形成对照的是他在软件业成就辉煌的40年。今天,当初与他同期加入贝尔实验室的科学家中,多数人都已安享晚年或是自立门户成为老板,而Dennis还是一如既往地在这里从事自己喜欢的研究工作,著书立说,潜心编程。在完成C语言和Unix两座高峰后,他还带领他的研究小组开发出了新一代操作系统Plan9和Inferno。C语言和UNIX的发展历程,还让我们从侧面见证了业界流流传很久的话题:贝尔实验室出大师!而在谈到贝尔实验室成功的原因时,Dennis的评价只有四个字:管理得到!贝尔实验室是全球驰名的研发机构,遍布全球16个国家,自1937年以来已经产生出11位诺贝尔奖获得者。贝尔实验室的科学家和研究人员自1925年以来已经获得了40000多项发明,30000多项专利,平均每个工作日超过4项,是全球最多产的发明源泉之一。贝尔实验室原名“贝尔实验室”,1996年10月正式改称“贝尔实验室”(BellLabs),先后为AT&T和朗讯科技公司的研发机构,也是后者得以成立的支柱。它主要从事通信科技的基础研究和技术发展工作,目前还从事通信系统和设备的研制工作。自1925年成立之时起,它一直是世界上规模最大、通信科技和控制等方面最先进、优秀人才最集中和科技成果最突出的工业研究实验室或研发机构。它的工作人员从成立时的3600人和年经费1200万美元发展到1991年的29000人和37亿美元。在1999年,雇员人数仍为25000人,年经费36.78亿美元,依然雄居世界研发机构的榜首,被称为“世界首要的研发机构”和研发的“象牙之塔”。图:KenThompson(左)和DennisRitchie从克林顿手中接地过国家技术奖章问:在AT&T和Bell实验室有这样多的IT发明和著名人物,您觉得有什么秘决吗?DMR:我觉得这得益于我们的管理,使得有足够资金资助研究,更重要的是给予充足的时间和允许某些思想发展的时间。很幸运的另一点是,这里有一批天才人物的加入。还有一定程度的幸运在里面:1970年代,在计算机硬件条件(如小型机)发生了巨大的变化,这样使得许多机构可以顺利地开展实验,而这之前是很困难的。C语言是Dennis的得意这笔,对于这一笔,他看得非常平静,当问到他对C语言的将来做一下预测时,他的回答十分简洁:C语言正在被C++,也可能是Java所替代,也可能是更高级的脚本语言。当然,它在关于系统一类设计中还是相当强的工具。问:您能对IT的将来做一下预测吗?将来我们最有可能用什么语言?DMR:我对预测不在行,但是很明显,人们正在从象C语言之类的直接编译型语言,转换到注重解释性的语言,象某些脚本语言。问:您对面向对象是怎样理解的?它是不是一种好的可接受的编程思考方式?有没有学习OO必须的有用的工具?DMR:我看过OO的东西但我现在还不是OO迷。这种思想是非常好的,也即是通过隐藏任务的执行来定义界面,但是它可能做得有点过火;它以很难发现工作本质的程序终结;它的所有的东西就是界面。问:数学和计算机科学有什么关系吗?DMR:我觉得计算机科学就是:包括工程学在内的对数学的应用。问:现在的大学有部分学生中途退学,您怎样看待这现象呢?DMR:在泡沫时期,我曾经为此非常担心,现在,至少现在在我们国家,好象不很普遍了。可能原因在于,人们已经不再把计算机科学看作可以立即赚到大把美金的东东了,因此,现在其他的人对这门学科本身更感兴趣一点。问:您对中国和中国的程序员有什么认识?您想对他们说点什么吗?DMR:我访问中国好多次,但每次都很短暂,以至于很难形成一个一般的看法。上一次我还记得,在大学的见面会上,我讲了一些当时正在从事的工作的情况和历史,学生们的态度非常热情,他们提问所表达出的知识面也很宽博。问:您怎样教育自己的孩子和学生?DMR:两者我都不可能有!我没结婚,并且我是在工业系统而不是学术机构中。C语言、UNIX双双飞C语言是一门伟大的语言,一门伟大的承前启后的语言。C语言是借助Unix操作系统的翅膀而起飞的,Unix操作系统也由于C而得已快速移植落地生根,两者相辅相承,成就了软件史上最精彩的一幕。而对于C的诞生,大师对他的描述是那样地不经意。C语言的发展颇为有趣。它的原型ALGOL60语言。1963年,剑桥大学将ALGOL60语言发展成为CPL(CombinedProgrammingLanguage)语言。1967年,剑桥大学的MatinRichards对CPL语言进行了简化,于是产生了BCPL语言。1970年,KenThompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。而在1973年,B语言也给人“煮”了一下,在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。为了使UNIX操作系统推广,1977年DennisM.Ritchie发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。1978年BrianW.Kernighian和DennisM.Ritchie出版了名著《C程序设计语言(TheCProgrammingLanguage)》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。1988年,随着微型计算机的日益普及出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准,成为现行的C语言标准。C语言发展迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。许多著名的系统软件,如DbaseⅢPLUS、DbaseⅣ都是由C语言编写的。用C语言加上一些汇编语言子程序,就更能显示C语言的优势了。C++、Java等语言受C语言影响深刻。在技术方面,曾有人问Dennis,C语言设计目标有没有随着时间推移而改变?如果没变,为什么?他说:我个人的目标这些年来一直未变,并且,我不是1989和1999年标准的主要推动者。无论1989年ANSI标准还是ISO标准都使事情制度化了,这些条文比我最初写的文档要好;最需要加以说明的是我早先关于函数原型做的工作,对C++语言的影响是非常重要的一个影响。而在关于众多计算机语言的激烈辩论中,始终处在中心位置的C语言作者Dennis却显得很平静。西班牙的一位大学生曾经问过他类似的问题:如果UNIX被选为过去和当前的操作系统,尽管过去几年出现了一些面向对象的语言,毫无疑问C也将被认为是“唯一的语言”。你怎么看待C++和Java,以及C和C++程序员之间在UseNet上经常发生的激烈争论呢?他说:C++的很大一部分得宜于C。因为C早在C++出现之前就已经具有了非常好的兼容性,所以C++才可以采用C作为建构自身的基础并使用它来开发自己的编译器。C被设计成为一种便携式汇编语言,对于这一特性人们褒贬不一,C++则试图把编程方法提高到面向对象这种更抽象的层次上来。从最近形成的标准来看,二者共同的缺点是:带有过多的装饰和附属物。同样的,它们都采用了相同的编程思想,都试图按照真正的需求来编写代码。Java显然是C++的改进版本。它砍掉了C中的指针操作部分,引入了生成独立于机器的目标文件这种编程思想(虽然这个思想并不是很新的,但是也许直到现在它才真正可行了)。既然Sun和Microsoft公司(它的产品同样的有过多的装饰附件)已经把Java作为它们之间竞争的工具,谁也难以预料事态将向何处发展。图:KenThompson和DennisRitchie在PDP111971问:您是怎样发明C语言的?发明的过程是什么样子的。它对您的生活和研究有什么影响吗?DMR:公正地说,发明C语言的目的是:为了写编译器和语言设计,为了更易于编写UNIX操作系统程序,我们做的一个可以在小型计算机上使用的工具。Unix做的比较好,并且PC开始相当普遍,由于C语言在Unix上的很好地应用,使得用它来写应用程序和操作系统迅速增长起来。因此,对我来说,C语言的确非常重要。问:您觉得C语言和C++有什么不同吗?DMR:多年以来,C和C++,已经是两种不同的语言了;Stroustrup先生汲取了C语言语法和潜在的语义学中的许多东西,形成了C++语言。在一些交叉领域,标准委员会尽量使两种语言兼容。问:您觉得计算机语言和我们人类的语言有什么不同呢?DMR:计算机语言更加正式和明确,有统一的规则,当然,它们都是经过设计的。人类语言有语法,但相对来说不很正式,有些规则可以打破,当然,它们有不同的目的——为了同人交流而不是同机器交流。人物印象DMR先生的专业精神令人感动,近40年如一日,在他所从事的领域辛勤耕耘,而他的多项发明,包括C语言,Unix,也包括现在正在进行的Plan9,无论哪一项,在软件发展史上都有着举足轻重的地位,和他的伟大成就形成对照的是他的行事,态度低调,他的表达,象他的软件一样,简洁生动而准确。C++的成功,很大一部分也来自于C,是C语言的普及和深入,才有了后面的凤凰涅盘,从另一个角度,在同另一语言大师Pascal之父NiklausWirth交流时,C++的名字也是源自C语言的利器,Wirth先生不无惋惜地表示,后来他开发的语言可惜没叫Pascal2。安德斯·海尔斯伯格AndersHejlsberg中文译名:安德斯·海尔斯伯格,丹麦人,\o"TurboPascal"TurboPascal编译器的主要作者。进入微软公司后,先后主持了\o"VisualJ++"VisualJ++和\o".Net".Net。目录•主要历程•Delphi和.NET之父:安德斯·海尔斯伯格•AndersHejlsberg的故事•Borland创业故事[显示全部]主要历程编辑本段回目录1加入Borland公司之前AndersHejlsberg安德斯·海尔斯伯格曾在丹麦技术大学学习工程,当时他在丹麦拥有个叫PolyData的公司,他编写了CompassPascal编译器核心,后来叫PolyPascal。2在Borland公司安德斯·海尔斯伯格把CompassPascal编译器核心授权给了美国\o"Borland"Borland公司,并作为雇员加入Borland公司,并且是后来所有\o"TurboPascal"TurboPascal版本与\o"Delphi"Delphi前3个版本的架构师。\o"PhilippeKahn"PhilippeKahn为第一个版本的TurboPascal添加了用户界面与编辑器。3加入微软公司
据说,\o"比尔·盖茨"比尔·盖茨亲自参与了这次挖角行动,并许诺安德斯·海尔斯伯格在微软将得到技术上的足够自由和资源支持。据说该事件也是微软公司和Borland公司后续官司的导火索。4在微软公司进入微软公司后,首先主持了VisualJ++的开发工作,后来由于在Java开发工具授权问题上和Sun公司的纠纷,微软停止了VisualJ++的后续开发。这之后,作为.Net概念的发起人之一,安德斯·海尔斯伯格被任命为微软.Net的首席架构师,主持.Net的开发工作。Delphi和.NET之父:安德斯·海尔斯伯格编辑本段回目录安德斯·海尔斯伯格(AndersHejlsberg,1960.11~),丹麦人,TurboPascal编译器的主要作者,Delphi和.NET之父
安德斯·海尔斯伯格曾在丹麦技术大学学习工程,当时他在丹麦拥有个叫PolyData的公司,他编写了Pascal编译器核心,最初叫作CompassPascal,后来叫PolyPascal。Anders把该编译器核心授权给了美国Borland公司。安德斯·海尔斯伯格作为雇员加入Borland公司,并且是后来所有Pascal版本与Delphi前3个版本的架构师。PhilippeKahn为Pascal添加了用户界面与编辑器。AndersHejlsberg
AndersHejlsberg曾在丹麦科技大学学习工程学。AndersHejlsberg第一次登上软件界历史舞台是在80年代早期,因为他为MS-DOS和CP/M设计了一个Pascal编译器。当时,还是一个小公司的Borland很快雇用了他,并买下了他的编译器,改称TurboPascal。在Borland,Hejlsberg继续开发TurboPascal,并最终带领他的小组设计了TurboPascal的替代品、开发工具史上的奇迹:Delphi语言。
1996年,AndersHejlsberg在Delphi3发布前离开Borland去了MS。
在此之前,MS曾多次企图挖走Anders,但都没有成功。据信anders去MS(主要)不是钱的问题,虽然MS的开价也相当有吸引力:130万美元年薪外加股票期权和分红,总计超过300万美元。更主要的原因是Anders和Delphi开发组的其他成员在修改编译器的问题上发生了争执;还有,据Borland内部人讲,Anders认为自己不再是“不可缺少的人”。
Anders在Delphi3中几乎没有做什么工作,ChuckJazdzewski扮演了一个更重要的角色。(--AndersOhlsson)Anders在Borland时把所有精力都放在了Pascal产品上,也需要新的挑战,这时BillGates的亲自邀请,许诺给与挑战的机会,Anders加入了Microsoft就势在必行。
Microsoft用丰厚的薪水、股票认购权和巨额的加盟奖金雇请了Hejlsberg之后,Borland曾提出通过不正当手段吸收新成员的控告。Borland还曾声称—提供了很少的细节来支持指控—Hejlsberg正在开发“DelphiforJava”。这场诉讼虽然最终以Borland的胜利而收场;但Anders已经在为Microsoft工作了。
1996年Anders来到微软后,直接主抓VisualJ++的研发工作,并在1999年被授予“distinguishedengineer”(卓越工程师),在微软仅有16人获得这样的荣誉。
后来微软希望通过开发最新的软件开发语言来赢得软件开发者的拥戴,在微软公司把视窗操作系统和软件向网络迁移的新市场战略中,C#语言是最重要的环节。微软动用了最好的资源。Anders担任了C#语言的首席设计师,同时也是微软.NET战略构架的重要参与决策者。考虑一下Anders的经历,就不会奇怪微软将此重任交给他了。毕竟C#也不是他对软件开发方式重大变革的首次。现在经过几年时间的埋头苦干,C#已成为微软反击Java语言的最有力武器。
鉴于他为软件开发做出的巨大贡献,Anders在《Dr.Dobb's》杂志的2001年西部会议上被授予“PrestigiousExcellenceinProgrammingAward”,《Dr.Dobb's》杂志的主编JonathanErickson说:“这一荣誉,我们每年只颁给那些在软件开发领域做出非凡贡献的人员,Anders开发的C#和他整个职业生涯中为软件开发所做出的巨大贡献有目共睹,他无愧于这一荣誉!”
比尔盖茨也高度评价说:“我们为Anders获得这一荣誉感到无比自豪,Anders在C#创建中所做的努力将会改变现在的软件开发方式,并将在以后的十年继续产生影响。”
“程序员是最好的职业”,Anders说:“每两年,CPU的速度要加倍,内存容量是原来的四倍,但是我们的大脑还是原来的大小,很显然,将需要更多的程序原来补充这些。”
______
注:海尔斯伯格曾在微软博物馆视频上表明他是1960年生的,但很多其它资料显示,他是1961年生的。2006年,在巴塞罗那微软技术教育大会(TechED)上,安德斯再次确认他生于1960年。AndersHejlsberg的故事编辑本段回目录在我的世界里,AndersHejlsberg是如同神一般存在的人物.AndersHejlsbergDelphi和C#的缔造者,Borland的创始人之一,现在Microsoft的核心人物之一,在一定程度上影响着这个世界的发展.温文尔雅,为人低调.不管在Internet中还是在现实生活中,都找不到太多关于他的信息.进入Microsoft已有九年,只是到了近几年随着dotNet的问世才开始在公众面前出现.像他这样的人,拥有别人艳羡的财富,名誉和地位,却甘心默默无闻的工作.我想,当年他接受Microsoft邀请的唯一缘由,就是Microsoft能提供让他的才华充分发挥的环境,而在Borland,他已被限制的太多.一个曾与他共同工作过的同事在BLOG写道,AndersHejlsberg拥有不可思议的个人魅力和语言表达能力,得到了所有人的尊敬,并令人敬畏.程序员是个特殊的行业,这里中的每个人都智力出众,骄傲无比,并以此自负.有句经典的话:管理程序员,就像放牧一群骄傲的猫.我不知道,只能去想象,在这个行业中,一个温文尔雅却能让同行竞争对手感到"敬畏"的人,到底是个什么样的人.也许,因为在他身上体现出的,正是程序员们追求的终极之道:以精神魅力征服世界,而不是物质魅力.
AndersHejlsberg曾在丹麦科技大学学习工程学,他编写的Pascal编译器的核心,1981年将Pascal编译器卖给了Borland,并加入Borland公司,那时的Borland公司还是一个名不见经传的小公司。AndersHejlsberg在Borland主持开发了TurboPascal,TurboPascal获得一直好评,AndersHejlsberg并未止步不前,他将TurboPascal编程一种面向对象的、拥有可视化环境和卓越的数据库访问特性的应用程序开发语言-Delphi。Java出现了。AndersHejlsberg在Borland一直郁郁不得志,据Borland内部人士讲AndersHejlsberg认为自己不再是不可或缺的人。比尔盖茨慧眼识才,三故茅庐,把AndersHejlsberg请到了微软。最开始微软许以重金,但AndersHejlsberg不为所动,当清楚AndersHejlsberg的想法后,比尔盖茨答应给他一个宽松的环境,既领导VisualJ++小组,并提供薪水和红利奖金300万美元。这样Borland这个大牛孵化器为微软输送了一位超级大牛。好景不长,SUN公司认为微软破坏了java的跨平台性,很快微软就会利用它的VJ++将java开发人员拉拢到它的周围,而它的VJ++以及WFC的很多特性明显是为了Windows平台设计。SUN中止了对微软的java授权。此后微软便选择AndersHejlsberg担任C#的首席设计师。Borland创业故事编辑本段回目录记得大学时,第一个在PC上使用的软件就是SideKick。这个至今让我仍然无法忘记的软件,也曾让许多人津津乐道,而Borland当时也就是以SideKick成为全球知名的软件公司。不过Borland第一个奠立创业基础的软件,却是我大二用来交作业的TurboPascal,而TurboPascal也是我听到的第一个关于Borland的有趣的故事。AndersHejlsberg当年\o"PhilippeKahn"PhilippeKahn(Borland的创始人)和AndersHejlsberg到美国创业时,便由Anders以汇编语言撰写了TurboPascal的编译器,而Philippe则包办了TurboPascal其他的部分。在这两位仁兄开发完TurboPascal之后,穷得快连登广告的钱都没有了。Philippe为了在Byte杂志(还记得这个著名的杂志吗?)刊登TurboPascal的广告,和Anders商量了一个方法,那就是直接约Byte杂志的人到当时Borland的办公室讨论刊登广告的事情。当Byte的人到了Borland之后,Philippe、Anders和公司的助理小姐故意忙着接,接受TurboPascal的订单,并且告诉Byte杂志的人等一下。过了一阵之后Philippe才进入房间向Byte的人道歉,说他们的TurboPascal受到市场的热烈欢迎,订单源源不断地到来,因此可能不需要在Byte杂志刊登广告了,接着Philippe向Byte的人展示TurboPascal这个产品。由于在当时的机器中TurboPascal能够在极少的RAM中常驻执行,又提供闪电般的编译速度,这立刻让Byte杂志的人当场震惊。凭着专业知识和丰富的经验,Byte的人立刻知道这将是一个革命性的软件,因此马上希望Philippe能够在Byte杂志刊登TurboPascal的广告,并且愿意以半价刊登。当然,Philippe也立刻爽快地答应了,于是一个革命性的软件TurboPascal终于在Byte杂志刊登出来了。当时售价49.99美元的TurboPascal立刻为Borland带来了大量的财富,TurboPascal也马上成为PC上除了基本的Basic之外最畅销的开发工具,由此正式揭开了Borland影响PC开发工具近20年的历史的序幕。TurboPascal是由AndersHejlsberg亲自开发的,并且和PhilippeKahn谈好的条件是Borland每卖出一套TurboPascal,Anders便从中抽取一份版权费。由于当时软件的价格不算便宜,能够写编译器的人更是少之又少,所以编译器工程师通常都能够获得优厚的报酬。因此当时AndersHejlsberg在完成了TurboPascal、并且和PhilippeKahn谈好了合作条件之后,Anders理所当然地认为一套TurboPascal会定价数百元美金,因为这不但是当时一般编译器的价格,而且TurboPascal还内含了一个开发环境和编辑器(Editor),这是当时许多工具没有提供的。没有想到极具商业头脑的PhilippeKahn了解到:如果把TurboPascal定价在数百美金,那么TurboPascal可能只会卖出数百到数千套,无法冲出大量的销售额。因此,PhilippeKahn以极大的勇气,瞒着AndersHejlsberg只把TurboPascal定价为49.95美金。这种价格在当时对于编译器和开发工具来说简直是不可思议的低价。当AndersHejlsberg知道了PhilippeKahn的定价后,简直快气昏了。因为在这么低的价格下Anders的版税金一定少得可怜,因此当时Anders说他把最好的Pascal开发工具拿去让一个白痴销售。没有想到的是,PhilippeKahn的定价策略获得了极大的成功。TurboPascal以极佳的品质和令人不可思议的低价格成为当时最具吸引力的Pascal开发工具。当然,在TurboPascal卖出了让人难以置信的成绩之后,Anders便再也不提他把专业Pascal编译器让白痴去卖这件事了。PhilippeKahn关键产品--SideKick虽然TurboPascal快速地让Borland在当时全世界的程序员中成为最响亮的软件新星,但是真正让Borland打人一般计算机使用人群、快速成长为软件巨人的大功臣的,却是Borland早期最重要的产品--SideKick。在TurboPascal之后,Borland接着推出了SideKick这套软件。SideKick可以说是随后著名的内存常驻软件(TerminateandStayResident-TSR)的始祖,也是Borland跨出开发工具领域、让几乎所有PC使用者认识Borland的关键软件。SideKick在当时以许多丰富的小工具和记事功能让它成为每一个程序员爱不释手的工具。还记得当时我每天都会使用SideKick的ASCII对照表和计算器的功能,因为在汇编语言(Assembly)盛行的时期,查阅ASCII对照表和在2进制、10进制以及16进制之间进行转换是每日必要的工作。当然SideKick也很快成为了畅销软件,在全球狂卖数10万套,继续把Borland往顶尖的软件公司推进。所谓的TSE代表TerminateandStayResident。这个意思是说,这类软件在执行后会隐藏在内存的某个位置中,但是并没有出现在屏幕上。不过使用者通过一个快捷键就可以立刻调出这类软件让使用者使用,在使用完毕之后又可以按一个快捷键再度隐藏它。这样的软件运行方式在当时是一项全新的创举。以我的眼光来看,SideKick这个软件对于Borland来说是非常关键的作品,因为我将SideKick归类成"消费型软件"产品。所谓消费型软件,是指可以被所有计算机使用者使用的软件,而不是只给程序员或是开发者使用的软件。凡是现今比较会赚钱或是规模比较大的软件公司大都属于开发"消费型软件"的公司。例如Microsoft除了有和Borland竞争得你死我活的开发工具之外,最重要的是Microsoft拥有两大"消费型软件":Windows操作系统和Office。这两类软件才是Microsoft最赚钱的产品。Oracle是另外一个很好的例子,数据库几乎是现在任何应用都需要使用的软件。同样,SideKick就属于这一类型的软件,因为SideKick可以被所有的开发者使用来增加生产力,而不管开发者使用的是什么语言。因此当Borland推出SideKick之后,立刻在全世界狂卖,也成为继TurboPascal之后Borland最赚钱的产品。我认为在后来的数年之中Borland走得比较辛苦,便是因为Borland再也没有推出像SideKick一样属于"消费型软件"的重量级产品,而只有属于程序员和开发者小众市场的产品,这是非常可惜的事情。而"消费型软件"也是到现在我仍然认为Borland应该推出的产品。AndersHejlsberg近照由于SideKick的TSR技术是当时独一无二的,而且是如此的好用,这引起了当时许多人的好奇,并且成了所有软件厂商模仿的对象,我还记得稍后许多的计算机信息书籍都以如何学习TSR技术作为卖点。也是因为SideKick和TSR太成功了,因此Borland立刻进行了两个工作。第一当然是马上开发下一版的SideKick,让SideKick继续执类似软件的牛耳,以防止其他软件公司推出类似的软件来分食SideKick打下的天下。很快地,Borland便推出了SideKick的后续版本,不但功能更多,而且SideKick从原本完全以开发者为中心的软件转变为适合所有计算机使用者使用的消费型软件。看看左图,从产品封面以"DesktopOrganizer"为主题便可以了解到SideKick在当时的定位。果然,后续的SideKick又持续地大卖,这让PhilippeKahn非常振奋,也让他雄心大盛,开始想要通过SideKick的成功主导PC软件的标准,这当然就是SideKick一举成名的TSR技术。在Borland通过TurboPascal和SideKick大获成功之后,也因TSR技术成为大多数开发者津津乐道的软件公司,许多软件公司都开始模仿Borland的TSR技术开发大量的TSR软件。不过当TSR技术大量被运作之后。最后却造成众多的TSR软件彼此冲突,无法正确地相互共存,这主要是因为许多TSR软件都使用了相同的快捷键来调出/关闭软件,或是隐藏在相同的内存位置。我还记得,当时同时使用几个TSR软件时,必须遵照一定的运行次序才可以正常使用。为了解决这个扰人的问题,Borland开始广邀软件公司,想要以Borland为首制定TSR的标准。如此一来,只要所有的软件厂商遵照Borland制定的标准,那么所有的TSR软件就可以彼此正确地运行在PC之中。当Borland公布了这个想法并且发表了初步的TSR标准规格之后,却立刻引起了Microsoft的紧张。因为当时TSR是如此的流行,Microsoft害怕TSR技术由Borland主导之后会让Borland成为PC软件的霸主,进而严重影响Microsof想主宰PC的计划。因此在Borland开始正式制定TSR标准之际,Microsoft便站出来反对Borland定义的TSR标准,并且声明Microsoft将在未来的DOS操作系统中加入对于TSR的支持,因此没有必要再额外制定TSR标准。当时的软件公司,包括Borland在内,都无法和Microsoft对抗。在操作系统厂商表明了反对立场之后,Borland的这个构想很快便迫于形势而放弃了。关于TSR的争议应该算是Borland和Microsoft之间的第一场战争。虽然在没有引起太大的烽火之前便很快收场,不过也算是Borland和M1crosoft第一次真正的交手。也正是由于这次的相争,让Microsoft惊讶于Borland快速的兴起,并开始正视Borland这家在当时还算小的软件公司。《Borland传奇》虽然在有关TSR的技术之争中Microsoft赢得了胜利,不过很奇怪的是,此后TSR软件反而开始慢慢地退烧。除了一些少数的公用程序软件仍然使用TSR之外,之后便没有什么重量级的软件是使用TSR技术开发的,这算不算是另一桩Microsoft介入之后搞砸的技术呢?最后再叙述一个从Borland老员工处听来的有趣故事。许多人一直想要知道:Borland的总部在哪里?或是想要知道:为什么Borland会选择ScottValley作为总部?事情的经过是这样的:当年PhilippeKahn和AndersHejlsberg到美国准备开始创业时,由于没有资金,PhilippeKahn就在西餐厅打工,负责端盘子的工作,而AndersHejlsberg则努力的在开发TurboPascal。当PhilippeKahn存了一笔小钱之后,两个人便开始了创业大计。首先他们必须找到一个公司的总部,可是要在哪里实现PhilippeKahn和AndersHejlsberg心中的理想呢?虽然当时他们住在L.A.附近,但是光凭PhilippeKahn存的一点小钱是绝不够在L.A.大展鸿图的,因此PhilippeKahn和AndersHejlsberg决定到比较偏远的地方试试。于是这两位仁兄便开着PhilippeKahn的破车往南出发了。听说当PhilippeKahn把车开到ScottValley附近时刚好没有汽油了,眼看四周的环境觉得还不错,就决定在这个地方展开PhilippeKahn和AndersHejlsberg的创业之梦。就是这个决定让原本默默无闻的ScottValley在数年之后竟成为一个家喻户晓的高科技盛地。C#首席设计师AndersHejlsberg专访编辑本段回目录C#首席设计师AndersHejlsberg专访JohnOsbornAndersHejlsberg译者:荣耀[译序:精彩技术,不容错过!限于时间和能力,译文倘有讹误,当以英文原版为准。]2007年7月,O’Reilly编辑JohnOsborn参加了微软职业开发者会议。在此,他对著名的工程师、微软.Net框架设计师、C#程序语言首席设计师AndersHejlsberg进行了采访。AndersHejlsberg因设计PC上最早的语言之一—TurboPascal而出名。他把TurboPascal授权给Borland公司,后又率队开发了Delphi—一个极为成功的可视化的客户/服务应用设计工具[译注:此处不必拿MIDAS之类较真J]。访问时在座的还有微软C#产品经理TonyGoodhew和O'Reilly的Windows编辑RonPetrusha。Osborn:
我已经看到一些关于C#[发音为"Seesharp"]的新闻故事,我注意到有很多似乎倾向于这样的观点—或理论上说—C#不是Java的克隆就是Java的微软替代物。如果你来写这个标题,你希望人们怎么评论这门语言?Hejlsberg:
首先,C#不是Java的克隆。在设计C#期间,我们考察了很多种语言,如C++、Java、Modula2、C、Smalltalk等。很多语言都有我们感兴趣的相同的核心思想,比如深度面向对象、简化对象等等。
C#和这些别的语言尤其是Java的关键不同点是它非常接近C++。在我们的设计中努力使然。C#从C++直接借用了大多数的操作符、关键字和声明。我们还保留了许多被Java抛弃的语言特性。为什么Java中没有枚举,道理何在?我的意思是,抛弃它们是基于何种理论基础?在C++中,枚举显然是一个很有意义的概念。在C#中,我们保留了枚举并同样使其类型安全。并且,枚举不只是整型,它们实际上是从.NET基类库里的System.Enum派生下来的强类型的值类型。如果没有造型转换,枚举类型“foo”和枚举类型“bar”不可互换。我认为这是个重要的差异。我们还保留了操作符重载和类型转换。C#名字空间的整体结构也非常接近C++。
但是,超越这些传统的语言论题,我们设计语言的一个关键的目标是使C#面向组件。我们向语言自身加入了你在编写组件时所需要的所有概念。例如属性[译注:即property,翻译为“属性”,由来已久。我怀疑如果先有attribute的话,property会不会被翻译为“性质”、“特性”,而attribute才是“属性”:JL]、方法、事件、特性[译注:即attribute,截至目前,此名词译法仍较混乱。有的翻译和property不区分,也译为“属性”;有的译为“特性”;有的译为“属性信息”。在该名词译法尚未统一之前,本着精简原则,笔者先把它翻译成“特性”。但注意,XML中的attribute的译法一般比较统一,即为“属性”(因为XML中没有一个类似于property的东西会与之混淆)。因此,本文最后交叉描述C#和XML的部分,请留心“特性”、“属性”各有所指。]和文档等,它们都是一流的语言结构。我们对特性所做的工作是全新的和创新的。利用特性可为任何对象加入有类型的、可扩展的元数据。这在目前任何其它程序语言里都看不到的。C#也是第一个合并XML注释标记的语言,编译器可以用其直接从源码中生成可读的文档。
另外一个重要的概念是我所说的“一站购物式软件”[one-stop-shoppingsoftware]。一旦你用C#写代码,你就在这一个地方写了一切。不再需要头文件、IDL(接口定义语言)文件、GUID和复杂的接口。因为它是自包容的单元。一旦用这种方式写自描述的代码,你就可以把你的软件嵌入到ASP页面或植入各种不同的环境,这在以前是不可能的。
但是让我们再回到组件这个重要的概念。语言是否应该支持属性或事件,业界有很多争论。没错,我们是可以用方法表达这种概念。我们可以用诸如“get”或“set”之类的程序块的命名模式模拟属性的行为。我们可以用接口和实现接口的适配器并转发到对象。这都是可能实现的,就象可能在C语言里进行面向对象编程一样。只是它太困难了,需要太多的手工劳动,为了表达你真正的思想,你最终不得不去做所有的工作。我们认为是时候了,应该有个语言使得创建组件变得容易些。今天程序员在创建软件组件。他们并不是创建整个应用或整个类库。每个人都是在创建从宿主环境提供的基组件继承下来的组件。这些组件重载一些方法和属性,它们处理一些事件,并把组件安装回系统。树立这些概念是关键的第一课。Osborn:
你最近在介绍C#时,第一张幻灯片上面写着:“C/C++家族里第一个面向组件的语言”。Hejlsberg:
是的。这是我的首要目标之一。我们谈论一切如何都是对象,这也非常关键。以前象Smalltalk和Lisp语言都可以这么做,但代价昂贵。我认为C#包含一些优美有趣的创新使得组件开发容易些。例如装箱和拆箱的概念。装箱可以使一个值类型的值转换为一个对象,拆箱可以使一个对象转换为一个简单类型的值。这在以前或许也有,但我们把它应用于语言的方式是一种优美的创新。
我们努力避免用“象牙塔“的方式设计C#和.Net框架。我们承受不起重写我们所有的软件的负担。业界也负担不起,特别是今天我们正转移到Internet时代。你要善于利用你已经拥有的。所以,我认为互操作性也是关键的。我们致力于为程序员提供所有符合Internet标准的可互操作的正确的解决方案,例如、HTML、XML以及微软已经存在的技术。所以你不会有如坠深渊的那一刻—发现新的.NET框架下没有提供你用的一些东西,或者你意识到你想利用一些已经存在的API或组件的时候。你已经看到我们已把所有COM的互操作能力内建入语言和公共运行时;你已经看到可以使用DllImport特性导入已存在的DLL[动态连接库];你已经看到即使那些都不能遂你愿,我们也有不安全代码的概念。不安全代码允许你写使用指针的内联C代码,可以做不安全的造型转换,可以抑制内存从而使其不会被意外地垃圾收集[译注:此处用作动词J]。
关于不安去代码有很多争论,人们似乎认为我们在吸毒或是在干什么别的坏事。我认为这是个误会。代码不会仅仅因为标记了“不安全”就表示它不受管制。当然,我们不会扔出不安全的指针使人们容易受到从Internet下载的不安全代码的攻击。不安全代码被深深地约束在安全的环境里。我们提供这样的弹性:1.呆在受管制的代码箱里完成工作而不会坠入深渊;2.转入一个不同的语言使用一个不同的编程模型写本地代码。如果你停留在这个箱子里,我们会使代码更加安全,因为系统知道它要干什么。事实上,即使你写不安全代码也不意味着你离开了受管制的空间。你的不安全代码会变得更有效率。
Osborn:
请给我多讲一些在受管制的环境里处理不安全代码的机制。Hejlsberg:
好的。描述受管制的执行环境比如Smalltalk、Java和.NET公共语言运行时一个重要特征是它们提供垃圾收集机制。为了提供垃圾收集机制,至少要提供一个现代的垃圾收集器,一个“标记和清扫”垃圾收集器。比起传统不受管制代码来说,你必须更多地了解正在执行的代码。为了找出要排除的死对象,你必须能遍历堆栈,找到所有活动的根,并指出哪些对象是活动的哪些是不再被访问的。然而,为了能够达到这个目标,你必须和你执行的代码紧密协作。代码必须具有更好的描述性。它要告诉你它是怎么分布在堆栈里的,它的局部变量存放在何处等等。
当我们在C#中编写不安全代码时,你可以做不是类型安全的事,比如指针操作。标记为不安全的代码并非绝对执行在不可信任的环境里。为了使之执行,你必须授予信任,否则,代码将不会执行。从这一点来看,和其它本地代码并无区别—真正的区别是它们仍然运行在受管制的空间里。你写的方法有一个描述表,它告诉你哪些对象是活动的,因此,不管什么时候你进入这些代码,你都不必穿越列集边界。否则,当你进入非描述性的、不受管制的代码(比如通过Java本地接口),你不得不在堆栈上设置一个水印或设置一个屏障。你必须重新列集所有箱子外的参数。一旦开始使用对象,你必须对你触及的东西小心翼翼,因为GC[垃圾收集器]仍然在另一个不同线程里运行。如果你不使用一些隐晦的方法锁定对象从而正确地抑制垃圾收集器,它可能会移去对象。如果你忘记那么做,那你将会不走运。
我们采用了一个不同的方式。我们说过,“让我们集成这个到语言中去。让我们提供声明,例如fixed声明,它可以让你抑制对象以和GC协作并集成之。”用这种方法,我们提供最佳方式,带领所有已经存在的代码一起向前,而不是仅仅将它们抛弃。这是一个不一样的设计方式。Osborn:
因此,你们对不安全代码的处理方式是—不安全代码的内存实际上是在垃圾收集器的监视之下?Hejlsberg:
是的。但是,就象所谓的“购者自慎,不包退换”一样,它并不安全。你可以获取指针并做错事—当然,你在本地代码里也能干同样的错事。Osborn:
我认为另一个易混淆的地方,是理解C#在哪儿停止和公共运行时从哪儿开始。与它从公共运行时库得到的相比,C#语言自身的创新是什么?Hejlsberg:
好的,我想这个混淆来源于这样一个事实—当人们谈论Java时,他们并不真的知道哪个是语言哪个是运行时。当人们谈论Java时,混淆就发生了。哪个语言哪个是运行时?当他们谈论Java时,他们到底指的是什么?Java,语言?Java,语法?还是Java,平台?人们把这些不同的方面混成一团。我们的方式表明我们想成为一个跨语言的平台。我们将创建一个平台,它允许你进行多语言编程,并且共享一套公共的API(应用编程接口)。让我们承认这一点,一些人喜欢用COBOL编程,一些人喜欢用Basic编程,一些人喜欢用C++,还有一些人将会喜欢用C#—我希望。但是,我们不会试图告诉你,忘记你曾经做过的所有的事情吧,我们不会说,“现在只有一种语言,在这个竞争中不会再有创新了”。我们说业界因为弹性而友好。Java是怎么来的?它的出现是因为在它前已经存在一些编程语言,而在它后也还将会出现一些编程语言。我们想打造一个平台,在此你可以偏爱某种语言但不会否定整个价值取向;我们想打造一个平台,它将是创新的。今天谁在帮助COBOL程序员?谁把他们带入WEB?只有在.NET平台上你才可以把富士通COBOL嵌入ASP页面。我的意思是,它真正是革命性的!Osborn:
假定.NET平台上支持多语言,那为什么选择C#而不是VisualBasic、C++甚至COBOL?是什么使C#如此引人注目?Hejlsberg:
首先,C#可以使我们从一张白纸开始。也就是说,我们没有任何向后兼容性的负担。这显然会使事情简化,无论从是从实现的立场还是从使用的立场都是这样。例如,在C#中,我们只有一类类型,并且总是被垃圾收集。而另一方面,受管制的C++有两套。因为它要保留非垃圾收集风格的编程。因此,在C#中,只需要你理解一些简单的概念。语言是一个有趣的东西,它是一种口味;语言又是一件严肃的事情,它是程序员选择的一种生活方式。我是指,我们意识到我们不能走出来说,“这儿有个平台,你只可以使用一个基础语言。”即使在那个平台上用一种语言可以做所有的事情,人们还是可能不喜欢它的语法。他们可能喜欢大括号或者一些其它的程序块分界符。那是他们熟悉的。那是使他们感觉舒服并且富有生产力和能力的。我们对待C#的方式仅仅是为认为语言太复杂的C++程序员和认为丢失了一些C和C++语言特性的Java程序员提供一个可选物。我们寻求一个简化C++的方式并投入到一个多语言的平台中,它提供更大的互操作性,并且它提供完备的组件概念等等。—提供给开发者一个语言实现选择。我想我们做了件漂亮的工作。你基本上可以在VisualBasic、.NET和C#中做同样的事情。VisualBasic对大多数程序员来说仍然是易接受的。C#则具有更多的活动空间并且比VB更富威力。AndersHejlsbergOsborn:
这意味着在C#中可用更少的声明实现更多?Hejlsberg:
是的。意味着通过不安全代码,你可以得到更多的能力。
Osborn:
也就是说,不能在VB中写不安全代码?Hejlsberg:
是的。不可以。Goodhew:
但是,基本上,两种语言都可以做同样的事。和VisualStudio6相比,这是一个根本性的改变。在Visualstudio6.0中,如果你想创建多线程的MTS对象,并且你是一个VB程序员,你就没招。你不得不用C++。现在,有了.NET框架,你可以使用任何一种你喜欢的语言。Hejlsberg:
这就是我在一般会议谈话里说过的,.NET框架提供一致的编程模型。在语言和框架的进化过程中,我们一贯似乎都是把一种程序语言绑死在特定的API和特定的编程方式上。VB是快速应用开发工具;MFC(微软基础类)是子类化的方式;ASP则是把东西塞到Web页面中。在每一种情况下,你对编程模型的选择决定了你对程序语言和可使用的API的选择。每次当你变换框架时,它都增加了你学习新语言和API负担的工作量。我们真正努力统一这一切,我们提供一套API,一套支持可视化设计的工具,我们还提供一个可以任选一种适合你的语言的弹性。Osborn:
我不知道这对那些使用象VBScript和Jscript脚本语言的有什么作用?Hejlsberg:
.NET框架下奇妙的事情之一是使脚本语言能够编译。看看ASP+,现在,实际上,在你的页面里运行的是真正编译的代码。它不是后绑定的、调度查找的—如果用户没有点击页面,你不会看到运行时错误。ASP+开发者可以使用VisualBasi.NET完整的威力而不是VBScript。并且第一次,他们可以使用Perl、Python和其它流行语言,如果他们这么选择的话。Petrusha:
服务端的JavaScript现在也能被编译?Hejlsberg:
没错。Goodhew:.NET框架使得使用脚本语言就象用具有完全特性的语言一样,因为它们现在访问的是一个真正的编程框架并且访问的是同一基类API。你应该看看搞Jscript实现的伙计们都已经实现了什么。[编注:Jscript是微软对ECMA262语言规范(ECMAScript版本3)的实现,只有一些很小的例外(为了保持向后的兼容性),Jscript是对ECMA标准的完整实现]。所以.NET平台提供了一个公共语言框架,对脚本写作者来说,具有极大的好处。Osborn:
我们已经讨论关于Java、C++和脚本。在PDC[译注:(微软)职业开发者会议],我听很多人争论.NETIL(IL是微软中间语言,所有编译器都必须产生它以运行在.NET框架上)和运行于Java虚拟机中的Java字节码并没有什么不同。从你的谈话中,显然你并不同意这一点。你介意进一步评论它们之间的区别吗?Hejlsberg:
好的。首先,IL的思想是一个很老的思想了。你可以追溯这个概念到UCSDPascalp-machine(一个早期的个人计算机Pascal实现)或者Smalltalk。P-code曾被Basic和VisualBasic使用,Word的一个组成部件,内部使用p-code引擎,因为它更精简。所以,p-code并不是什么新东西。参考文献编辑本段回目录
汤姆·库尔兹目录•基本信息•托玛斯·库尔泽——BASIC语言的发明人之一•《IT史记》相关章节:BASIC:平装本《圣经》•约翰·凯默尼——BASIC语言的发明人之一[显示全部]基本信息编辑本段HYPERLINK"://techcn/index.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44576-2024热塑性塑料阀门扭矩试验方法
- 2024年光纤熔接工程外包劳务合同
- 定向培养预就业协议书案例
- 2024年汽修厂转让简单合同
- 电视广告制作与播放合同
- 2024关于合作协议书模板
- 中原地产策划及销售代理服务合同2024年
- 参股住宅建设合同书模板
- 电力工程维修分包合同模板
- 股票买卖代持协议
- 辽宁省盘锦市第一完全中学2023-2024学年八年级上学期期中数学试卷
- DB13-T 5958-2024 金属非金属露天矿山采场边坡安全监测技术规范
- 七十岁老人换驾照考三力测试题库
- 医院康复科培训课件:《平衡功能评定及训练》
- 2025届高三数学一轮复习策略讲座
- 职能科室对医技科室医疗质量督查记录表(检验科、放射科、超声科、功能科、内镜室)
- 2024至2030年中国机器人行业市场竞争状况及发展趋向分析报告
- 国家义务教育质量监测科学复习试题及答案
- 人教PEP版(2024新版)三年级上册英语Unit 3 Amazing animals教学设计
- 太阳能光伏发电系统设计方案课件(112张)
- 职业技术学院《酒店督导管理实务》课程标准
评论
0/150
提交评论