就在凌云因为JavaScript的糟糕体验而怒火中烧,准备拿起电话给吉姆·克拉克好好“上一课”时,他桌上的电话却抢先一步急促地响了起来。来电显示,正是网景总部。
凌云按下接听键,还没来得及开口,听筒里就传来了克拉克明显带着焦虑和怒气的声音,语速快得几乎要飞起来:
“凌!你听说了吗?微软!微软他们……他们刚刚发布了JScript!”克拉克的声音因为激动而有些变调,“他们宣称这玩意儿完全兼容EcmAScript规范(即JavaScript的核心)!该死的,他们这是想干什么?!”
凌云听到这个消息,瞳孔微微一缩,但脸上并没有露出太多意外的表情。该来的,终究还是来了。他原本想就JavaScript本身的问题去找克拉克,没想到微软的动作更快,直接把一个更棘手的问题摆在了桌面上。
“克拉克,冷静点。”凌云的声音依旧平稳,与克拉克的焦躁形成了鲜明对比,“我正准备找你。看来,我们想到一块去了。我马上到网景。”
没有多余的废话,凌云立刻驱车赶往网景总部。克拉克的办公室内,气氛比上次更加凝重。马克·安德森也在,他年轻的脸上此刻布满了阴云,手指烦躁地敲击着桌面。桌面上散落着关于JScript的新闻稿和技术文档。
“凌,你看到了吧?”克拉克看到凌云进来,立刻拿起一份文件,“微软这是赤裸裸的抄袭!不,比抄袭更可恶!他们搞了个什么JScript,声称和我们的JavaScript兼容!他们想干什么?!”
安德森抬起头,语气低沉地补充道:“这意味着,所有为网景浏览器编写的JavaScript网页,理论上不需要任何修改,或者只需极小的修改,就能在IE上正常运行。”
凌云走到桌前,没有坐下,目光扫过那份文件,语气冷静地如同在分析一个与己无关的商业案例:
“克拉克,马克,这不仅仅是抄袭或兼容那么简单。微软这一手,叫做‘借鸡生蛋’,或者更准确地说,是‘标准化绞杀’。”
他拿起一支笔,在白板上画了两个圆圈,一个标着“NS”,一个标着“IE”。
“在JScript出现之前,网页开发者如果要使用客户端脚本,基本上只有一个选择——为网景浏览器编写JavaScript。这无形中为网景浏览器构建了一道技术护城河,增加了用户切换到IE的成本。”
他在“NS”的圆圈外画了一条波浪线,代表护城河。
“但现在,微软推出了JScript,并高调宣布兼容。”凌云在“IE”圆圈旁边写下了“JScript ≈ JavaScript”,“这意味着什么?意味着微软不需要自己从头开始培育一个全新的脚本语言生态。它直接利用了网景已经开拓好的市场和教育了多年的开发者群体。”
“以前只能在网景浏览器上跑的脚本,现在IE也能跑了。开发者为什么要费心去专门为网景优化?他们只需要写‘标准’的JavaScript,就能通吃两个平台。微软不费吹灰之力,就拆掉了网景辛苦建立的护城河,并将战场拉平到了一个对它极度有利的位置——拼操作系统捆绑和默认设置。”
他看向克拉克和安德森,眼神锐利:“这不是简单的功能跟进,这是一封直接送到你们桌上的战书。微软的意图非常明确:我不会在脚本语言上和你进行无谓的竞争,我会直接采用‘兼容’策略,模糊掉你在这方面的领先优势,然后在我最强大的领域——系统捆绑和渠道分发——彻底击垮你。”
“他们这是在从根本上打击网景浏览器赖以吸引开发者和用户的差异化优势!”安德森咬牙切齿地说出了关键。
“没错!”凌云重重地点了点头,“一旦‘网景的JavaScript’变成了‘大家都支持的类似JavaScript的东西’,那么脚本语言就不再是网景的壁垒。决定浏览器市场份额的,将重新回到那个最原始、也最残酷的维度——谁的浏览器能更方便、更默认地到达用户桌面。而在这一点上……”
凌云没有说下去,但克拉克和安德森心里都清楚,在这一点上,拥有windows垄断地位的微软,拥有着网景无法比拟的、压倒性的优势。
办公室里陷入了死一般的寂静。微软这一招“兼容”策略,看似温和,实则歹毒无比,它精准地打在了网景的七寸上。
克拉克一拳砸在桌子上,震得咖啡杯乱晃:“那我们该怎么办?难道就眼睁睁看着他们这样……”
“当然不!”凌云打断了他,他的声音依然冷静,但其中蕴含的力量却让焦躁的克拉克和安德森不由自主地安静下来,看向他。
“微软出了招,我们接招便是。”凌云走到窗边,看着外面网景公司充满活力的园区,“它想借我们的‘鸡’来下蛋,那我们就要让这只‘鸡’,变得它不那么好借,甚至让它反过来啄伤微软的手。”
他转过身,目光如炬:
“第一,巩固与引领标准。网景必须更积极地推动JavaScript\/EcmAScript标准的演进!提出更多复杂、强大且对开发者友好的新特性、新ApI。你微软不是宣称兼容吗?好啊,那你就跟着我们的节奏跑吧。我们要让标准进化的速度,快到让JScript只能疲于奔命地跟随,而无法形成真正的、稳定的兼容。我们要在技术层面,重新建立起动态的、持续的优势。”
“第二,”凌云竖起了第二根手指,这正是他原本就要来找克拉克谈的核心问题,“重视开发者体验!克拉克,我正要跟你说这个。我们现在的JavaScript,用起来简直是一场灾难!工具链匮乏,调试困难,ApI设计粗糙!微软的JScript就算100%兼容我们,如果它提供了更好的开发工具、更清晰的文档、更稳定的运行时呢?开发者会选谁?”
他指着自己带来的、那张记录着他开发论坛时遇到的各种痛苦的纸条:“浏览器的战争,不仅仅是功能的战争,更是开发者生态的战争!我们必须立刻投入重兵,改善JavaScript引擎的性能,打造强大的调试工具,提供完善的文档和示例,让为网景浏览器开发应用成为一种享受,而不是折磨!”
“第三,”凌云的嘴角勾起一丝冷峻的笑意,“将计就计,反将一军。既然微软想把水搅浑,把JavaScript变成一个‘通用’的东西,那我们就顺势而为。我们可以考虑,在合适的时机,以更开放的态度,甚至推动JavaScript相关技术的某种程度上的‘开源’或更广泛的标准化,团结尽可能多的盟友,包括那些对微软垄断感到不安的硬件厂商、软件开发商,将网景塑造为开放web标准的扞卫者和领导者。而微软,将被置于‘追随者’和‘垄断破坏者’的尴尬位置。”
凌云的三点对策,如同三道清晰的指令,瞬间驱散了克拉克和安德森心中的部分迷雾和恐慌。
克拉克深吸一口气,看着眼前这个在危机时刻总能保持冷静并提出建设性意见的年轻人,重重地点了点头:“我明白了!凌,你说的对!我们不能自乱阵脚!微软这是阳谋,我们接招就是!”
他转向安德森:“马克,立刻召集技术委员会!我们要重新评估我们的JavaScript战略和开发工具链!另外,标准委员会那边也要动起来!”
一场由微软JScript引发的风暴,在网景内部骤然兴起。而凌云,这个来自东方的顾问,再次在这场危机中,为这艘在惊涛骇浪中航行的巨轮,指明了下一个需要全力冲刺的航向。浏览器战争的硝烟,因为JScript的出现,变得更加浓烈了。