1 / 12
文档名称:

百年语言.doc

格式:doc   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

百年语言.doc

上传人:xgs758698 2016/6/23 文件大小:0 KB

下载得到文件列表

百年语言.doc

相关文档

文档介绍

文档介绍:百年语言百年语言 Paul Graham 2003 年4月(本文出自 2003 年 Python 大会上的一篇主题讲话) 很难预测人们的生活在一百年后会是什么样子, 我们只能给很少的事物一个确切的预测。我们知道到那时候每个人都将驾驶气垫轿车,地方法规将对建造上百层的高楼无所制约,大部分时间都将日月无光, 女人们都将精通武术( martial arts ) ……在这里, 让我们把这幅图景的一个细节放大来看看: 那时候人们用什么编程语言来写那些气垫轿车的控制软件呢? 这是一个值得思考的问题,其意义不在于我们一定要用这种语言,而是在于据此我们可以选择可能发展成那种语言的语言——如果我们够幸运的话。我认为, 语言就像物种一样, 会形成进化树, 没有前途的分支将枯死脱落。我们已经看到了这种事情发生: Cobol ——曾几何时风光无限, 现如今没有一个像样的后代, 它就是在进化中被淘汰的“穴居人”语言。(译注:穴居人是石器时代的欧洲大陆的主宰,大约 3 万年前灭绝。穴居人又叫尼安德特人,其发声系统不发达。) 我预测 Java 的气数也跟这种语言差不多。有人不时发邮件跟我说: “你怎么能说 Java 不可能成为一种成功的语言呢?它现在已经是一种相当成功的语言了。”那么我承认这一点——如果你衡量成功的标准是关于 Java 的书籍(特别是个人著作)在书架上占去的空间的大小, 或者是为了找工作不得不学****Java 的大学生的数量的多少的话。我所说 Java 不可能成为一种成功的语言,意思是从物种进化的角度来看, Java 将会走向穷途末路,就像 Cobol 一样。这只是一个猜想,我也许会猜错。我在此的重点不是要讨论 Java , 而是要提出进化树的论点并引发人们来问自己:“X 语言在进化树上的什么位置? ”之所以提出这个问题,不仅为了避免百年后去后悔, 更主要是因为跟紧语言发展的主流对于当前选择好的编程语言有积极的启发意义。假如你生活在旧石器时代, 任何时候你大概都会因为自己“处在进化树的主干上”(译注:石器时代地球上生活着智人在内的多个人种, 后来其他人种都灭绝了, 只有智人在竞争中生存下来, 成为现代人类的祖先) 而感到无比幸福, 虽然还有大量的穴居人——他们也是这个世界的居民, 并且克鲁马努人( 译注: 旧石器时代晚期在欧洲的高加索人种)不时会来袭击你,还偷走你的食物。因此我也想知道编程语言在一百年以后会是什么样子, 从而决定现在该把赌注押在哪个“树枝”上。编程语言的进化过程又不同于物种的进化过程, 因为编程语言的分支可能会汇聚。譬如 Fortran 这个分支, 似乎正在渐渐并入到 Algol 的后代中。理论上讲这对于物种来说也是可能的, 但是这种可能性很小, 似乎从来就没有发生过。集中化对于语言的进化更有可能, 部分原因是语言进化的走向空间比较小, 还有部分原因是对语言的进化来说, 突变不是随机的。语言的设计者总会有意识地吸取其他语言的思想。对于语言设计者来说,考虑一下编程语言的进化方向就特别有意义, 因为他们可以据此把握好设计取向。在那种情况下,“处在进化树的主干上”就不只是选择一个好的语言了, 而是从中得到启发, 以对语言的设计做出正确的决策。任何编程语言都可以分为两个部分:作为公理( axiom )的一个基本语素( operator ) 集和语言的其他部分, 其他部分原则上可以根据基本语素写出来。我想基本语素集是一种语言在其漫长的生存期中最重要的部分了, 而其他部分可能会改变。这就好比买一幢房子, 原则上你应该首先考虑房子的地理位置,其他的任何因素你都可以调整,但是你不能调整位置。我认为好的公理的选择很重要, 但是公理要尽量少, 这一点同样重要。数学家们对于这一点感受应该更深刻: 公理越少越好。我认为也确实如此。最近, 人们仔细核查起编程语言的核心, 看看是不是有什么“公理”是可以除去的, 这已经成为一项有益的实践。我发现在我长期的职业生涯里,自己经常像个笨蛋一样,用垃圾堆积着垃圾(译注:原文 cruft breeds cruft ,随着软件的发展,以及经历了修改 bug 和更新的若干周期, 它的部分代码已不再使用但仍然保留在源码中。这种代码称为 cruft 。 cruf 可能是一两行无用代码或整个源文件模块。由于很难识别 cruft , 去除 cruft 往往很困难。) 并且我发现同样的事情在软件里随时随地都在发生。我有一个预感, 软件进化树的主干会贯穿于某些编程语言中, 这些语言有着最小、最干净的“核”。一种语言越能用它自己来写自己,就越好。当然, 在提出一百年后编程语言会是什么样子的问题的时候, 我做了一个很大的假设。一百年后我们还写程序吗?我们不是只需要告诉计算机我们希望他们做什么就可以了吗?到现在为止, 这方面还没有大的进

最近更新

乐购超市安全技术防范系统初步设计方案 62页

小学教师辞职报告(合集15篇)(全文共9249字) 4页

小学教师数学述职报告范文合集7篇(全文共8895.. 3页

2×2500td熟料水泥生产线纯低温余热电站建设可.. 111页

新入职口腔护理人员培训ppt 31页

膝关节置换术后护理ppt翟荣 27页

高层住宅消防安全管理 26页

学校食堂员工培训计划及方案 22页

青年员工宣传策划方案 22页

糖尿病视网膜病变护理ppt课件 29页

糖尿病合并压疮护理查房ppt 24页

锁骨下静脉穿刺置管术的护理ppt 22页

商品清仓企划方案 4页

上肢骨折并发症的护理ppt 27页

2022-2023学年浙江省镇海区五校联考中考化学模.. 14页

2023年中考语文一轮专题复习:课内文言文阅读.. 5页

CFX软件介绍 20页

《电工与电子基础技术》习题集参考答案 17页

中国内地数学专业10强大学排名 4页

人教部编版七年级语文下册六篇课内文言文知识.. 14页

再生资源实施方案 54页

南通市人民政府办公室关于印发南通市市级政务.. 11页

国开电大《学前儿童科学教育》形考任务1234答.. 16页

安徽省自然资源厅关于阜阳广合测绘有限公司等.. 50页

平凉市人民政府办公室关于印发平凉市2021年政.. 8页

人生励志座右铭93条 3页

新概念英语第一册单词汇总打印版(已排版) 12页

3d跨度计算 1页

护理实验实训室耗材采购清单 8页

毕业设计(论文)-旋耕机传动部分设计 27页