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大潮還能有幸趕上這么一個大時代。是有此文。
總結
以上是生活随笔為你收集整理的Thanks, Steve Jobs!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的世界丛林风景Mac动态壁纸
- 下一篇: tushare pro 版本获取股票历史