The Old Blog Archive (Traditional Chinese), 2004-2009

OV @ WWDC 2006: Day 1, ObjC goes gc etc.

今天的確是相當漫長的一天。Steve Jobs今年的Keynote Speech內容以及評價,我想網路上已經貼了許多,我在此就不再添足。今天除了上午的Keynote Speech外,下午連續參加了三場講座:OS X State of the Union, Development Tools State of the Union, Graphics and Media State of the Union, 都是屬於宣示性、策略性的演說。事實上,後面三場的重要性,我現在認為,其實遠比Keynote來得重要。

當然,會議的Keynote不外乎是替大方向定調。今年的WWDC Keynote很意外的都是Apple自家員工上陣,並沒有Intel、MS或Adobe的人出來講話。對Apple來說,Intel transition也許已經完成,但是有在看MS Mac BU的人都知道,事情絕非如此單純。另一方面,Steve Jobs的Keynote似乎已經變成了一種煙火秀,在這樣的情況下。可是要年年有驚喜,其實並不容易。

就目前我所看來,上午Keynote的「平淡無奇」,其實都是在為下午每一項技術的深化定調。例如Time Machine其實是Journaled file system的延伸,要真能發揮功能,最終仍要靠應用程式的配合。Spotlight, universal access也一樣。

對我來說,有兩個我所關心的主題,Keynote上沒提到,反倒是在下午的講座上漸次被提及。一個是Objective-C 終於有了正式的garbage collection的機制(將在Leopard中支援),另一個則是終於有了resolution-independent UI──意思是說,從此使用大螢幕時,UI的尺寸(其實是DPI數)也會跟著增加,終於讓眼睛不會太傷。

很顯然,Apple 仍把主要技術的實作,押寶在 Objective-C 這套語言上。負責 Objective-C 講題的人甚至開玩笑說,他會吹管樂,而升do(C#)的調子 “get you nowhere”。話雖如此,增加諸如 setter/getter 自動生成的關鍵詞,增加 “foreach” 的語法,以及早在前一版 gcc 就已經出現、但 Apple 並無在 Cocoa 層次支援的 garbage collection 等等,這些只能說是 Apple 終於跟上了現代語言發展的腳步。同樣的道理也出在 Xcode 3.0 的眾多「新功能」上,例如區塊收攏(folding)、refactoring、更好的除錯訊息支援等等,這些早就是各種現代編輯器以及IDE環境就該有的功能,Xcode只能說是早該如此。不過,那套竟然跟GarageBand介面有異曲同功之妙的除錯工具,倒是很令人眼睛一亮。

整體說來,今天一整天所提及的技術,主要還是以媒體及呈現(media and representation)為主,舉凡CoreAnimation, QuartzComposer等等,顯然Apple仍然專注於桌面軟體,並且針對的都是高階、高單價/高成本、大量圖形或媒介處理的應用。而,當 Steve Jobs 在 Keynote 講到 iChat 的新功能時,很多朋友(就我所知)的第一個反應是:這有什麼好拿來講的。然而,在下午的 session 中便不難發現,此次 SJ Keynote 的重點都在於:這每一項「平淡無奇」的「新功能」,都有一套 API ,而且顯然做為 OS X 的應用程式,都該儘可能善用這些功能。

也就是說,OS X 的應用程式將越來越難寫。應用程式底層必須有可程式化的 scriptability,UI 基礎要能有 accessibility (這一點在美國相信會益發受到重視),程式要好用、要提供 “wow factor”,必須善用各種的媒介資源──聲音、圖片、影像、攝影機、H.264格式、HTML+CSS+Javascript──這一些都建立在一個又一個的 “framework kit” 上面:PDF Kit, CoreAnimation, ImageKit, QT Kit, Web Kit, etc. etc. (是的,這些程式庫初期都會只有 Objective-C 寫的 API)有一點跟 MS 哲學很不一樣的是:OS X 的程式庫,似乎都直接反應在 Apple 自家的應用程式上,也就是說 Apple 自家的應用程式就是那些程式庫的精緻應用。例如用 PDF Kit 配合 Interface Builder 就可以拉出一個簡易版的 Preview,Web Kit 拉一拉就有個陽春版的 Safari 等等。而如此的挑戰變成了,當這些事 Apple 都已經幫你做好時,你到底能發展出什麼新的東西出來。

雖然WWDC做為每年Apple的兩大盛事(另一是MacWorld)之一,總有許多花絮和trivia可講,不過我想最終還是要回到技術的主題來。接下來四天會參加的活動,也會循著這個方向來走。

今天先到這邊,要去補充五點起床苦撐透支的體力啦。

5 Responses to “OV @ WWDC 2006: Day 1, ObjC goes gc etc.”

  1. on 08 Aug 2006 at 14:09mjhsieh

    辛苦了

  2. on 08 Aug 2006 at 17:17yllan

    Tiger 裡面就可以看得出來 resolution-independent UI 做到一半。打開 Quartz Debug ,選 Show User Interface Resolution 就可以調高解析度(要在改變之後起動的 Apps 才會生效),Cocoa 部份問題較少, Carbon 的 (包括 Finder) 大部份就直接是 bitmap 放大。要是這功能完整了以後,是不是以後所有的東西都要變成向量圖?

    Core Animation 到現在才有,可說遠遠落後 MS 的 framework 了。去年有看過 MS 的不知道什麼 conference ,已經追上了 Core Image/Video ,我想朝媒體/呈現發展是個趨勢。

    Xcode 3 最讓我期待的就是 backward debugging (even better than this: http://www.lambdacs.com/debugger/debugger.html) ,看起來實在太酷了,不知道什麼時候才能拿到。 :-(

    至於 OS X 的程式有沒有越來越難寫,我倒是一派樂觀。從以前就是這樣,scriptability, accessibility, … 等都不是 OS X 才有的 issue ,早在 Classic 年代就是如此。支援得多,除了得 Apple Design Award 的機會提高之外,也不見得就會怎麼樣。有心人還是那幾個,門檻卻降低了。

    另外很好奇 WO-evangelist 和你宣傳了什麼?WO 的工具超老舊,如果 Apple 有心要做,應該要把這些東西整個翻新才對。今年大概看不到 WO 6 了…

    今天我的 blog 連不上去,來這邊發發牢騷,也算委屈你了。別忘記幫我問問 Dictionary.app 的細節呀~(具體來說,就是如何把英漢字典整合到系統的 dictionary service 裡面)

  3. on 08 Aug 2006 at 18:05cooltony

    辛苦了

  4. on 09 Aug 2006 at 14:40jjgod

    “有一點跟 MS 哲學很不一樣的是…”其实,和 MS 哲学很像啦,比如大到 WPF (Windows Presentation Foundation) 就有 Microsoft MAX 实现,MSHTML 就有 Internet Explorer 实现,DirectShow 就有 Windows Media Player 实现,小到 RichEdit Control,也有对应的 Microsoft Write :)

    另外,Sample 一类的东西,MS 的 SDK 里一向很充分,比如 DirectX SDK, Platform SDK, Samples + Documentation 的大小比其他所有部分加起来都大 (libraries, header files, etc.) 很多 Samples 已经是相当完整的程序了。

  5. on 09 Aug 2006 at 16:06lukhnos

    yllan,

    Don’t forget to submit your plug-in for next year’s Apple Design Award! :)