干代码与湿代码


译文。

湿代码 ”( “ wet code ”)(由大脑进行解释 [ interpreted ]),与“干代码”( " dry code " )(由计算机进行解释),有很大区别。

人读媒体 ( Human-read media ) 是湿代码;计算机代码和计算机可读文件(从“ 计算机有意义地对这些文件进行处理 ”这个范畴上而言)是 “干代码” 。

法律是湿代码,由那些受法律约束的人进行解释( interpreted by those on whom the law is imposed ),由执法者进行解释 ( 通常解释得有些不同 ) ,但最权威的 ( 甚至解释得更不同 ) 是由法官( judges )进行的解释。

人类语言( Human language )大多是湿代码,但从计算机程序粗略地将一种语言转换为另一种语言,从 keyword-ad 程序解析文本,对用户最有可能点击什么广告进行有根据的猜测,等,从这些角度看,人类语言文本( human language text )也可以是干代码。传统合约是湿代码,智能合约大多是干代码。 Secure property titlesdomain name system 大多为干代码。

令人惊讶的是,“ 大多为干代码的 ” 也经常拥有湿软部分。例如,智能合约可以使用 dialogs 将自身 nature 传达给用户,允许用户至少输入一些参数,进行菜单选择等。这些是认知通道,用以转化湿代码和干代码(  These are cognitive channels that translate between wet code and dry code )。同样,domain name system 中的 human-readable name 是湿代码,商标法是湿代码( 适用于 domain names 的那种湿代码)。网络钓鱼( Phishing )是通过使用含糊湿代码( ambiguous wet code ),对认知通道的一种攻击,这可能是干代码编程员很难处理它的原因。

干代码和湿代码的语法属性( syntactic properties )通常非常相似 - 例如,人类和计算机语言通常可以通过 pushdown automata 解析为 context-free grammars 。但它们的语义内容( semantic content )通常有根本不同,并由于各种通常神秘的原因,对于计算机而言,湿代码的语义内容通常不可理解。如果我们有足够好的人类语义理论( theories of human semantics ),我们可以将这些理论编入计算机,然后,计算机像大脑一样进行理解。但在大多数领域,我们没有这些理论,所以我们基本上无法编程计算机来模拟人类。我相信,这些谜团主要是由于,相比最近计算机的稚拙设计,大脑的高度进化本质,特别是计算机在良好传感器( good sensors )方面的特有缺乏( 即使是跟 Helen Keller 进行对比,计算机仍然被剥夺去更多得多的感知力,Helen Keller 有非常丰富有用的触觉),以及相对无能从自然和社会环境中学习。计算机收集不同类型信息的能力,例如通过概念隐喻( conceptual metaphor ),也相对不发达。

随着计算机变得“更智能”,干代码(非常缓慢地)开始做更多之前只由湿代码完成的工作。一旦它成功地模拟湿代码,干代码很快就会在很多方面超越湿代码;例如,目前,干代码做简单算术的速度,比普通人快数十亿倍。如智能合约概念所暗示,从湿代码到干代码的过程,有许多富有成效的类比( there are many fruitful analogies to be made from wet code to dry code ),但我们必须牢记根本不同的语义,每种语义的优缺点,以及彼此需要交互以解决实际问题。

我不认为有一种人工智能 " magic bullet " 理论将会揭开语义谜团( semantic mysteries ),让计算机一举获得智能。我不认为计算机有一天会神秘地“醒来”,实现某种魔术般的转换,从 zombie 转换到 qualia (在这方面,我基本同意 Daniel Dennett 的观点)。

相反,我们将继续致力于将人类信息正规化( chip away at formalizing human intelligence ),一次实现几个“bits”,同时,将永远不会达到这样的一个“奇点”——我们突然醒悟过来,意识到计算机已经超越了我们( will never reach a "singularity" where all of a sudden we one day way wake up and realize computers have surpassed us )。

相反,我们学习如何教计算机去发挥某种特殊的狭义能力 ,这种“特殊狭义能力”将有无数“微观失控”( there will be numerous "micro-runaways" for particular narrow abilities that we learn how to teach computers to do ),比如在上个世纪左右,在基本算术方面,计算机相对人类的巨大优势。

计算机和人类将持续共同进化——计算机将取得更快进步,但远远达不到“奇点”的那个灾难预言,除非文明的大部分已经是一个滚动奇点( except to the extent that much of civilization is already a rolling singularity )。例如,人们通常无法预测,市场下一步会发生什么,或者从长远来看,哪些新 startups 会成功。

原文:http://unenumerated.blogspot.com/2006/11/wet-code-and-dry.html
作者:Nick Szabo
编译:Altynai热爱
校对:东林