超越

作者: Jesper  來源: apple4.us  發布時間: 2010-07-08 10:07  閱讀: 483 次  推薦: 0   原文鏈接   [收藏]  

  英文原文:Surpass

  看完提早釋出的 WWDC 2010 演講視頻后,我覺得自己的猜測終有可能實現。雖然 Objective-C 被蘋果奉為最重要的并極力推薦的程序語言,但我確信,蘋果肯定在暗自開發超越 Objective-C 的繼任者,我把它稱作「xlang」。

  蘋果曾幫助初生的開源項目 LLMV 成長為一個龐大而且成功的事業。當看到有程序語言采納 LLVM 的成果時,我總會覺得很高興,但現在似乎情況有變。

  LLVM 的核心是虛擬化,即不與特定的架構關聯,也不和某一種語言關聯。如非用于學術研究,這僅可能是一種怪癖,除了一個事實:即其他很多的關聯架構用此處理匯編和調試,也就是說,和真實平臺打交道的那部分以及處在邊緣區域但并未觸及純編譯器、即時編譯器(JIT)和最優化領域的那部分已經開始了萌芽。Clang 獲得了巨大的成功,而它的能力在 Xcode 4 中被進一步增強,但人們卻很容易忘記,它是構建在 LLVM 之上的。

  那些幫助 Clang 得以成為優秀編譯器的東西都將大量的應用在假設中的「xlang」編譯器上,因為 LLVM 的成果唾手可得,何須權衡取舍?低端所需的資源已經齊備,而且蘋果既完全掌握已有部件(libauto,Objective-C 的可重用垃圾收集器),又有智慧和勇氣將它迅速部署妥當。

  為什么是現在?數年來,Objective-C 得到了逐步改善,而且速度正在加快。但是,Objective-C 身兼維護現有代碼和平臺的職責,又要保證其作為 C 超集的質量。盡管蘋果想要一改現狀,但是可不能亂來。改變將由上至下逐步實現,但所費時間不菲(非脆弱的實例變量)。也許 iOS 目前沒有這個問題,但以后會有,除非蘋果真的打算到時候靠邊修邊補撐著。

  而 C 仍然是 C。蘋果對自己持續消減 Objective-C 的內部運作指令多感自豪,例如最近的 objc-msgSend 快速路徑。但蘋果也知道,維持一個層又不破壞 C,等于剝奪了提高效率和內存安全性的能力。如果 iOS 能將內存凍結,只維持程序某些部分的運行,你看如何?即使具備垃圾收集的 Objective-C 可以解決這個問題,但只要一個 NSValue 對象,甚至更簡單的指針,就可以擊碎這個夢想。

  所以,蘋果不入 xlang 不行。但這么做會得到什么呢?

  他們會獲得一個具有現代環境的現代編程語言,層次足夠低,使它具備 Objective-C 和 C 的絕大部分性能。而這一層又足夠的簡單,可供信賴。他們便可以自由地定義語法和語義。幾乎所有的 Objective-C 功能都使用 @keywords,因為它們必須與 C 無關,而且 C Block 使用 ^ ,因為它們無法在 C++ 中重載。

  最后但也同樣重要的是,他們可以根據自己的喜好引導語言詞匯。我想象 C Block 的一些網格,消息和 Go 的通道將會扮演一個有趣的角色。Cocoa 之所以如此優秀的許多原因是由于異步和關注點的分離,而一個重要的模型與相關的概念可以促成巨大的改變。xlang 可以為 Cocoa 增加全新的 API,例如為 Cocoa 定制 xlang,而非為 Objective-C 定制 Cocoa。

  所有這些猜想不會讓我傻到相信 Objective-C 明天就要滾蛋,甚至 10 年內都不會。與 C 兼容意味著難以割舍,這便是 Objective-C 為何仍是以此為目的的工具。但是在一個程序員常做他想的世界,某種編程語言不可能永遠合適。我要為 C 鼓吹三遍,而且要為超越 C 的東西再吹上三遍。

  正如有人很清楚的了解更高級別的抽象、可選平臺、語言的現狀和平臺工具的情況,以及已露端倪的未來(編者:是在說 John Siracusa 嗎?:p),我也愿意相信。

  延伸閱讀:

  蘋果編程語言和 API 的未來

0
0
 
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()