iPhone的開發環境優于Android嗎?
編者按:很多人都在對Android和iPhone進行比較,從市場前景、開源與閉源優劣和Google與蘋果之間的策略上進行比較,甚至連應用的的獨特性都要好好分析比較一下。本文為InfoQ的譯文,又是一篇Android和iPhone之間進行比較的文章,外國著名的開發者Jean-Jacques Dubray從語言的角度對Android的開發環境和iPhone的開發環境進行比較。
Android VS iOS
以下是原文譯文:
隨著移動應用的日益普及,很多人開始嘗試比較不同開發環境下的開發體驗。大約一年前,David Green發表了一篇針對Android和iPhone開發環境的比較文章,而John Blanco在上周也針對二者進行了比較分析。Dave和John都同意:
使用Java好于Objective-C。私有方法、內部類、匿名類、泛型、更好的功能語法和廣泛的第三方代碼僅僅體現了Java優勢的一小部分,這已經不是競爭了。
John和Dave在Xcode與Eclipse的比較上,意見就沒那么一致了:
[John] 我曾經喜歡過Eclipse。我能掌握一個IDE并在工作中獲益。從我不得不使用Eclipse以來已經一年多了[...] 收獲的是可怕的使用體驗...我不知道是怎么發生的。Eclipse臃腫,速度慢,改變編輯器上下文環境(XML vs. Java vs. Android Manifest等)這樣的簡單行為都會讓人心煩意亂,這些動作居然需要幾秒鐘的時間。[...]它使得做Android開發變成了“悲慘”的經歷。與XCode相比,XCode能為你帶來快樂的工作。它優雅、快如閃電,在寫代碼時我從未看見XCode發生遲緩的現象。我對XCode給與肯定。Xcode占有壓倒性優勢。
Dave認為Eclipse的增量編譯器是其主要優點。對他來說內容輔助做的并不好,而XCode則打開了太多窗口:
XCode是如此糟糕,我甚至不知道從哪開始。我覺的XCode要想成為可行的IDE,至少應該完善我提到的最小列表中的特征。
不過Dave喜歡iPhone的Interface Builder。
從模擬器的角度來看,John覺得iPhone的模擬器在真正模擬GPS或加速器方面還有一些欠缺。不過iPhone模擬器的準確性給他留下了深刻影響:
我很少見到在設備上出的問題在模擬器不出現的情況。iPhone模擬器運行很快,我隨時可以關閉它,可以很容易進行復位,改變語言等。相反,Android的模擬器是我見過最爛的模擬器。比黑莓的還爛──這說明了一些問題。有時我在模擬器上運行一個程序,無論如何都不能運行,我不得不重新啟動。另外它還慢的要命。有一次我想顯示某個功能居然用了8秒鐘。這正好和我提到的Eclipse問題相關,之所以指出這些問題,是因為我在iPhone開發環境中沒有遇到任何以上問題。我碰到的每個Android開發者都說,他們幾乎不怎么用模擬器,而是直接在設備上運行程序。
Dave看到的是Java開發環境十年不懈改進的能力,包括全功能調試器、使用JUnit的能力和內存配置工具。
20年前的秋天,我寫下了第一行Objective-C程序。我記得那真是個神奇的經歷,以至于我不能長時間離開賓夕法尼亞州立大學的計算機實驗室。對于很多人來說很難想象,在那樣一個遙遠的過去(NeXTStep),XCode會和今天一樣犀利。Interface Builder作為NeXTStep的基礎功能,是Jean-Marie Hullot的智慧結晶,他從1985年就開始做這方面的工作,NeXTStep引導Tim Berners-Lee在CERN建立了Web的基礎。與他一起的還有Jack Greenfield,他開發了第一個ORM工具,為模型驅動引擎建立了堅實的基礎。有了這樣一個創新的歷史,也就難怪XCode依然可以運行在2010年了。但是它現在仍然與時俱進嗎?還在領先么?能持續改進嗎?與其他語言相比,Objective-C還是一門足夠先進的語言嗎?或者,XCode已經落后了,會因為更先進的、模型驅動工具的出現而不再流行?我們甚至可以問MVC是未來嗎?或者,Android的概念和方法更優越?
對此你有什么考慮?
【編輯推薦】