中青在线版权与免责声明

中国青年报手机版

中国青年报手机版二维码

中国青年报-中青在线官方微信

中国青年报-中青在线官方微信平台

2014年02月19日 星期三
中青在线

科幻大片中的代码并不“高大上”

编译 张宝钰 《 青年参考 》( 2014年02月19日   38 版)

    《钢铁侠》剧照

    1980年华纳兄弟《超人II》剧照

    如果科幻迷知道,电影《极乐世界》中重启空间站的密码一点都不“高大上”,那些数据其实来自英特尔处理器的用户手册,会不会有些失望?

    英国程序员约翰·格拉厄姆·卡明最近在观看《极乐世界》时,发现了一件怪事:电影里的主人公在与一台未来新型计算机交流时,忽然屏幕上闪过一连串熟悉的代码。“我截了张图,查了一下,”他告诉美国《连线》杂志,“原来这些代码出自一本英特尔的使用手册。”

    随后,卡明把这一发现公布在了推特上,帖子即刻被转发了500多次。第二天,他又创建了一个微博客,专门用来考据那些出现在科幻大片、电视剧中的代码来源和含义。“微博客创建才一星期,就有了一万两千多名关注者,”卡明说,“每天我还会收到几百条留言和数不清的投稿。”

    他因此有了更多的发现。“出现在电影、电视剧里的代码,很多都是复制粘贴来的,来源往往不可靠。它们中有的照搬了维基百科,有的直接从科技网站Engadget上复制下来,还有的出自加拿大一个银行,或者干脆瞎编一段放在了屏幕上”。

    “比如1994年版本的《燃眉追击》,里面的代码看起来还像回事儿,而2011版的《霹雳娇娃》,简直是程序员开的玩笑,里面的代码就是个破解数独游戏的软件!”

    “我认为这是导演的事儿,时间太紧张,限制了布景师,”卡明说,“我收到过两封布景师的邮件,说的就是这个。问题很简单,他们根本没时间去照顾这些细节。比方说每周播出一集的《犯罪现场调查:纽约》,有一次竟然使用了基本的HTML代码。”

    不过,有些导演和布景师是真的考虑过这个问题。大片《钢铁侠》里,就使用了正规的C源代码,虽然看起来有些拙劣。鬼才导演大卫·芬奇做得也不错,他的作品《龙文身的女孩》里的主角莉斯·莎兰德和《社交网络》中的马克·扎克伯格,这两位在片中所使用的程序语言都与他们想达成的目的吻合。莉斯至少懂得结构化查询语言(SQL),而扎克伯格使用的代码更为合理,就像是专门为这部电影打造的。

    “我觉得,上世纪90年代前期发生过重大变革,”卡明认为,“互联网技术迅速发展,开放源代码变得流行起来,制作人找来现成的代码复制、粘贴就可以了。但是在那之前,电影电视剧里用到的代码似乎要专门去写才行,甚至是照着杂志手动输入进去的。”

    “不信吗?”卡明披露,“电影《终结者》里,阿诺·施瓦辛格视角镜头里出现的代码,就出自《Nibble》杂志。”

    据好莱坞一名美工师说,代码准确性相差如此悬殊,原因有很多。

    “代码的‘质量’取决于制作周期、财政预算以及我拿到脚本的时间,还有代码镜头的时间长短。”为《华尔街之狼》、《纸牌屋》和《杀手之王》等电影电视剧制作过代码的动态影像师鲍勃·路德曼这样解释,“大家如果知道这些代码其实是花不到8个小时赶制出来的,我想很多人都会觉得惊讶。”

    如果你有兴趣做代码考据,卡明的建议是,做个程序员会比较有用,那样你会熟悉很多类编程语言。

    “因为程序员一眼就能认出是哪种代码,知道这个代码用的是什么语言、这种语言的特点、该怎样搜索等。”他说,“或者,你干脆截个图发给一个程序员,让他替你考据。”

    □美国《连线》杂志网站

 

科幻大片中的代码并不“高大上”
别做数字时代的“讨厌鬼”