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