关于脚本 / On Script

本文于 2022 年 4 月首发在郝海龙兄出品的电子通讯「林中来信」(laixin.one),欢迎并推荐朋友们前往订阅。


绪言

「理论关键词」类的书我读过两本,分别是 Benjamin Peters 编辑的 Digital Keywords (2016)和W. J. T. Mitchell 和 Mark B. N. Hansen 编写的 Critical Terms for Media Studies(《媒介研究批评术语集》)。这两本书都属于科技、媒介理论范畴,邀请了不同的学者每人为一个关键词做理论阐述。稍微罗列一下其中提到的关键词,就不难看出这类书籍的有趣之处。科技、媒介理论的发展必然与新技术带来新范式相关,从一个词汇最早的词源和用法,到它被赋予技术上的涵义,再到新技术产生,它的涵义又从古早技术有所转变,都凝聚在这一个关键词的变迁里。所以只是浏览一遍目录,看到如「云」(Cloud)、「镜像」(Mirror)、「模拟」(Analog)、「硬件/软件/湿件」(Hardware/Software/Wetware)这样的词汇,就已让人浮想联翩。

像这样对一个概念进行生发的例子还有很多。《离线》杂志的单期专题比如「副本」、「共生」、「黑客」也采用了类似的做法。在《不可理论》播客单集《茫茫相似将万物勾连》中,我也曾对「模拟」(Analog )与「数字」(Digital)概念做过梳理。此外,我很喜爱的科技理论学者 Alexander Galloway 的博士论文就是围绕「协议」(Protocol)这个概念展开(后以 Protocol: How Control Exists after Decentralization 为题作为学术专著出版)。之后他又研究了「交互界面」(Interface)概念The Interface Effect, 2012)。而前面提到的播客单集灵感也正来自 Galloway 近年新开的一门研究生课程,内容主要围绕「analog」这个概念展开,讲到了「analog」的理论意义,并称当下是「analog」的黄金年代。类似地,还有 Seb Franklin 的专著 Control: Digitality as Cultural Logic,他梳理了从控制社会到风险社会的「控制」概念,不过全书更像文献综述,原创性较 Galloway 的书低了很多。

铺垫这么多,只想说明在探索科技概念、关键词的理论阐释过程中,颇有许多收获。这篇小文想谈的,则是最近蹦入我脑海,并未在上述案例中收录的另一词汇——script。

语言学中的  script

Script 一词来源于拉丁语 scriptum,名词,意为「something written」。同样的词根在拉丁语动词 scribere (to write)、名词 scriba(clerk)中也可以见到,是英文「抄写员」一词 scribe 或 scrivener 的词源。「写」的含义,自然是这个词或词根的核心。美国作家赫尔曼·麦尔维尔有作品 Bartleby, the Scrivener(《抄写员巴特比》);Scrivener 也是一个写作软件的名字,其特色是可以把零散的文字进行项目化、章节化的整合和管理。

语言学中,script 与某一语言、某一规则的形容词连用,表示该语言、规则的「字」(「字」的译法,是在 language  可译为「语」的前提下——script强调书面,language强调口说)。英文的一般性表述下,字(script)、全音素文字(alphabet)、文字(writing system)三个词汇经常被混同使用。但实际上,这几个概念之间有着微小差异,让我试着说明一下。

「全音素文字」是语言学上的译法,我们更熟悉的是「字母表」这个词。全音素文字或字母表是一套符号,每个符号与读音有对应关系。汉语拼音可能是最接近中文字母表的东西,但它只是注音符号,并不是原生中文,所以严格来说中文是没有字母的。但中文定然有「字」,也就是博大精深的汉字。

文字(writing system)与字(script)的区别是,文字是与特定语言绑定的,字则不是(从这个差异出发,或许与「字」对应,writing system可译作「文」)。一种语言可能有多种字,如日语有汉字、平假名、片假名三种「字」,但它们的组合排列是「日文」。一种字也可能被多个语言使用,如汉字在韩语、日语、韩语、越南语中也有使用;天城文(Devanagari script)在印地语、梵语、尼泊尔语中都有使用。不同的字之间,根据全球化后发展出的一系列规则,又可以有互相对应的关系,如常见的越南姓氏「Nguyen」,只是它的罗马字写法,在其他字中,它是「Nguyễn」、「阮」、「Won」、「완」……

Wikipedia 「Nguyễn」词条


