Thanks, Steve Jobs!

 

我用过的第一台电脑是Apple II,也有可能是Apple I,实在搞不清楚了。那是高一,不知什么原因,我们年级居然开了Basic普及课程,整个课程只有一次上机的机会。不过那个课上完,我们绝大多数,如果不是全部,什么也没学会,然后生活在高考的阴影下继续。虽然有这么点接触,我对计算机的真正了解却是是上大学之后,正赶上电脑普及的热潮,从IBM PC XT+286、MS DOS、PC TOOLS、WPS、五笔字型开始的,虽然Machintosh和Power Mac也偶尔见到,不过更象一个传说,整个真实世界都属于Dos/Wintel。

对于Apple世界的感情,直到2005年WWDC之后,Developer Transition Kits 里的Mac OS X Tiger 10.4.1 Developer preview泄漏,黑苹果成为可能之后才一点一滴建立起来。其实之前ppc模拟器就可以在x86机器上把OS X PPC跑得很好了,只是性能实在太差,折腾过很短一段之后就放弃了。那个时候我跟Holly一起做为离岸团队为华尔街的一间证券公司开发证券交易策略平台,我整理脚本语言并制作编译器,Holly定义字节码并实现虚拟机,承蒙老板William关照,在啃完几本主要的编译器书之余还有足够的时间关注和尝试新鲜玩艺。

初步使用之后,我决定把家里的PC换上OS X Tiger,运气还不错,除了那块Via Rhine芯片的网卡其它东西都能正常驱动,正好社区里有人号称正在做这个驱动,于是我整了一块RTL8139先用着。不过那台PC挂的硬件比较多,已经接近电源的上限,所以总觉得多插个网卡不爽,还是掂记着那个驱动。这个担心并非多余,后来那台机器因为供电不足,损坏了一块显卡,最后主板也烧了。话说约半年后,项目终止团队解散,我在家休息了几个月,看那帮老外半年也不出东西,闲着也是闲着,还是自己写一个得了。这是我的第一个Mac OS X程序,也是做为一个程序员被Apple震撼的开始。由于发给Via要datasheet的email石沉大海,我只能从Linux driver源码里分析资料,为此花了差不多一个月从PCI到Linux网络子系统整个看了一遍,然后开始着手写I/O Kit驱动。然后我发现,要理解I/O Kit实在太容易了!写这个驱动,只要实现一个IOEthernetController子类就行,整个底层原语libkern已经封装好了,数据队列现成的,一行搞定:

IOGatedOutputQueue::withTarget( this, getWorkLoop() );

(当然这个最简单的队列性能并不好,也有足够的基础类可以实现不同性能的数据收发,不过都要多处理不少细节)

原来写驱动也可以面向对象呀!原来底层结构也可以这么优美!在折腾过WDM、又刚跟Linux死磕了一阵子之后,那感觉大约只有翻身农奴把歌唱能形容了。好吧,OS X不仅是unix+优美的图形界面,更是一个充满思考、精心设计、优雅到骨子里的编程平台。

