加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

Paul Graham:百年编程语言

发布时间:2018-04-19 19:09:39 所属栏目:编程 来源:伯乐在线
导读:副标题#e# 很难预测人们的生活在一百年后会是什么样子,我们只能给很少的事物一个确切的预测。我们知道到那时候每个人都将驾驶气垫轿车,地方法规将对建造上百层的高楼无所制约,大部分时间都将日月无光,女人们都将精通武术(martial arts)在这里,让我们

Lisp(译注:一种表处理语言,用于处理包含有表格的数据的编程语言,被广泛地运用于人工智能研究)黑客(hacker,译注:黑客指掌握尖端电脑技术的人,而不是人们常说的网络入侵者,下同)们已经了解到弹性数据结构的价值,我们倾向于在程序的第一个版本中用列表(list)来处理一切数据。这种最初的版本是如此惊人地低效,因为它有意地避免去想它到底要做什么的细节,就像——至少对我来说——是吃牛排的时候有意避免去想它来自哪里一样。

一百年后程序员将需要什么语言?最可能是那种只需要最少的精力就写出 “非常低效”的“第一版程序”就搞定问题的语言。至少,我们目前可以如此描述这种语言。而用他们的话说,他们需要一种容易编程的语言。

低效的软件不是拙劣的,真正拙劣的是使程序员做不必要的工作的语言。浪费机器时间不是低效,浪费程序员的时间才是真正的低效。这个道理随着计算机越来越快,也将会越来越明白。

我想去掉字符串(string)这种数据结构已经指日可待了。我们在Arc(译注:Lisp的一种方言)中就已经是这么做的,而且成功了。一些用正则表达式描述起来相当拙劣的操作,在Arc中用递归函数就很容易描述了。

像这种扁平的数据结构还能存在多久?我审慎而全面地思考了各种可能性,结果连我都大吃一惊。譬如,我们将会放弃数组吗?毕竟,数组只是一种以整数向量为键值的哈希表(hash table),而我们会连哈希表都用列表来取代吗?

有的预测甚至比这个更骇人听闻。譬如McCarthy在1960就描述过的Lisp语言中连数字(number)都没有。逻辑上讲,你并不一定需要一个关于数字的单独的符号,因为你可以用列表来表示数字,整数n可以用一个n个元素的列表来表示,你可以用这种方式进行数学计算。只不过这样不堪其低效。

现实中没有人被建议用列表来实现数字操作,事实上McCarthy在1960年的论文在那时也根本没有指望被实现。那只是一项理论探讨,只是尝试给图灵机(Turing Machine)创造一种优雅的替代。出人意料的是,有人却根据那篇文章做出了一个可工作的Lisp解释器。不过数字不是用列表来表示,而是跟其他语言里一样,用二进制的方式来表示的。

编程语言会发展到去掉数字这种基本数据类型的程度吗?我这么问不是信口开河地制造耸人听闻的未来问题。情况就如同无坚不摧的矛遇到了无所不克的盾——在这里是无比低效的代码遇到了无比丰富的硬件资源。我认为这完全有可能,因为未来还相当长。如果某种做法可以减少语言的核心公理的数目,那么它随着时光飞逝会越来越值得“下注”。如果某种想法在一百年后依然是荒唐的,在一千年后或许未必荒唐。

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读