返回介绍

秘密武器

发布于 2023-05-23 15:33:22 字数 3785 浏览 0 评论 0 收藏 0

埃里克·雷蒙德写过一篇文章《如何成为一个黑客》(How to Become aHacker)。文中有一部分专门谈到,在他看来,如果你想当一个黑客,应该学习哪些语言。他建议从Python和Java入手,因为它们比较容易学。想当高级一点的黑客,还应该学习C和Perl。前者用来对付Unix系统,后者用来系统管理和开发CGI脚本。最后,真正非常严肃地把黑客作为人生目标的人,应该考虑学习Lisp:

Lisp很值得学习。你掌握它以后,会感到它给你带来的极大启发。这会大大提高你的编程水平,使你成为一个更好的程序员。尽管在实际工作中极少会用到Lisp。

在讨论学习拉丁语有何价值时,你往往也会听到这一类的话。拉丁语无助于你找工作(也许古典文学教授的工作除外),但是它可以训练你的思维,帮助你更好地运用母语(比如英语)进行写作。

但是且慢,拉丁语的比喻并不完全适合Lisp语言。拉丁语无助于你找工作的原因是因为没有人说拉丁语。如果你用它写作,没有人能看懂。但是,Lisp是一种计算机语言,无论我们程序员使用哪一种语言与计算机交谈,它都能听懂。

如果埃里克·雷蒙德没有说错,Lisp语言确实可以使你成为更好的程序员,那么为什么你不使用它编程呢?如果画家有一支让他画得更好的画笔,我觉得他应该会用这支笔完成所有的画作,对不对?我在这里不是想证明埃里克·雷蒙德错了。他的观点整体上非常正确,他对Lisp语言的看法确实是大多数人的看法,但是这里面就是有一个矛盾:Lisp语言能让你成为更好的程序员,但你却不用它,这难道不奇怪吗?

为什么不用呢?编程语言毕竟是一种工具。如果Lisp语言真的能开发出更好的程序,你就应该用它。如果它无助于编程,那么就不会有人需要它。

这不仅仅是一个理论问题。软件业是竞争非常激烈的行业,而且容易出现垄断。在不考虑其他情况的条件下,某家公司的软件更快更好用,就会把竞争者赶出这个市场。一旦你开始创业,你就会更深切地感受到这一点。一般情况是,创业公司要么赢得一切,要么彻底失败。你要么成为富翁,要么一无所获。创业的时候,如果你选择了错误的技术,竞争对手就会一举打败你。

罗伯特·莫里斯和我都很了解Lisp语言,我们相信自己的直觉,找不出任何不使用它的理由。我们知道其他人都用C++或Perl开发软件, 但是我们不觉得这说明了什么问题。如果别人用什么技术,你也用什么技术,那么你大概只能使用Windows了。选择使用哪一种技术的时候,你不能考虑别人的做法,只能考虑什么样的技术能最好地完成工作。

图12-1 我和罗伯特·莫里斯在Viaweb,1996年年初

创业公司尤其如此。大公司可以互相模仿,但是创业公司就不行。我觉得很多人没有意识到这一点,尤其是一些创业者。

大公司每年平均成长大约10%。所以,如果你掌管一家大公司,只要每件事都做到大公司的平均水准,你就能得到大公司的平均结果,也就是每年成长大约10%。

如果你掌管创业公司,当然也可以这样。你把每件事都做到平均水准,就能得到平均结果。问题在于,小公司的平均结果就意味着关门倒闭。创业公司的生存率远低于50%。所以,如果你掌管创业公司,最好做一些独特的事情,否则就会有麻烦。

回到1995年,我们懂得一些竞争对手不懂的事情(至少在我们看来是如此),这些事情甚至直到今天都很少有人懂:如果开发只在自己服务器上运行的软件,这意味着你想用什么语言就能用什么语言。如果开发桌面软件,就完全不一样了,大多数情况下你只能使用操作系统所用的开发语言。10年前,开发桌面软件就意味着要使用C语言。但是,对于互联网软件,你能使用任何你想用的语言。如果你还同时拥有操作系统和语言的源码,那么你的自由就更大了。

但是,这种新出现的自由是一把双刃剑。既然你可以使用任何语言,你就不得不思考到底使用哪一种语言。如果你的公司对这种选择的自由视而不见,而竞争对手看到了,那么你就有被击败的危险。