不过,Mac OS X平台开发的工作机会似乎不存在,后来还是找了个Java开发的工作上班去了。不过,没过太久,iPhone横空出世。之前的智能手机世界属于Symbian和Windows Mobile,当时WM上升势头很好,我确信它会象IE干掉Netscape一样成功,花了不少时间来学习,先后买了Dell的X5和X51v来玩,写了一些东西放在play3d.net (顺便要跟play3d的读者说声抱歉,后来搞不定域名备案网站停掉了,域名到期后也就没有续费,当初那些文件还在 http://www.pinxue.net/play3d/ 不过没来得及写的那些估计永远不会再写了)。当iPhone 1.02软解方案出来以后,在Holly同学的煽动下,找人从美国带回来两台iPhone (Thanks Karl Chen!)。这个手机从外观到功能,无一不酷。然后,我在办公室就当起了iPhone的义务推销员,见人就说:这才是我想要的智能手机,这才是我想要的手机上网,比我想的还要好、还要舒服。不久头头去美国出差回来,行礼是帮大家带的8个iPhone。

iPhone改变了我对手机的看法和用法,以前用Nokia时基本就只打电话,连短信都极少发,第一部没有中文输入法,第二部那个T9也实在消受不来,而在iPhone上可以用最习惯的五笔;更别说上网了,偶尔用它的浏览器去gmail看个邮件,恨不得能花10分钟。用PDA的时候也主要是看书和记事,因为那个电池表现实在是不堪。但是自从用了iPhone,我就喜欢上发短信了,在路上也有gtalk的感觉了,也习惯于用手机随时查东西了,因为不需要再忍受跟别人嚼过的甘蔗差不多的wap或完全乱套的互联网页面了。以前也很少拍照片,因为用的手机都没这功能,有这功能的智能手机印象里比一台电脑还贵,用iPhone以后极其喜欢随手拍,不久就把数码相机送给家里人玩了。近来有了iPhone4以后,连配件一起花了7K的DV也闲置了。

iPhone 1代对我来说是完美的,在用了一年G1和数月EVO之后,又拿到iPhone 1代来用,仍旧有一种舒服到感动的感觉。当然它也是有缺陷的,有一些还好克服,比如通信录不能按汉字拼音排序,电话号码显示的格式不适应国内的号码等;有一些就很难办,比如不支持彩信,不过我至今仍极少用彩信,戴着运营商的镣铐跳舞总是别扭,发email或直接上传到网上才符合互联网的习性。最要命的是没有中文输入法,很快也就有第三方的短信程序自带中文输入法了,不过别的应用还是没法输入;也有人搞定了替换系统日文词库来当中文输入法用,只是第一个字总是日文,着实碍眼。好在社区已经整理出toolchain,在Holly精湛技艺之下,不到一个月,我们就有能用的单字拼音输入法了,而且速度飞快。因为总在港汇二楼台阶上的Costa碰头,我们给这个输入法取名为iCosta。不过我习惯用五笔,于是不久我们加上了五笔支持。别小看了这个五笔输入支持,它彻底释放了我在手机上的表达能力,也改变了我不在手机上聊天的习惯。

简单点说,iPhone改变了我对智能手机和移动互联网的认识,并如此迅速的让我依赖上了移动互联网。但是它改变我的,并不仅于此。在折腾iCosta的时候,我开始学习ARM汇编,ARMEABI函数调用的效率令人惊叹;开始学习Objective-C,它在完全兼容C的前提下提供了令人惊叹的面象对象能力,并对两者的混用几乎没有任何人为限制,而面象对象语法的设计也充满了智慧,分明在无声的说,这门语言是为人设计的,不是为了机器或者形式语义设计的;分明在强调,程序是由人写的,也是给人看的。更令人震惊的是Objective-C生成的汇编代码极易看懂,完全不象X86平台上一般程序那样难搞,虽然系统很多部分并无源码,但对于想要理解iPhone OS内部机制的人来说,一切就平铺直叙的写在眼前,即使是C编译生成的代码也要好读得多。这可太舒服了!

后来,iPhone SDK终于出了。我的iPhone终于摔坏了,我决定追逐一下有硬键盘的G1的浪潮。对于少许Android玩家来说,因此而很快拥有了可用的五笔输入法,而对我来说,由此而领会了什么叫做可用性,什么叫做用户体验。这不是说Android不好,Android有非常好的地方,比如它提供IMF并且可以通过Android Market发行IME,你几乎可以修改系统任何一个方面,只要你愿意努力。这可能是整个iOS平台永远也无法满足的需求,我猜想Jobs和苹果公司认为:想做这些事情的话请加入苹果。

用惯iPhone之后,时不时会拿手指点电脑屏幕,然后才想起来不支持触摸。于是开始盼望触屏版的MacBook,不过至今还没有盼到.苹果推出的是iPad,而且便宜的出乎意料。很快我的iPad就被小Nemo独霸了,好在后来又第一时间买了iPad2,不过装上PPTV/PPS/奇艺等可以看电视剧的app之后,有被Nemo妈抢走的危险了。如果不写代码,我已经习惯用iPad替代电脑。

其间黑苹果也升到Leopard了。再后来,终于受不了折腾黑苹果费的时间了,买了MacBook Pro。(Thanks Mrs. and Mr. Wang for internal discount) 每天在这样一个平台下工作,我的心态也在一点点的变化,开始变得挑剔,从界面、交互方式到代码的观感,越来越不愿忍受,也越来越不想写需要忍受的代码。

一段时间之后,对于Think Different似乎有那么点感觉了,思考产品也慢慢不自觉的朝着除了解决实际问题还要用很酷的方式去改变转了。这很有效,时不时会发现一些挺有意思的方向,只可惜想法太多时间太少,能付诸实施的还很少很少。我现在有幸跟一个非常强悍的团队一起工作,大家都怀抱着用技术改变世界的梦想,梦想很大,团队还很小,还需要很多很多志道合的伙伴。

Thanks Steve Jobs! 感谢你创建了苹果,塑造了这么富有个性和创造力的团队!感谢你们创造的这些堪称艺术品的产品!我享受这些产品,眼界由此而提高,在这个过程中感受到你们对信念的真诚与执着,在创新与尊重用户给自己设立的高标准。我相信技术可以改变世界,而你们让我坚信我也可以用技术改变一些什么。

 

*听到Steve Jobs逝去的消息以来,心里一直有很复杂的感情在起伏。我并不真实了解这个人,也没有见过他,却深受他的影响和鼓舞,既惋惜业界失去了及富远见与激情的天才,又担心苹果由此而放缓了创新的步伐进而整个产业的发展都放缓,同时也觉得业内暂时再也没有能代言理想、创新、激情、完美的标识性人物,似乎是一个时代的终结。想想还有Google收购Motolora手机、HP CEO要砍webOS随即换帅等大事件集中在如此短的时间段里,不禁感慨错过了.com大潮还能有幸赶上这么一个大时代。是有此文。

2 thoughts on “Thanks, Steve Jobs!”

Leave a Reply

Your email address will not be published. Required fields are marked *