这并非「Nguyễn」在不同语言中的翻译,而是「Nguyễn」在不同script中的写法。

因此 script 这个词的使用再合适不过了:它是出来的,也是用来写的;它遵循一定的造字规则:甲骨文具备「象形、会意、形声、指事、转注、假借」的造字法;韩语的Hangul,即「谚文」、「韩字」(한글/韓글),是由 10 个辅音、14 个元音构成的系统;上述的天城文符号,会体现元音和辅音发音方式、发音位置……

字,就是有规则的写法。

现代语境中的script

Script 在现代语境中最常见的意思是影视、戏剧、广播等作品的剧本、台本。也就是说,作品的最终表现形式并非是文字,而是影像、表演、声音等其他形式,但要有事先写好的、决定最终作品呈现的文字版本。日语里也使用「脚本」一词,编剧这个职业在日语中就是「脚本家」。Script对应的明明是「写」,「脚」的使用可能略显突兀。但实际上,诸如剧本、台本等词汇,都是在「脚本」之后衍生的新词。「脚本」一词的使用源自古代中国戏曲的「脚色」,也就是「角色」一词的前身。「脚」是支撑起舞台角色的根基,有「根本」之意。「根基」之意,或许能不完美地对应上英文中 script 的「权威、神圣」的引申义——大写的「The Scriptures」,特指《圣经》。

剧本的存在本身有着发号施令的作用,它是作品情节展开的依据、根基,是表演者需要执行、照做、倒背如流的命令般的存在。而生活中何尝没有套路和剧本,我们每个人都有社会角色,心理学中 script 的概念指的正是个体经受社会和文化环境影响所产生的对自己的社会角色认知。比如,对于很多年轻人来说,「年薪百万」或许就是种诱人的「ideal script」,而「off-script」常常是叛逆、不受约束的代名词。

回顾这些概念我们会发现,script 是一种权威力量,但同时它又抽象、无形。剧本不是最终的电影影像,却在影像诞生的过程中起到指导和控制作用;完美社会角色不是人们的真实生活,却形塑着生活中每个选择。不同形式之间、抽象和真实之间的空间和距离,让 script 本身具有张力:一方面它的根本意义让人采取的行动是「照办」,另一方面,也存在超出预期、即兴发挥、打破权威的可能性。

作为计算机术语的script

Script / 脚本,作为计算机术语,百度百科的定义是「使用一种特定的描述性语言,依据一定的格式编写的可执行文件」,维基百科的定义则是「是为了缩短传统的『编写、编译、链接、运行』(edit-compile-link-run)过程而创建的计算机编程语言」。知乎的问题「如何用通俗易懂的语言解释脚本(script)是什么?」的最高赞回答中,涛吴举了一个例子:

假设你经常从网上下东西,全都放在 D 盘那个叫做 downloads 的文件夹里。而你有分类的癖好,每周都要把下载下来的图片放到 pic 文件夹里,pdf 放到 book 文件夹里,mp3 和 wma 文件放到 music 文件夹里。手动分了一年之后你终于厌倦了,于是你打开记事本,写了以下的三行字:

copy /Y D:\download\*.jpg D:\pic\       

copy /Y D:\download\*.pdf D:\book\       

copy /Y D:\download\*.mp3 D:\music\       

然后把它存成一个叫做 cleanupdownload.bat 的文件。想起来的时候你就双击一下这个文件,然后就发现 download 里的三类文件都被拷到它们该去的地方了。这就是个非常简单的脚本。

或许用简单的语言来说,脚本就是「可执行的代码」(或如英文词典中所解释的那样:An automated series of instructions carried out in a specific order.)。和剧本有异曲同工之妙,同样是在一套有着特定规则的语言系统下(如JavaScript),把所书写的内容作为指令来执行。对比 .dat 和 .exe 的不同,也就是脚本和程序的不同,或许更加能够突出脚本的特性:简单,是一条一条的文字命令;可编辑,不像程序运行时看不到背后的代码;需要进行解释器进行「翻译」的过程让计算机明白指令内容。从实际使用的功能来看,使用者经常是出于减少自己重复工作的便利目的而使用脚本,就像涛吴举的例子那样。

英文技术圈中有个损人的词叫「skiddie」(即 script kiddie),指技术欠佳的黑客,只能用别人写好的脚本来进行破解和攻击操作。似乎在编程界,脚本处于鄙视链的绝对底端,是缺少技术含量的弱小分支。但恰恰由于它简便,不懂编程的小白也可以快速操作。比如,在公司内网抢月饼,需要不断重复点击某个特定按钮,这或许可以用数种甚至十几种编程语言来编写识别、操作等动作,但使用别人已经编好的「按键精灵」这类软件来实现最为简单。

