InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

iPhone的开发环境优于Android吗?

作者 Jean-Jacques Dubray 译者 池建强 发布于 2010年11月23日

领域
架构 & 设计,
语言 & 开发
主题
调试器 ,
调试 ,
部署 ,
Android ,
移动 ,
架构 ,
编程 ,
iPhone ,
云计算 ,
操作系统 ,
争论

随着移动应用的日益普及,很多人开始尝试比较不同开发环境下的开发体验。大约一年前,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的概念和方法更优越?

对此你有什么考虑?

 

查看英文原文:is the iPhone Development Environment Superior to Android's?

译者 池建强 池建强,多年软件从业经验,先后在洪恩软件和用友集团任职。目前在瑞友科技IT应用研究院任副院长。

Andorid模拟器 发表人 Zhao Vincent 发表于
Re: Andorid模拟器 发表人 chi jacky 发表于
IDE和虚拟机只是小问题 发表人 cp true 发表于
执行效率和开发效率的矛盾 发表人 im Kevin 发表于
Re: 执行效率和开发效率的矛盾 发表人 毕 成栋 发表于
我觉得WebOS更好 发表人 Wei Zijun 发表于
Android的危局 发表人 chi jacky 发表于
刚开始很不习惯水果家i386的simulator 发表人 Du Song 发表于
Andorid模似器那是相当慢 发表人 yang song 发表于
其实只要能赚钱 发表人 Zhao Jeffrey 发表于
Re: 其实只要能赚钱 发表人 Liu Yang 发表于
  1. 返回顶部

    Andorid模拟器

    发表人 Zhao Vincent

    的确我在用2.1 , 2.2 的时候,模拟器速度很慢很慢。。。

  2. 返回顶部

    IDE和虚拟机只是小问题

    发表人 cp true

    IDE和虚拟机问题是不少,但并不会成为阻碍开发效率或产品质量的关键问题。

    本人从事Android开发,和iPhone开发的同事交流过后,Android平台的优势是毋庸置疑。基于Uri的Activity驱动,各种系统级事件触发,单元测试,直接使用现有的Java资源,方便的定制UI,etc. etc. 做iPhone开发的同事只有流口水的份。

    PS:如果嫌Eclipse的XML编辑器慢,只要把outline view关掉就可以了。

  3. 返回顶部

    执行效率和开发效率的矛盾

    发表人 im Kevin

    看到object-c的语法就感到头疼,不知道是因为习惯了C系语言语法的缘故还是这语言本身设计得很丑陋。
    java的速度慢这也是不争的事实,dotnet也有类似的问题,特别是使用了WPF技术的程序,这么多年硬件的进步全都被这些软件框架效率的退步给抵消了。不过从开发效率上的提升来考虑确实值得。

  4. 返回顶部

    Re: 执行效率和开发效率的矛盾

    发表人 毕 成栋

    objective-c,吐着吐着就习惯啦。我觉得挺好。内存管理超烦超酷。

  5. 返回顶部

    我觉得WebOS更好

    发表人 Wei Zijun

    我觉得两者都不如 Palm WebOS的开发来的轻松写意.
    当然WebOS也有其缺点,例如JS目前也没有一个王牌IDE(Aptana不错 但是还不够好) ,但是对于js高手来说 IDE似乎也不是必须的.
    可惜 WebOS这么好的系统依然小众.
    期待google的 chromeOS推出后 能让WebOS的概念更深入人心一些.

  6. 返回顶部

    Android的危局

    发表人 chi jacky

    我感觉目前基于Android的操作系统太多了,虽然没有乔帮主说的那么邪乎,但也差不太多。
    这种版本的差异会给开发人员带来巨大的困扰。当然,如果你是moto或联想的员工当然不在乎,对对于开发通用应用的人员来说,就不那么简单了。

  7. 返回顶部

    Re: Andorid模拟器

    发表人 chi jacky

    嗯,有时还出不来。

  8. 返回顶部

    刚开始很不习惯水果家i386的simulator

    发表人 Du Song

    用过龟爬一样的Android emulator才体会到水果的iPhone模拟器是开发人员的最佳trade off

    至于方括号神马的,习惯就好。

  9. 返回顶部

    Andorid模似器那是相当慢

    发表人 yang song

    Andorid模似器那是相当慢

  10. 返回顶部

    其实只要能赚钱

    发表人 Zhao Jeffrey

    什么开发工具,丑陋语法等等都是浮云。觉得obj-c不爽又如何?能赚到钱,自有开发人员会交口称赞或是避而不谈。

  11. 返回顶部

    Re: 其实只要能赚钱

    发表人 Liu Yang

    实在!!不能产生实际效益,没有人会关心它好用还是不好用。