阅读记录

第拾壹章 上了贼船[2/2页]

电子生涯 范含

设置 ×

  • 阅读主题
  • 字体大小A-默认A+
  • 字体颜色
”的除了“我孙子”之外,还有“吾孙子”、“安孙子”、“安彦”等等。
      确实有个叫“我孙子”的日本人,到了中国就把名字改为“进”,这个名字很常见,不算什么。然后就在门口挂了一块名牌,这个习惯很常见,不算什么。当然了,国人很怒,所以所有的书面口头均称呼其为“我孙子”,就是不提名字。这个故事在日语专业的圈子内当成笑话讲,很快就流传到了圈外,范含在学校里面就听说了。
      现在拿过来以其人之道还治其人之身,万一日本人也照猫画虎,开口闭口都是“我孙子桑”,“我孙子样”,“我孙子殿”之类的,岂不是弄巧成拙?还是先把这条路堵死再说。
      “您还是称呼我的本名吧,”范含一指名片,“”喏,就是上面写的这个。
      “好吧,”日本人说,“我就称呼您‘韩先生了。”
      “咦?”范含说,“应该是‘范先生吧?我叫范含。”
      “范范?”日本人说。
      “范!含!”范含又重复一遍。
      “含含?”日本人说。
      范含没说话,仔细琢磨了一下,日本人确实不是故意的。
      日语里面“f”和“h”都用“は”行假名翻译,根本分不出来。
      “您的汉语不是很好么?”范含问。
      “只是一般好。”
      “那好吧,”范含说,“我说一句绕口令,您重复一遍。”
      “行,”日本人说,“您说吧。”
      “红凤凰,粉凤凰,粉红凤凰,红粉凤凰。”范含严肃地说。
      “嚯嚯嚯、嚯嚯嚯、嚯嚯嚯嚯、嚯嚯嚯嚯。”日本人严肃的重复。
      蓝蓝眦着牙,拼命忍住才没笑出声来。
      日本人的业务由公司负责,范含不管,当然,美国政府要管,看看游戏机是不是属于限制出口一类的东西。
      玩笑开完,彼此都觉得没什么意思,寒暄一会儿日本人就告辞了。
      范含立马把门口牌子摘下来砸了,这种东西是双刃剑。
      
      游戏机销售形势一片大好,不是小好。
      每台机器都能当月回本——平均每天三十几美元总能做得到吧。
      除了范含自己,别人都忙的团团转,247的连续生产。
      反馈意见开始有了,主要都是投诉游戏平衡性的问题。
      有些奖励的分数太高,以至于游戏成了前面随意乱堆比拼速度,看谁的特殊方块先出来。
      修改的时候就头疼了,全部代码都是用汇编写的,还经过了狠狠的优化。
      范含可没有这份耐心去慢慢调试,好在现在自己是老板,不用亲自动手下厨就是了。
      老这样下去也不是个事儿,随着游戏规模的加大,用汇编写程序会越来越让人难以忍受。
      范含开始怀念二十一世纪那些幸福的程序员们。
      后来有人问蓝蓝,说你写的访谈录里面范含讲的“要有c”!这句话显得太狂了。
      蓝蓝说是,并且承认,自己确实对现实做了一点艺术加工。艺术嘛,总是允许一定程度的夸张的。
      实际上,范含当年说的原话是:“要有c……那该多好啊!”
      不过除了这一点,蓝蓝后面写的东西就全部都是事实了,的的确确是立刻“就有了c”,没有一点十月怀胎的痛苦。
      范含以前确实写过编译器,还写过几个解释器,以及一大堆字符串分析实用程序。
      只不过,这些东西都不是手写的,或者说,除了为了应用而不得不写的一堆例行公事之外,范含并没有做一点实质上的工作。
      不光范含,几乎所有程序员,除了专门写开发工具的那些人之外,几乎都没有自己手写过类似的东西。
      原因就是由于两个著名的实用工具:lex和ya。
      lex(lexicanalyzergenerator,词法分析生成器)是个产生处理词法分析的代码的工具,而ya(yetanotheileiler,另一个编译器的编译器)是个生成编译程序的工具。
      其最终输出是用c写的源代码,用c编译器编译后就生成了自己想要的编译器。
      这两个工具如此优秀,以至于老一辈资产阶级编译器开发者到如今也不得不感慨“人心不古”。
      范含用的差不多都是自由的版本:“flex”和“bison”,都是gnu项目的一部分。只有很早的时候用过一个名叫“tly”的软件包。顾名思义,这个“tly”就是用于“turboascal”的“lex”和“ya”,用ascal语言做后端,所以非常好用。当年的dos环境下,没有一种开发环境能比turboascal编译速度更快,生成代码效率更高的了,包括各种c编译器在内。
      遗憾的是,到了目前这种地步,这些东西根本就派不上用场。交叉编译就不用说了,无论找到哪里也没有c,除了凭空写,没有“移植”的可能。单机“自举”也不成,那是要有前提的,本来无一物,如何“举起”?
      活人总不会被尿憋死,自己写不出来不见的别人也写不出来。
      范含很快整理出来c语言的语法要点,除去了标准库和预编译指令的部分。
      然后,一份软件发展史上重要文件诞生了。
      这就是范含来到美国之后的第一封正式信件:《致奥尔森》。
      信中论述了范含对于当前迫切需要新型编程语言产生的具体原因的分析:目前所实现的所有编程语言两极分化严重。处于软件开发最底层的汇编语言,实际上是机器指令的便利翻版,是为了满足电子工程师处理硬件设计需要的产物;处于软件开发最顶层的各种高级语言,如basic、fortran、lis等,实际上是程序逻辑的数学抽象,是为了软件用户处理具体业务需要的产物。处于这两个极端中间的系统开发人员,并没有得到任何的实质上的技术支持。忽视了这一部分人民群众的利益,正是我们当前软件开发工作陷入困境的根本原因。
      信中阐明了范含对于新型编程语言的构想:足够小,小到不能再小。语言核心仅仅实现必要的语法支持,任何具体的功能都由外部的“库函数”实现。
      信中罗列了范含设计新型编程语言的具体示例:就是照抄ansic的标准罢了。
      信中提出了范含对于具体实现新型编程语言的设想:先写一个翻译器,把c源代码逐字逐句翻译成汇编源代码,外部的库函数引入可以用插入当前半公开的一些可重用汇编源代码代替。
      奥尔森览信大喜,传示麾下诸经理,遂抽调精兵强将试之。
      范含寄出信之后,却一直不放心。
      信里把“新型编程语言”的优点说了个遍,缺点却一字不提。对于这个年代纯粹靠个人发挥的程序员们来说,鸟枪换炮之后,强势放大了若干倍那是肯定的,缺陷会不会也放大了若干倍,甚至更多?
      范含写信的时候就在犹豫,要不要对c语言略作处理?尤其是那个“goto”语句,用不好真是后患无穷。
      一般来说,任何一个当代学生,在学习c语言的时候,老师都会谆谆教导:goto不能乱用啊!并且许多教材和参考书都直截了当的规定了其用法:仅用于跳出深层嵌套循环或者跳到函数末尾等等。
      因为这个原因,范含甚至考虑将这个关键字改为“escaeto”,明显的表达其用法。
      后来还是不了了之,冠冕堂皇的理由是保持经典的完整,尊重历史的选择及淘汰。上不得台面的理由就更简单了:自己的
      o里面有那么多地c代码,万一真改了,岂不是给自己添乱?
      作为一个有着良好职业道德的程序员,范含终于忍受不住良心的谴责了。
      于是,另一份软件发展史上重要文件诞生了。
      这就是范含来到美国之后的第二封正式信件:《再致奥尔森》。
      范含知道,1966年开了个会,对于goto语句带来的危害已经讨论得很清楚了,就是还没有得到一个清晰的结论而已。所以,范含在这封信里面,干脆利索的提出了“软件工程”得说法。
      另外,生怕奥尔森没有领会到这个划时代思想的重要意义。信中特别展开说明了一番。
      信中指出:我们当前的计算机行业正处于软件工程初级阶段,当前的主要矛盾就是计算机用户日益增长的软件需求和开发人员落后的生产力之间的矛盾。这个主要矛盾贯穿于整个软件工程初级阶段和软件开发的各个方面。
      信中指出:软件工程理论是在软件生产逐渐取代硬件生产成为业界难题的情况下形成和发展起来的,是在总结我们软件开发的教训经验中建立起来的。软件工程理论抓住了“什么是软件开发,怎样进行软件开发”这一根本问题,深刻揭露了软件生产的本质,把对软件的认识提高到了新的高度。
      信中指出:所谓软件工程理论,就是坚持用科学、客观的方法观察业界,对业界其他计算机公司的成败、发达公司和发展中公司经营的态势和矛盾进行正确分析,做出明智判断。
      信中还指出了其他许多精辟论点,看得奥尔森又飞过来一趟,一夜长谈之后,又飞回去了。
      奥尔森建议范含将这两封信公开发表,范含同意了,并且授权奥尔森可以任意修改,以适合媒体所需稿件的形式。
      本来范含觉得,像奥尔森这样内行人,处理这些问题应当极为妥当。没想到,这个感觉成了范含人生中少有的几次判断失误之一。
      奥尔森把两封信合并到了一起,原文几乎没删掉任何东西,相反还添加了许多东西,篇幅扩大了一倍,题目被改为《范含和奥尔森致ib》。
      奥尔森在文章里面大肆嘲讽ib为syste360大型机所开发操作系统的过程,范含在信中举的例子被夸张到了不知道什么程度。像“焦油坑”之类的比喻都被拿来大肆炒作,ib在奥尔森的笔下成了行动粗笨,头脑简单,反应迟钝,蹲在焦油坑旁边等死的史前怪兽。
      范含见报大惊,这下子可被推到了ib的对立面去了。
      一不留神,上了贼船,再想下来可就来不行了。
      不过ib的反应却并不激烈,可能想表现一下自己的风度,也可能是根本对范含不屑一顾。
      不管怎么样,这个松懈的态度使得整个七十年代,ib处处被动挨打,面对范含和奥尔森联军咄咄逼人的攻势几乎毫无还手之力。
      “上当了,操!”ib某高级官员退休后就此事接受采访的时候说,“那会儿我们都以为丫就是一作家!”
      
      (第拾壹章完)
      
      注:
      (昨天晚上写完全章之后,已经到了今天了。实在太困了,注释内容就没来及写。)
      0,感谢各位读者的参与!很遗憾,这次没有人猜中。实际上,作者出完题就后悔了,如果把题目改成猜绕口令的内容,恐怕会有意思的多。区分“f”和“h”的绕口令实在不少,读者们群策群力,估计书评区会极为热闹……呵呵。
      现在看起来,那个日本名字的典故实在是鸡肋,删掉了对文章一点影响也没有。还是文中那句话,这种东西是双刃剑。己所不欲,勿施于人。
      对于绕口令多说几句。
      书友“宁死也不凡”指出:“日语里有fu无hu,f音都以fu打头再加别的元音。所以那个顺口溜读出来应该是冯冯黄,黄冯黄……”本来事实确实应该是这样。
      语音学界对于音素的区分一向有“宽式”和“严式”两种观点。
      严式观点对于音素中任意一点微小的区别都十分在意。用这种观点看来,日语标准音的[u],实际上是咧着嘴的,音标应该写成“倒着的”。严式观点在本世纪初占据上风。
      但是近几十年来,越来越多的人认识到,没有必要如此吹毛求疵。无论这个[u]是噘嘴还是咧嘴,对我们的听说读写都不会产生任何误会。这种观点就是“宽式”,目前已经成为学界主流。
      另外,更进一步的理论也已经产生,就是忽略音素的差别,提出了“音位”的观点。所谓音位,就是在一种语音体系里面的位置,这个位置可能由于方言或历史的原因,由几种相近甚至截然不同的音素共同占据。
      日语里面的“f”和“h”就是这样,说“呼呼”和“夫夫”对于日本人来说是一回事。日本人并不是不能区分这两个音素,而是不需要去区分。今天,在绝大多数人都不是种族主义者的今天,应该很容易就理解,日本人分不清“f”和“h”的区别不是生理的原因,而是心理的原因。
      我国南方人学习普通话有个普通的困难,就是区分“l”和“n”。在许多南部方言中,这两个音素就占据了一个音位,平时一向不作处理。所以到了学习普通话的场合,必须区分开的时候,一时难以习惯。但是经过训练之后,往往效果不错。这和日本人的“f”、“h”是一样的道理。既然涉及了国人,我想即便是极少数种族主义者也不得不承认,这种“口吃”现象与民族无关。
      建国之初,在大力推广普通话的背景之下,有关部门印了一本小册子,专门针对各地方言的特点,推出了特别编配的绕口令。说不好绕口令很正常,因为说不好才会去说呢,就像音乐课上的发音练习一样,不存在任何嘲笑的意义。……同样,本章里主角让日本人说绕口令,仅仅是表达对于日本人念不好自己的名字的不满而已。
      不过,书友“宁死也不凡”的意见并没有错,尤其是对于最近的日本人而言。
      除了“fu”之外,作者再举另一个例子。
      以前日本人对于英文“tea”一词,用片假名译为“チーム”,发音为“七母”。这绝对是上述音位理论的结果,对于英国人到底念“七”还是念“踢”,日本人是不管的。越到后来,改译为“ティーム”的就越多。这说明,在一部分睁眼看世界的日本人的带动下,越来越多的人认识到,英语并不是为了日本才存在的。从另一个角度看,这种变化也许是日本人高举理论的伟大旗帜,深入领会“实事求是”重要思想的具体表现。
      1,著名街机模拟器“cals”可以说十分完美,很好的满足了当年因为经济原因没能打遍街机游戏的作者怀旧的yu望。系统开销很小,基本上只要现在还没扔的电脑就能跑起来。以前在宿舍里面,作者和同学们就凭着一台32兆内存,杂牌cu(性能相当于奔腾166)的机器打完了里面附带的所有ro,画面声音相当流畅。
      这个模拟器很早就已经停止开发了,传说是几个开发者被举报,在警方上门逮捕的时候惊慌失措,失手误杀了一名警察。后来在法所有人都承诺今后不再从事任何模拟器相关的工作。
      少了cals确实是非常遗憾,不过好在现在我们还有“a”,包罗万象的街机模拟器,一个从项目管理到法律支持都非常完美的开源项目。……有兴趣的朋友可以自己去找。
      2,关于lex和ya,有兴趣的朋友可以去参考一本oreilly的书《lexya,sendedition》,奥莱利中国公司已经推出了中文版。
      关于“编译原理”,以前是计算机专业的必修课,作者是数学专业,没上过。不过听说后来的科班也不上了,不光国内,美国也是这样。这说明当前的编译技术已经成熟,成了专门化的学问(就像数论一样),需要研究的人去研究就成了。另一方面也说明,编译器辅助工具的水平,已经到了傻瓜化的地步,任何需要的人只要看看帮助,就能快速产生正常工作的分析代码。
      3,关于ib的著名大型机系统,“syste360”,书友“异域狂想者”已经在书评区替作者写了注释,这里不再重复。不过,正是由于在开发这个机种的操作系统的时候,ib陷入了“焦油坑”,才导致后来业界(不仅仅是ib)痛定思痛,把软件开发的工作重点转移到了“软件工程”上面来。
      4,最后,提一下开头“引语”的问题。
      在汉语里面,对于“神”、“仙”、“圣”、“贤”的区分是很清楚的。
      所谓“贤”,基本上德高望重的人都有资格当。
      所谓“圣”,就算是很高的评价了。孔子也仅仅被称为“圣人”,后来的那些“圣人”也基本上是有资格配享孔庙同吃冷猪肉的人。
      所谓“仙”,那是道家的东西,也是从凡人修炼而成的。另外,“佛”也是凡人,一旦觉悟了,谁都能成佛。
      所谓“神”,就是“子不语怪力乱神”的“神”,通常是拥有超自然能力的家伙。
      东方(尤其是中国)的宗教哲学都是现实主义的,不会太邪乎。所以有人说,中国只有原始宗教(后来流传民间的各种崇拜以及衍生的信仰也没有超越原始宗教的范畴),从来就没有形成真正意义上的宗教。……其他地方则不然。
      作者一直没搞清为什么“holybible”会被翻译成“圣经”?按照汉语的理解,翻译成“神经”才名副其实。或者当时的华人根本就不认为洋来的和尚会比儒家学说高出一筹,给予孔子的待遇已经是很高了。
      有些事情不能光靠嘴皮子说,我说世界是我造的就真是我造的么?相比之下,东方的信仰反而有实事求是的精神,该是什么就是什么,从不拿邪乎的东西故意糊弄愚夫愚妇。想当然的觉得一个大“神”应当很伟大并顶礼膜拜之是很轻率的做法,其严重程度和在网上把信用卡密码随便告诉一个自称银行工作人员的家伙是一样的,所以一些聊天软件才会特意提醒。
      再说了,吹牛又不是很难的事,只要有胆量,尽可以从传统宗教手中争夺信徒。别看有些“神”已经“全知全能”,没法再厉害了。只要说,再厉害也不过是在这个层次里面充大个,高层次的家伙看来,丫也不过是凡人罢了……不就得了?(怎么听起来有点耳熟?)
      扯远了,扯远了。总之,既然“神经”这个词人家不用,那就我用。

第拾壹章 上了贼船[2/2页]