脚本这种易于模仿人类操作的特性,使其在最需要此类操作的游戏玩家那里找到了一个神奇的位置。只要是游戏玩家,对游戏脚本基本不会陌生。在一些游戏里它属于开挂作弊,比如在王者荣耀和射击类游戏里,开脚本是对精准、快速操作的辅助。在另一些游戏中,脚本则是减少重复性操作的工具。我作为长年炉石传说玩家,遇到不少次对手是脚本的情况——卡牌游戏这种从类型上就比较容易让程序自动执行的游戏,从鼠标移动的规律程度、缺乏灵活性的出牌套路,很容易就能识别出对方不是真人。使用脚本,电脑自动出牌,玩家只需要挂机就能实现用快攻卡组上分,省去自己投入时间。这样来看,游戏脚本是吊诡的,因为它从本质上反游戏体验。就像电影解说类短视频让你不需要看电影,脚本则让你根本不需要玩游戏,或至少不需要训练游戏的技艺。所以别小看缺少技术含量的脚本,鄙视链底端的它偏偏是最能赚钱的小工具,或许也正是当下短视频时代在早期技术中就显现的映照。

结语

分析了语言、影视、计算机中的script,我们或许已能从中感受到它某些矛盾而又一语成谶的特质。在播客《不可理论》第39集《作者与文本》中,我曾分析过「文本」一词。从「花纹」而来的「文」,与从「树木」而来的「本」,构成了一对矛盾的意向:「文」杂乱、曲折、去中心化,「本」稳定、权威、中心化。在分析「analog」一词时,它的意义随着时代也有颠覆性的变化:相似/假 → 实体/物理世界的 → 复古/感受性的。在技术层面上,它一度代表着精准,又在更精密、便利的数字产品诞生后显得不精确、难用,现在又显得高档起来。或许分析概念的意义正是在此:概念的流变中产生了意义的矛盾和颠覆。Script代表着规则,不管是计算机编程里的规则,还是语言书写系统的构字、读音规则。复杂规则难以流传,最终总是傻瓜式的规则大量被运用。它符合权力中心化的统一诉求,也符合数字化发展的将规则抽象出来便于计算的趋势。

历史上,组字体系作为媒介和技术,是殖民扩张的重要工具。秦始皇统一汉字,并把汉字作为官方书写系统,随同度量衡、货币等单位的统一一并推广,都是集权的一环。克劳德·香农在信息论中将现代英文字母系统视为统计学系统,将空格视为「第27个字母」,不是作为分隔功用,而是像数字0或其他电信号一样是一段信息中的符码。它和那些遥远的、刻在龟背和岩壁上的象形符号大相径庭,已经成为高度数字化的存在。就像刘禾教授在 Critical Terms for Media StudiesWriting 一篇中提到的那样,数字时代的来临,也带来了书写的标准、同质化,某种意义上的巴别塔被建立起来。不管是中文还是其他的非字母标示语言系统,都找到了某种方式「转译」进现代英文的罗马字体系。就像我们现在用着标准键盘可以流畅地输入中文,使用网络工具可以快速地翻译外语,罗马字已超越语言,成为了信息论意义上大一统的代码体系(algorithmic system)。

又如《安娜·卡列妮娜》中那句经典的「幸福的家庭都是相似的,不幸的家庭各有各的不幸」,生活、人设的 ideal script 显得空洞,而痛苦及其他真切感受则是具体的。我们恰恰需要警惕就是脚本式的规则化,以及脚本在不断复制和大量使用过程中,它自身携带的将规则简单化和单一化的巨大驱力。这样看来,script / 脚本一词包含的数对矛盾关系合理起来:权威,却也让人想脱离权威(如表演中精彩的即兴;脱离正典的挪用;所谓的偏离正轨的人生);受控,也可以用以施加控制(它让人照做,人也可以利用它的简单、可编辑和可快速复制而让电脑照做)。在理解事物时不仅仅看表面,而是去找出它背后的「脚本」——就像结构主义人类学的纲领所在,它不仅与技术、社会结构的变革节奏相符,或许也书写着某种让人重蹈覆辙的命运基因。

参考资料与延伸阅读: