【CSDN 编者按】程序员如何写出一部有充足理论依据的硬核科幻小说?从业二十五年的IT老兵,同时也是备受欢迎的科幻小说作者白丁,或许能给出答案。其代表作《云球》讲述的不仅是一个关于计算机系统的故事,现在看来也是一种元宇宙的模型。《新程序员004》带我们走进白丁别样的程序人生,去探索程序员用笔构建出来的新世界。
作者 | 何苗 责编 | 张红月
出品 | 《新程序员》编辑部
程序员如何写出一部有充足理论依据的硬核科幻小说?从业二十五年的IT老兵,同时也是备受欢迎的科幻小说作者白丁,或许能给出答案。其代表作《云球》讲述的不仅是一个关于计算机系统的故事,现在看来也是一种元宇宙的模型。让我们走进白丁别样的程序人生,去探索程序员用笔构建出来的新世界。
白丁,一位从业二十五年的IT老兵,也是第一代做金融IT系统的工程师。从邮电部下属的设计院工程师到多家外资企业中国区副总裁、总经理,再到上市公司副总裁。他在深耕之下成果颇丰。现在,很多人从硬核科幻小说《云球》开始重新认识了他。
白丁大学时期就开始学习计算机,从同济大学计算机系毕业后,成为了一名软件工程师。写程序二十多年,他的热爱未减,一旦开始写程序就非常投入,在没有“996”的时代,他的工作时长也远不止于此。白丁认为写程序很有趣,也很辛苦,相较而言写书的创造性更多一些。写作同样有些痛苦无法避免,比如偶尔会没有灵感。直到现在,遇到这样的状态,白丁的建议都是一定要等,绝不能“为赋新词强说愁”。很多人年轻时都有过作家梦,大学期间白丁就很喜欢读书写作,那时他总梦想去写小说或其他东西。
2018年,机缘巧合之下白丁重新拾起了年轻时的梦想,投身写作,开始创作《云球》。
《云球》讲述了一个什么样的故事?在未来,某科学院下属有个地球演化研究所,这里的人们为了研究地球演化的过程,搭建了一个计算机系统。早期这是个物理世界,但由于这套系统建设得非常好,不但成功进行了地球的演化,还孕育出了生命。同时,在科学院下属的另一个研究所,大家发现了人类意识的独立载体“意识场”,这是一种物理场。于是,在一个计算机的虚拟世界中,逐渐有了人,有了其他生命,形成生物圈,也有了意识场的存在。人们发现,虚拟世界的人能够借助量子计算机产生意识,所有的生命都有意识。《云球》借此探讨了人类意识和躯体的可分离性。在这样的环境下,社会各界随着科技发展,内与外冲突不断,故事跌宕起伏。
对于《云球》,白丁最初并没有一个完整的写作计划,他一直认为写小说或创作其他文艺作品,是个厚积薄发的过程,当经历足够多,心里自然有很多感触,而写作就是将这些积累自然流露的过程。读过《云球》的人会发现,它不仅是科幻故事,还对很多人生、社会、历史、哲学的问题展开了探讨。
邹欣:《云球》在一定程度上探讨了人类意识和躯体的可分离性,很多心理学书籍也都讲到自我感知,术语叫作Self-Cognition,正因为有自我感知,人类会思考自己是否生活在真实世界中。在《云球》的虚拟世界中,虚拟人类拥有意识后,会质疑自己的存在吗?
白丁 :意识场的发现涉及一个很古老的哲学问题,很多哲学家或科学家都研究过,那就是意识和躯体的可分离性。意识和躯体到底是一体还是二元的?这是个争论已久的问题。《云球》中设定意识和躯体是可以分离的。意识场的体现需要一个物理载体,它可以是现实世界中的生命,也可以是计算机构建的虚拟生命。《云球》的计算机系统划分出不同的计算单元,这样的计算单元逐渐演化成封闭的脑单元,类似于人的大脑,《云球》中意识场就绑定在这些脑单元上。意识场绑定的是计算机脑单元或真实大脑组织,其结果的呈现是一样的。
邹欣 :有个经典的哲学悖论叫“缸中大脑”,它假设有个疯狂的科学家将你的大脑从体内取出,放在某种生命维持液体中,并为大脑插上电极,连接到一台能产生图像和感官信号的电脑上,这台电脑可以模拟你对世界的全部体验。在现实世界中,我们接触世界的感觉信息其实也都是大脑处理过的,那么我们有办法察觉到自己是否存在于一个真实的世界中吗?《云球》中有这类讨论吗?
白丁 :理论上来讲,《云球》和“缸中大脑”不太一样,“缸中大脑”的大脑存在于现实世界,而《云球》中的意识场是一种物理场,依赖于真实大脑或计算机脑单元而产生、存在。如果大家关注生物学或医学的最新进展,就会发现人类认为“我的感知是真实的”并不完全正确。纯粹从科学的角度来讲,人的感知可以说是伪造的。
举个简单的例子,这个世界上其实并不存在颜色,但为什么我们能看到五颜六色?理科生应该了解,“五颜六色”的背后是因为光波频率不同。大脑并不会直接将光的频率或波长传达给我们,而是把最原始的Raw Data(原始数据)转换成了更容易理解的颜色。声音的存在也是类似的,声音的原始数据来自于机械波,但为了便于人类理解,大脑将它转化成了声音,因为人类感受不到Raw Data。
邹欣:文艺界有种说法,一旦你创造出某个人物,他就可以自己“活下去”。即兴表演这种艺术训练方式也在强调创作者不要预设立场,这是为什么?
**白丁:**不要预设立场在创作的过程中特别重要,这一点与我以前写程序很不一样。故事的发展很多时候不是预设的,但程序是一开始就预设的,一般程序员会在初期知道自己要干什么,满足什么样的用户需求,再根据总体设计把它写出来。但写小说不是,创作者需要去体会,在某个场景里主人公可能会发生什么样的故事。因此作品一旦被作者创作出来,它就是一个独立的存在,不同的读者可以理解到不同的东西。
《云球》完成后,网上很多读者和我交流过,不同的人理解到的东西完全不一样,甚至可能是相反的。因为写程序是个追求确定性的过程,但创作小说和其他文艺作品客观上是个非常不确定的过程。每个人都会将自己的想象映射在作品中,读者在阅读的过程中也会将自己的人生体验映射在作品中,因此他们产生的感受与作者想表达的可能并不一样。
我拒绝成为一个签约作者,一方面是我不希望有最后期限,另一方面也是不希望在写作初期预设立场。可能责编会建议我根据读者的需求行文,但我不大愿意妥协。在我看来,这其实是两种不同创作思路的体现。
邹欣:就像我们熟悉的美剧《权力的游戏》,作家还没写完,电视剧还赶着拍,最终创作偏离了作家的原意导致电视剧烂尾,很是可惜。
白丁:《权力的游戏》被拍成电视后,作者的大脑已经被扰乱了。就像程序员写程序时,原本顺着思路写得正欢,忽然来了好几个产品经理给他提意见,很快就会头脑发昏写不下去。写小说也是同样的。
签约与不签约写作,其实代表着两种不同的创作方式,没有好坏之分。一种写法是由作者心中的故事而生,在作者笔下自由发展,更多的是作者自由地表达自己。另外一种写法是为了用户需求而写,用户想看什么,作者就创作什么。“漫威宇宙”我认为是很典型的研究用户需求后创作出来的IP。这类商业化很强的IP对用户需求有完整的调研和把握,什么会破坏增强用户感知,他们有很深入的研究。
邹欣:这让我想起一句话:Designed by committee(委员会的设计)。我曾在微软工作多年,他们的委员会就很强。微软很多产品早期不一定很强,但依靠强大的委员会不断研究用户需求、改进产品,让产品通常在第三版的时候能追上竞争对手。但委员会设计也有个弱点,它会抹杀掉任何其他的想法,永远只为满足大部分用户的需要而存在。
白丁: 在这方面我也深有感触。我在BEA工作多年,负责交易中间件到应用服务器方面的工作,我和同事们也是最早将它们引进国内的一批人。服务ToB用户多年,我虽然不是committee的成员,但经常需要将用户的需求反馈给committee,并向工程师提需求。在此过程中,我们一方面推动了开发人员的研发工作,另外一方面也束缚了他们。这是一把双刃剑。
邹欣: 非常理解。从前我参与新版Windows开发工作时,我们想推荐用户使用最新版的浏览器。日本某个用户表示,自己刚在公司全面推广IE6浏览器,非常不想改变。我才了解,用户和工程师对产品的看法并不一样。工程师认为,我们得用最新的技术,用户则认为我只是将它作为一个工具,所有人刚刚培训好,各种流程也契合,不要随便改,最好界面也不要动。企业的核心任务是做好自己的生产,而不是不断升级别人的软件。
白丁: 我当年有个很看重的大客户,为了说服他们升级系统,也做了很久的思想工作。他们的系统已经用了三十年,好多年代码都没改过,还是用古老的COBOL语言写的。客户则认为尽管系统很旧了,但自己对系统可能出现的问题一清二楚,该怎么处理也很有经验,现在升级会出现什么新问题以及该怎么应对都是未知的。从业务角度来讲,追求稳定是他们的需求。不同的用户需求不一样,不同的读者喜欢的东西也不一样。
邹欣:在工程界外的人会觉得,编程很神奇,能创造出新东西,你怎么看待外界神秘化程序员这件事?
白丁 :我以前经常跟员工讲,大家不要神秘化自己的工作。其实程序员的工作可能只有5%的部分非常令人激动,95%的工作其实都在按部就班。
邹欣 :软件工程的奠基人之一瓦茨·汉弗雷总结说,软件领域可以分为两方面:一方面是技艺创新的大爆发;而另一方面是坚持不懈的工程工作,包括软件的改善、维护和测试等,这占90%以上的比例。按部就班其实也是行业趋于成熟的表现,好比一个患者需要做手术,他当然希望自己的问题于医生而言很常见,不是疑难杂症,最好是主刀医生按部就班就可以搞定,而不需要做高风险的创新探索。不同的行业成熟后,按部就班的情况比较常见。但大家读小说,尤其是读虚构小说还是期待看到创意的部分。如果写程序95%是按部就班,5%需要创意,你觉得写小说创意所占的比例也是如此吗?
白丁 :写小说有所不同,不同的部分正是作者对世界的理解,或是和情感相关联,每个人都有自己独特的体验。我个人认为写小说的创意可能只占30%,70%是个人感受的表达。有些人可能觉得小说,特别是科幻小说就应该90%都是创意,但我觉得那是点子文学,我不太喜欢。一本书里更多应该是作者的感受、想法,以及对世界和对社会的理解。
邹欣:写小说、写程序可能还会遇见另一种状况,大多数时间你都在埋头敲键盘,这个过程很枯燥,该如何克服这个过程中的厌烦心态?
白丁 :这个心态很常见,无论写小说、写程序,或做任何其他工作都需要有个大前提:你对阶段性的结果有强烈的渴望。有渴望做支撑,心态上的困难都可以克服。
邹欣 :学生群体往往比较容易对未来感到迷茫。我曾作为一位外援老师教课,给学生布置的作业量比较大,需求比较多,他们会抱怨。当我想教给他们比较有深度的基础知识时,他们也会抱怨。很多人不断找借口躲避困难的事情。你怎么看这种情况?
白丁 :你说的状况我深有体会。我自认为学习能力很强,但我在工作中学到的比我上学时要多得多。为什么?工作时我有目标,但学习时我没有特别明确的目标,缺乏渴望,因此我的学习效果并不好。我认为对大家而言,做事的第一要素就是建立某种渴望。
邹欣 :CSDN平台大部分用户都是程序员,在校学生比例达30%左右,假设你再回到大学时代,还会选择计算机专业吗?你的学习方法是否会发生变化?
白丁 :我1988年考入同济大学计算机系,那时条件比较差。在大学时期我浪费了很多时间,因为我很难建立一种强烈的学习渴望,目标感很弱。如果再去读大学,我一定会想办法参与更多具体的事,帮助我建立目标感,建立自己的渴望,学习效果应该会好很多。
我觉得计算机行业有个非常大的乐趣,你可以清晰地感知到在写程序的过程中,它的进程非常明确,刺激反馈周期也相对较短。我害怕去做那些需要很长时间才能看到反馈的事情,如果做一件事情必须坚持十年才有可能看到巨大的反馈,并且在这期间几乎没有其他反馈,对我而言很恐怖。而写程序,哪怕写的是登录、注册这些简单的程序,我依然可以很快获得成就感,这一点很重要。
本周下单《新程序员001-004》,即有机会获取CSDN定制T恤1件!