写点什么

iPhone 的开发环境优于 Android 吗?

  • 2010-11-23
  • 本文字数:1383 字

    阅读完需:约 5 分钟

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

2010-11-23 08:565065

评论

发布
暂无评论
发现更多内容

Web入门:CSS下拉图片

小院里的霍大侠

JavaScript Web 初学者 入门者

HTTP通用首部字段

穿过生命散发芬芳

HTTP 12月月更

OpenTelemetry系列 (四)| 如何使用Java Agent来实现无侵入的调用链

骑牛上青山

Java javaagent 调用链 OpenTelemetry 微服务调用链

架构实战营 3-5 消息队列备选架构随堂练习

西山薄凉

「架构实战营」

运维进阶训练营 -W09H

赤色闪电

运维

数据可视化图表系列解析——饼图

Data 探险实验室

数据分析 可视化 数据可视化 可视化数据 可视化工具

SRE运维解密-应对过载

董哥的黑板报

微服务 SRE 限流 SRE实践

架构实战营 3-4 架构设计后期随堂练习

西山薄凉

「架构实战营」

2022年浪过的那些城市

SAP虾客

杭州 2022年 无锡 东莞 SAP项目

架构训练营模块三作业

张建闯

架构实战营

安卓、iOS、小游戏三端同发?介绍给你一个新方式 - 普洱WebGL

僵尸浩

typescript 小游戏 Unity3D

设计模式之美——里式替换(LSP)

GalaxyCreater

设计模式

Flink 在米哈游的应用实践

Apache Flink

大数据 flink 实时计算

基于Go的缓存实现

俞凡

架构

架构误区系列10:不合理的分层

agnostic

软件分层

Web入门开发【二】

小院里的霍大侠

编程开发 初学者 入门实战 Web入门

极客时间运维训练营第九周作业

好吃不贵

2022-12-24:给定一个字符串s,其中都是英文小写字母, 如果s中的子串含有的每种字符都是偶数个, 那么这样的子串就是达标子串,子串要求是连续串。 返回s中达标子串的最大长度。 1 <= s的长

福大大架构师每日一题

Linux 算法 Shell 福大大

为什么更推荐使用组合而非继承关系?

JAVA旭阳

Java 架构

WEB21

Lenyi

网络安全 CTF ctfshow 爆破

WEB23

Lenyi

网络安全 CTF ctfshow 爆破

Flink 1.16:Hive SQL 如何平迁到 Flink SQL

Apache Flink

大数据 flink 实时计算

FFA 2022 主会场 Keynote:Flink Towards Streaming Data Warehouse

Apache Flink

大数据 flink 实时计算

【web 开发基础】PHP 中的预定义数组详解之一 (47)

迷彩

数组 全局变量 PHP基础 预定义数组

学生管理系统

KING

设计模式之美——对扩展开放、对修改关闭

GalaxyCreater

设计模式

模块三-外包学生管理系统的架构文档

悟空

学生管理系统架构

SAP MM SPED输出报错-No authorization for delivery from shipping point US##-之对策

SAP虾客

SAP MM SPED VL31N 公司间STO

Android Studio开发Android APP

芯动大师

Android Studio 开发环境 新建工程

【IntelliJ IDEA】idea 2018版本中没有SVN按钮或者图标的解决方法

No8g攻城狮

svn IDEA git 学习

SDK更新不了问题解决

芯动大师

android hosts SDK 教程

iPhone的开发环境优于Android吗?_移动_Jean-Jacques Dubray_InfoQ精选文章