【IT168专稿】“你们大多数人不是程序员(programmer),而只是代码编写者(coder)。”
说这句话的人名叫Hugh,他是一个IBM商务人员。简练的语言、闪亮的双排扣西装和他的名字是现在我对他的所有记忆。当时我还是一个新人,大约在IBM工作了2个月左右,我认为该公司具有优异计算实力。在一堂PL/1培训课中,老板决定让公司销售团队中的一名优秀人员来为我们上课,以使培训更贴近“现实”。我认为Hugh讲的很好。
他手持一张我认为是冰柜的图片问到,“这是什么?”房间中的所有人都目无表情。我们以前都没有见过AS/400。不过,这个难以言状的大块头在未来10年中承担了重任。有一点他非常热衷于提醒我们,那就是:
“计算机拥有如此多内存,你可以做任何你想做的事情,技巧已经不再有意义。”
图 IBM AS/400系列计算机
在那个时代,人们认为10M内存已经够用,但他的观点是正确的。在我之前的一代人可能是最后一批持以下观点的人:在应用程序开发中,内存管理与算法同样重要。使用一个整型字段来存放布尔值不仅仅是懒惰的问题;它可能最终破坏你的堆栈。保持代码紧凑且简洁是自豪之源,也是程序必须遵守的原则。它还确保了可执行程序体积保持小巧。
但是15年过去后,我们看到Hugh的观点已经变得十分荒谬。我所指的是臃肿软件(bloatware)。这种软件基本上有两个主要功能:非常占空间,且用户实际用到的功能仅占其全部功能的二分之一。在其崩溃和不响应之前,典型终端用户仍会接受它。代码中用户不需要的部分越多,就意味着可能存在漏洞的范围越广,也就意味着更多问题,对所有编程者来说,这是一件让人头疼的事情。
有时候臃肿性被强加于我们身上:iTunes附加资源占用硬盘空间达80MB,但是除非你甘愿使用破解版iPhone,不借助于iTunes你就无法正常使用你的设备。不请自来的臃肿更新年复一年的增长,打着“必要软件升级”的幌子来让计算机越来越慢。
软件精英Peter van den Linden曾说过,唯一因互联网致富的是硬盘制造商。他的话一针见血。随着内存和硬盘容量增加,担心内存和磁盘空间不够,逐渐变得越来越老套和杞人忧天:严密和简洁变得不再具有吸引力,而且随着应用程序开发商试图利用快速发展的硬件所带来的空间,系统编程者也逐渐开始堕落。整个世界也开始随之变化。回想起多年以前Novell销售的一个不错的服务器冗余应用软件,仅一张软盘就可以存储下,而且其中还包含说明文档。一名不满的客户表示,只需一个3.5英寸的软盘就能存下这个软件,它是否物有所值?
该问题的部分原因是编程技术。20年前,编程非常接近硬件。多数情况下,C程序员能够非常熟练的控制数据,而且对于那些真正复杂的部分,你总可以将其交给汇编语言,直接控制硬件。而今天人们编写的Web应用和花哨的程序库,与硬件相去甚远,即使你想开发严密的代码,也很难做到。软件公司的那些精英们或许闭着眼也能展现一个3-D Flash图片,但却可能不知道什么是JNE指令。
我不是一个反对发展的人。Windows 7不可能与Windows 3.11那样简洁,却依然能够充分利用过去10年中硬件的发展。但是如果你告诉我一个MP3播放器需要占用 80MB空间,我对此无法接受。
臃肿软件终结
几周前,Google宣布了一个名为Chrome OS的新操作系统。关于该公司如何搭建与微软战争平台的报道有很多,而且很多人推测这个操作系统将何时问世,但是我所关心的是,它如何实现在数秒内启动并让你连接网络。我认为这点非常棒,但我需要实际看到后才能真正相信。此后我一直在思考这个问题。在过去数周中,我的思路开始清晰,我认为一种变化已经开始悄然发生。
最初是技术社区人士抱怨启动时间太长,但是在过去几年中,全球多数计算机用户,即非技术用户,也开始注意到这个问题,技术人士的细微不满已经变为普通老百姓的共同怨言。我现在已经记不清何时第一次听到我母亲抱怨称“启动时间怎么这么长”,但是我需要指出,此时正是糟糕的性能被人们彻底抱怨的时刻。Google去年就注意到了这种抱怨,并推出了其Chrome浏览器,全新安装后所占用的空间只有42M,该应用程序预示了更轻量级实现方式,但是却给我们所有人发出了信号。
让我们来看一下苹果的iPhone应用。毫无疑问,苹果鼓励程序员为iPhone开发应用的战略已经推动了该设备的流行,但是,我们可以从另一个侧面看到,这种小软件作坊已经隐约再次提出已经迷失十多年的一个概念:购买完成特定任务的软件。去年12月份最热销应用是一个坦克射击游戏。但是,无论你称其为按需安装还是即时应用,它体现的未来模式是简洁、实现特定功能的应用。你是否希望知道电影院何时上映什么电影?你只需下载一个名为Cinema Times的应用。
用户习惯和期望正在改变。最重要的方面是即刻或以最小延时被满足。在电子邮件习惯中我们也看到这一点。在社交网站中,我无需启动我的电子邮件客户端,发现来自以前联系人的某个旧邮件,拷贝粘贴他们的地址到一个新邮件中,然后开始给他们写电子邮件。我只需要在浏览器中点击“发送消息”就可以实现我想做的事情。去年我的电子邮件通信中有10%发生在Facebook中。暂且不考虑隐私问题,我们的工作场所已经从桌面重量级应用转向浏览器和手机,而且这个数字只会继续上升。甚至硬件厂商也已经注意到这种趋势。你现在可以获得具有预启动功能的主板,让你使用一个迷你Linux系统来访问网络,这样你可以在Windows未启动完成时就能够向笔友发送消息。我甚至可以想象到当鲍尔默听到这个消息时会多么吃惊。
当然,如果你在使用英特尔酷睿7芯片,而且网络带宽快的惊人,本篇文章或许对你没有什么影响,但是这只是一个特例。人们希望花600美元购买一台笔记本,他们不能容忍那些不能满足自己需要的软件。
大企业需要更快速的响应。用户不关心你的软件是否包罗万象、包治百病;客户现在认为,如果一个软件的安装盘需要多个DVD光盘来实现,或者下载时间超过50秒,那么它未必对自己的系统有利。未来竞争今人期待。如果Chrome OS的启动时间低于5秒,那么我想Windows 8会在不到3秒内完成这个任务。人们不再希望使用Windows;他们希望使用轻量级系统。如果微软不实现这一点,那么别的厂商就会来满足用户这个需求。
或许Hugh现在应经到了退休年龄,不过我想告诉他,编程作为一门学科的时代又即将回归,程序员可能又会花费数小时的时间来琢磨特定指令。只有重现更简洁更合理的应用程序,才能消除用户的不满。