如果选择哪种语言都行,你到底使用哪一种语言?我们选择Lisp。首先,很明显,对于这个市场来说,快速开发出产品是很重要的。我们所有人都是从零开始,所以能够快速做出新功能的公司就会取得巨大的竞争优势。我们知道Lisp语言真的非常合适快速开发软件,而且我们的软件运行在服务器端,你一写完代码就能发布出去,所以这又进一步放大了快速开发的效果。

如果其他公司不想使用Lisp语言,那就更好了。这会让我们拥有技术优势。我们不能放过任何有利的因素。创办Viaweb的时候,我们对于如何经营一家公司毫无经验,对市场推广、雇用员工、融资、发展新客户等都一无所知。在此之前,我和莫里斯甚至连一夭正式上班的经历都没有。我们唯一擅长的事情就是开发软件。我们希望这一点可以弥补我们的劣势。任何在软件开发上面有助于我们获得优势的事情我们都不能放过。

可以这样说,我们使用Lisp只是一个大胆的冒险。我们设想如果用Lisp语言开发自己的软件,就能比竞争对手更快地写出新功能,还能做到他们做不到的事情。同时,因为Lisp是一种抽象层次非常高的语言,所以就不需要非常庞大的开发团队,这会降低成本。如果我们的设想是正确的,那么我们就能用更少的钱做出一个更好的产品,从而获得利润。最终,我们将独占市场,竞争对手什么也得不到,到头来只能退出这个行业。我们当时心里就是这么盘算的。

这次冒险的结果如何?多少有点出人意料,它竟然达到了我们的设想。我们前前后后遭遇到很多竞争对手,一共大概有二三十个,但是他们的软件没有一个能与我们竞争。我们的软件运行在服务器端,用户可以“所见即所得”地搭建网上商店,感觉就像在操作桌面软件。我们的竞争对手使用CGI脚本。我们在功能上总是遥遥领先于他们。有时,他们出于绝望,试图引入我们没有的功能。但是,有了Lisp语言的帮助,我们的开发周期很短。有时候,竞争对手刚刚发布新闻稿宣布将引入新功能,我们就能在一两天内做出自己的版本。当对手找来的记者抽出时间打电话过来想了解我们的反应,我们就会告诉他我们已经有了这个功能。

竞争对手一定觉得我们好像拥有了某种秘密武器,能够破解他们内部的通信或者其他机密。事实上,我们的确拥有秘密武器,但是没他们想的那么复杂。从来没有人向我们泄露他们的内部机密,只是我们的开发速度比别人想象的更快而已。

9岁时,我碰巧读过弗雷德里克·福赛思的小说《刺杀戴高乐》(The Day of the Jackal)。小说的主角是一个刺客,有人雇他暗杀法国总统。那个刺客必须通过警察的岗哨才能到达可以俯视总统行进路线的公寓。他扮成柱着拐杖的老头从警察身边经过,没有引起任何人的怀疑。

我们的秘密武器很类似上面的情景。我们使用一种奇特的人工智能语言开发软件,它的语法非常古怪,大量使用括号。多年来,要是听到别人这样描述Lisp语言,我会勃然大怒。但是现在,这却成了我们的优势。在竞争中,你的对手无法理解你的技术优势,这可是再宝贵不过了。商场如战场,对手摸不透你,你的胜算就增加了。

虽然有些令人难为情,但是我必须承认,就是因为这个原因,在Viaweb创业期间我从来没有公开谈论过Lisp语言。我们对新闻媒体闭口不谈Lisp,如果你在我们的网站上捜索Lisp,只会发现我在个人介绍中提到过两次,那是我写的两本关于Lisp的书。这是故意的,创业公司对竞争对手应该越保密越好。如果他们不知道(或者不关心)我们的软件用什么语言开发,我就要把这个秘密保持下去^。

^「莫里斯觉得不用这么保密,因为即使竞争对手知道我们使用Lisp语言,对他们也不会有帮助:“如果他们真的聪明,早就已经在用Lisp编程了。”」

最了解我们技术的人就是客户。他们不关心Viaweb用什么语言开发,但是发现它真的很好用。Viaweb可以让用户在几分钟内搭建起漂亮的网上商店。因此,主要通过口碑效应,我们得到了越来越多的新客户。1996年年底,我们支持的网上商店大约是70家。1997年,变成了500家。6个月后,雅虎收购我们的时候,我们有1070个用户。更名为Yahoo Store之后,这个软件继续主导市场,它是雅虎获利最丰厚的业务之一,用它搭建的商店成为“雅虎购物”(Yahoo Shopping)的基础。我在1999年离开了雅虎,所以不知道现在的准确用户数量,但是我上一次听到的数字是超过了2万。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文