在上一篇文章中,我们谈到了个人电脑的兴起,从1945年ENIAC的诞生到1975年第一款面向个人的计算机——牛郎星(Altair)的面世,计算机的发展走过了近30年的岁月,终于从占地面积数百平米、造价数百万美元、笨重、略显神秘的机器,第一次进入普通人的视野。
能够拥有一台个人电脑是那个时代无数电子发烧友梦寐以求的,尽管当时的个人电脑还非常简陋——内存只有几k,需要对着漆黑的显示器,用键盘输入没几个人能看懂的指令。
然而,这种现状很快就会被几个年轻人打破,并深远的改变整个计算机行业。
微软记忆
比尔·盖茨最初接触到计算机是在湖滨中学的机房里。那一年是1967,小比尔盖茨只有12岁,当数学老师给他演示如何操作计算机后,他就立刻迷上了。这位老师后来回忆说:“第一天我比他懂得多,但也就仅限于一天。”
他和一帮同为铁杆计算机迷的朋友几乎天天去计算机房,当时那台计算机使用BASIC语言编程,湖滨中学没有老师懂BASIC,但盖茨和他的朋友硬啃下42页的使用手册后便无师自通了。中学时,盖茨就已经可以使用BASIC编写出能玩井字棋的游戏了。
正是在湖滨中学的机房里,盖茨认识了比他高两年级的保罗·艾伦,共同的兴趣让两人很快成为好朋友。
1968年秋,即将升入八年级的盖茨和艾伦组建了一个叫“湖滨编程集团”的极客组织,成员们以编程为乐,在计算机方面尽情展示各自的才华。他们很快就有了任务:测试一台PDP-10型计算机,想用多久就用多久,想用它干什么就干什么,目的是找出这台计算机的BUG。这项任务对这帮人来说无疑就像是让爱吃甜食的孩子去吃巧克力一样。在这里,盖茨第一次认识到操作系统的重要性,他和艾伦开始阅读这台计算机的操作系统说明书,为了能够得到源代码,他们甚至去翻公司员工的垃圾桶,从里面找他们写过的代码片段,然后开始研读。
这项任务完成后,他们不能再自由的使用计算机了,当时计算机是按使用时长收费的,湖滨中学一度购买过计算机分时使用资源,每个小时的使用价格高达15美元。但这难不倒湖滨编程集团,他们很快想法侵入系统并免费使用,不过不久就被发现。为了能够继续使用计算机,他们与计算机公司联系,表示愿意提供服务,以换取计算机使用时长。最终他们为公司编写了一套工资程序,并换取了价值18000美元的时长。由于在这项工作中不可或缺的贡献,盖茨成了湖滨编程集团的老大,开始自称总裁。到盖茨16岁时,他开始一本正经的告诉别人,他会在30岁时赚到100万美元,事实上,他严重低估了自己,30岁时,他已经身价3.5亿美金。
1973年春季,在高中的最后一个学期,与父母和学校商量后,盖茨没有选择继续呆在学校,而是与艾伦一起,到一家公司工作。他们经常一干就是十几个小时,然后大睡一觉,甚至会比赛谁可以连续编程更久的时间。
盖茨一共申请了3所大学:哈佛、耶鲁、普林斯顿。最终,三所大学都录取了他,他最终选择了哈佛数学系。他是那种从小就很聪明,也知道自己很聪明,并以此为傲的人,事实证明,他确有这个资本。
1974年末,《大众电子学》杂志的封面刊登了面向计算机发烧友的Altair计算机。当艾伦拿着这期杂志来到盖茨的宿舍时,说道:“你瞧,这件事我们竟然没有参与”。于是,他们决定行动起来,为Altair计算机编写一个能让发烧友用Basic计算机编程的解释器。他们给发布Altair的MITS公司打电话,声称已经基本写好了一款BASIC解释器程序(事实上他们还没有开始),需求合作,而MITS公司也爽快的答应了,他们也正在寻求计算机软件支持。
经过8周的紧张编程,他们终于把这个程序搞定了,并成功的把程序精简到只有3.2k,因为当时的Altair计算机只有4k的存储。他们乘飞机来到MITS公司进行演示,这场重要的演示注定改变了盖茨和艾伦一帮年轻人的命运,也深深的改变了计算机行业。最终,他们与MITS公司签订了一份10年的软件授权协议,每份软件收取30美元。盖茨坚持在谈判中拥有软件的所有权,而MITS公司只有使用权,因为当时的盖茨已经意识到,未来软件将会凌驾于硬件之上,处于核心地位,这一协议将允许他们把一份软件卖给多家厂商,从而主导整个软件市场。
MITS公司举行了一场盛大的全国巡游,宣传绑定了盖茨和艾伦开发的BASIC程序的计算机产品,在这个过程中,有人开始复制他们的BASIC程序,并免费传播,这帮助微软BASIC迅速传播。尽管当时的盖茨非常愤怒这种盗版行为,不过事实上这也帮助这家小公司迅速打入市场。
这个时候,盖茨已经决定从哈佛退学,全身心投入计算机软件这一全新的行业。他开始和艾伦商量新公司的名称,他们考虑过“艾伦&盖茨”,不过这个名字听起来有点像律师事务所,便放弃了。最终,他们选择了微软这个听起来不算鼓舞人心,但足以传达公司使命的名字。但是在公司股权划分方面,律师家庭出身的盖茨当仁不仁,提出自己是中途退学,且做了大部分的编程工作,应该拿大头,提出自己占6成,艾伦4成,不过作为图书管理员的儿子,又好说话的艾伦还是勉为其难的同意了。
盖茨和艾伦对软件的专注获得了回报,微软能够在看似不可能的开发周期内完成任务,而且价格低到计算机硬件厂商很少考虑自行开发软件。
1980年,当时已经在大型计算机领域处于主导地位的IBM也嗅到了个人电脑崛起的味道,决定快速杀入个人电脑市场,他们预期在一年内推出首款IBM个人电脑,这就决定了包括操作系统等软件在内的很多东西不可能自己研发,而要从市场上寻找供应商。
微软BASIC在市场上的成功自然引起了IBM项目人员的注意,他们联系了微软,需求合作。在几个小时的会谈后,IBM的人已经被盖茨的才华和对行业的洞见折服了,决定购买微软BASIC的授权。过了几周,他们又回来洽谈操作系统的需求,这个时候,微软还没有开始涉足操作系统,他们当时使用的操作系统是盖茨的一个朋友开发的叫做CP/M的系统,于是,盖茨当着IBM的人的面,打电话给这位朋友,说IBM需要一个操作系统,让他与IBM洽谈合作。遗憾的是,他的这位朋友当时正要计划自己的私人飞机出游,没有兴趣谈这笔生意,他让自己的妻子与IBM的人谈,他的妻子看了IBM的保密协议,拒绝签字。如果当时他们能与IBM签约作为操作系统供应商,也许我们今天用到的操作系统就不是微软的windows,而是这家公司的了。但成功的机遇总是转瞬即逝。急着寻找操作系统的IBM又来找微软,于是微软接下了为IBM提供操作系统的任务。在跟IBM的谈判中,盖茨又一次坚持让微软保有操作系统的版权,而且允许微软向其他硬件提供操作系统。盖茨的这一高瞻远瞩的坚持让微软的操作系统很快成为了行业的标准。直到现在,全球大部分个人计算机,他们的品牌可能是联想,惠普……,但他们的操作系统绝大部分都是微软的windows。
事实上,微软的第一款操作系统也不是自己研发的,而是从其他人手里花了5万美元买来的,并且是一次性买断,微软在这款操作系统上稍加修改,就变成了IBM个人电脑上的DOS操作系统。
1981年,IBM发布了他们的首款个人电脑。当日,作为操作系统供应商的微软竟然都没有受邀出席发布会,可见当时的微软是多么不知名的一家小公司。这一天,盖茨在苹果拜会乔布斯,当时,微软也是苹果公司的软件供应商,那一年,苹果的年收入已经达到了3.5亿美金,而微软只有1500万美金。也就是在这个时候,正在研发麦金塔电脑的乔布斯将他们图形界面操作系统的项目透漏给了盖茨,回到微软后,盖茨立刻开始了秘密研发新一代操作系统的项目——Windows,并在苹果的麦金塔计算机发布前两个月宣布微软的这一新款操作系统。乔帮主得知后震怒,认为盖茨是个窃贼,并记恨了一辈子。盖茨毫不掩饰自己的确窃取了苹果的创意,他说道:喔,史蒂夫,我认为这个问题我们还可以这样看。我们两人都有个名叫施乐的富有邻居,我闯进他家里准备偷电视机,结果发现你已经把电视机偷走了。
在微软之前,硬件占据主导地位,几乎没有软件行业,微软第一次让软件发挥了巨大的作用,并成为行业标准,从而开启了一个新的时代!
就在本周,微软联合创始人之一的保罗·艾伦逝世,也借此机会缅怀这位为计算机软件作出过杰出贡献的行业先驱!
苹果往事
19世界70年代,是个人电脑崛起的年代,当时的计算机发烧友会自己购买芯片组装一些小玩意。1975年,Altair的发布彻底点燃了这批计算机爱好者的激情,因为这款电脑发售的正是一批零部件,需要用户自己动手组装。
这批电子发烧友中,有一个名叫史蒂夫·沃兹尼亚克。
沃兹尼亚克出生在一个工程师家庭,父亲是一名电气工程师,从小就教小沃兹摆弄各种电阻、二极管。沃兹在很小的时候,就已经可以自己组装收音机了,还曾做过对讲机,与孩子们一起玩。
出于兴趣,他还会钻研惠普和DEC生产的办公电脑的说明书,然后试图自己重新设计。
经过朋友介绍,沃兹尼亚克认识了另一位同样对电子感兴趣的人,那个人叫史蒂夫·乔布斯,他们一见如故,互相欣赏,畅谈自己搞过的恶作剧和做过的小玩意。
1971年,沃兹尼亚克在《时尚先生》杂志上读到一篇文章,大意是讲如何制作一种能发出特定音频的设备,骗过贝尔电话系统,并免费拨打长途电话。看到这篇文章后,他立刻就给还在读高三的乔布斯打了个电话,把文章内容读给他听。两个都爱搞恶作剧的人一拍即合,他们设法从图书馆里找到一本载有贝尔电话系统所有频率的书,然后到电子商店购买了所需的零件,把它们焊接在一起。最终,他们真的做成了这种设备,并管它叫“蓝盒子”。为了测试,他们给梵蒂冈打了个电话,声称自己是亨利·基辛格,要跟教皇通话。梵蒂冈官员自然识别出这是一出恶作剧。
在沃兹和乔布斯的合作中,通常都是沃兹先作出了一个新鲜玩意,然后乔布斯说:“嘿,我们想办法把这些东西卖出去吧”。沃兹尼亚克擅长工程,而乔布斯则擅长产品设计和包装,并抓住用户的需求。
他们用来搞恶作剧的“蓝盒子”就被他们开发成一款成品用来销售,他们以每个40美元的成本制作了100个,不过还没等卖完,就遇到了持枪抢劫(做生意真不容易啊)。不过,这次合作奠定了他们共同创业的基础。乔布斯后来回忆说:“如果没有蓝盒子,就没有苹果。通过蓝盒子,沃兹和我学会了如何合作。”
为了寻找精神启蒙,乔布斯踏上了去印度朝圣之旅。回到美国后,乔布斯开始在雅达利公司工作,这家公司曾经研发了一款火爆的电子游戏而赚的盆满钵满。在这里,他学到了一些产品设计方面的重要经验,其中最重要的是,界面应该保持友好和直观,设备不需要说明书。
虽然算不上一个多么优秀的工程师,但是乔布斯在产品设计方面有着自己的深刻理解,除此之外,他还拥有一种独特的魅力,能够说服工程师去实现那些几乎不可能的任务,后来,人们把乔帮主的这个能力叫做“现实扭曲立场”。一个例子是,有一次,他和沃兹尼亚克合作开发一款游戏,沃兹本来估计这项任务需要花几周的时间才能完成,但乔布斯却目不转睛地盯着沃兹,让他相信自己能在四天之内完成。
当时沃兹还在自己设计一款带有显示器、键盘、处理器的个人电脑,乔布斯得知后,又成功的说服了沃兹与他共同开发计算机来销售。为了筹集创业资金,乔布斯卖掉了他的大众小巴士,沃兹则卖掉了自己的惠普计算器。他们开发出了苹果I和苹果II。苹果II在1976年6月上市,售价1298美元,不到三年时间就卖出了10万台。
1979年,乔布斯到施乐参观,当时施乐一共展示了三大创新成果:第一个是以太网,第二个是面向对象程序设计,第三个是图形用户界面。当乔布斯看到施乐的展示后,他简直震惊了,这种震惊不仅仅是由于他们的足以改变世界的创新,更因为他们居然没有用这些创新来做点什么。乔布斯嚷道:“你们是坐在金矿上,我简直不敢相信施乐竟然没有利用这么大的优势!”。乔布斯对图形用户界面特别感兴趣,该界面像是一个桌面,桌面上有代表文档的文件夹和各种图标,还可以用鼠标来控制桌面。乔布斯对这个界面爱不释手。回到苹果后,乔布斯吼道:“就是它了!这件事我们非做不可!”
后来,有人质疑乔布斯盗用了施乐的创意,他援引了一句毕加索的名言:“巧匠摹形,大师窃意”。他还说:我们从来都不羞于窃取伟大的创意。在他看来,原本应该统治整个计算机行业的应该是施乐,但他们自己搞砸了。
1984年,苹果推出划时代的麦金塔(Mac)电脑,并播放了一则令人难忘的广告《1984》。发布会现场,电脑屏幕上不再是黑白的,而是彩色的图形界面,多数人没有见过,甚至没有想象过如此惊人的场景。雷鸣般的掌声一直持续了5分钟。
自由软件
在盖茨的坚持下,微软的操作系统拥有软件所有权,授权给计算机厂商使用;而乔布斯则是一个完美主义者,他无法忍受苹果的操作系统运行在低廉的电脑上,也无法忍受苹果电脑上运行其他丑陋的操作系统,因此他坚持苹果的产品始终掌控软硬件和用户需求。
当然,还有另外一种软件使用方式,那就是从19世纪80年代流行起来的自由软件,它鼓励人们自由的分享和修改软件,但拒绝任何人在这个过程中声明所有权。
自由软件的推动者是理查德·斯托尔曼等崇尚自由、反对束缚的黑客。19世纪80年代,计算机已经被IBM、苹果、DEC等大公司垄断,而这些计算机上运行的软件所有权都属于这些计算机公司,无法自由的获取源代码,甚至连拷贝都是不被允许的。有一次,施乐给他所在的麻省理工人工智能实验室捐赠了一台新的激光打印机,斯托尔曼想要对软件做一些改动,以优化体验,他让同事把打印机的源代码给他,但这位同事拒绝了,说他已经签署了保密协议。这件事成为了压倒斯托尔曼的最后一根稻草,他感到义愤填膺。
斯托尔曼决定自己创建一个完全自由的、非专有的操作系统,并把这款操作系统命名为GNU(GNU's Not Unix)。
1985年,斯托尔曼在《人民计算机公司》等核心刊物上发表了一项宣言:
我认为,如果我喜欢一款程序,就必须将其分享给喜欢这个程序的其他人,这是我信奉的准则。卖软件的人想分化和征服用户,他们强迫每个用户都同意不与他们分享。但我拒绝让他们以这种方式打破我与其他用户的团结一致……GNU一旦编写出来,每个人都将可以像呼吸空气一样自由地获取出色的系统软件。
对斯托尔曼来说,自由软件运动不仅仅是通过集体协作开发软件的方式,而且是一种为创造理想社会而必须履行的道义责任。为捍卫和证明自己的信条,斯托尔曼推出了“GNU通用公共授权”。
斯托尔曼自己动手编写了GNU操作系统最初的一些组成部分,其中包括文本编辑器(大名鼎鼎的vim)、编译器等。但内核部分是一个来自芬兰的叫莱纳斯的21岁小伙子编写完成的。
和斯托尔曼一样,他也不喜欢微软的DOS系统,他考虑给自己的计算机安装UNIX操作系统,但UNIX操作系统每份售价5000美元,过于高昂。于是他决定自己动手写一个操作系统。
莱纳斯并没有从0起步,而是在他老师之前开发的一款用于教学的操作系统MINIX上进行了大量修改。他一开始计划把这款新软件命名为“Freax”,该名称同时包含free(自由)、 freak(狂人)、和unix这三重含义。但由于种种原因,后来并没有采用,而是叫做Linux,这与他名字的发音很像,一开始,莱纳斯觉得这个名字太高调了,不过后来,当无数人开始赞美时,他才坦然接受。
莱纳斯也崇尚软件应该自由分享,但与斯托尔曼那种出于对自由的追求和纯粹道义上的责任感不同,他更看中分享过程中的实际功用:不同的程序员会共同维护一份代码,并持续改进,让软件变得更优秀。莱纳斯后来回忆说:他最初选择开源Linux内核时,其实目的就是想让更多的人来优化这个程序,实时证明的确如此,在Linux发布一年后,该系统的新闻组里已经有数万名用户了。无私的作者们对该系统进行了持续的改进,添加了图形界面和各种丰富的功能。
在我们今天的时代,应该说微软模式、苹果模式和自由软件同时存在,他们共同推动着整个软件行业的进步:商业化的拥有版权的软件,能够使我们在支付一定费用后使用优秀的商业软件(典型的代表如office),而那些自由分享的开源软件则让追求分享精神的技术爱好者们有一个理想的乐园,在这个乐园里,大家都渴望能够贡献自己的力量(典型的代表如Linux、redis、kafka等),让世界变得更加美好。