【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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:564882

评论

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

解读 Reference

浮白

ThreadLocal Reference ReferenceQueue Finalizer WeakHashMap

前端科普系列(2):Node.js 换个角度看世界

vivo互联网技术

node.js 大前端

MacOS 环境下 Python 访问 MySQL

李绍俊

并发神器CSP的前世今生

soolaugust

并发编程 并发 Go 语言

【程序员自救指南】中关村保洁大叔的一句话竟然帮我转正了

华为云开发者联盟

服务器 数字化 华为云 企业上云 云服务器

Python处理邮件和机器人的实用姿势

程一初

Python 自动化 办公

Python处理Excel文件的实用姿势

程一初

Python 自动化 办公

LeetCode680-验证回文字符串 Ⅱ-Easy

书旅

LeetCode

影响音视频延迟的关键因素(三): 传输、渲染

ZEGO即构

buffer API RTC sdk

宿舍晚上温度高,那是你没听“鬼故事”

华为云开发者联盟

人工智能 AI 华为云 modelarts

Python处理Word文件的实用姿势

程一初

Python 自动化 办公

Python处理PPT文件的实用姿势

程一初

Python 自动化 办公

如何与面试官更好的沟通

escray

学习 面试

Python处理PDF的实用姿势

程一初

Python 自动化 办公

带你全面认识 Linux

简爱W

业务架构是什么?

周金根

BIZBOK 业务架构 IT帮 周金根

Python处理视频文件的实用姿势

程一初

Python 自动化 办公

详解责任链模式

大头星

JavaScript 测试系列实战(一):使用 Jest 和 Enzyme 测试 React 组件

图雀社区

单元测试 自动化测试 Jest

前端科普系列(3):CommonJS 不是前端却革命了前端

vivo互联网技术

Java 大前端 脚本

“深化产教融合·共育数字人才”全国产教融合信息化高峰论坛·江苏站成功举办

InfoQ_967a83c6d0d7

前端科普系列(4):Babel —— 把 ES6 送上天的通天塔

vivo互联网技术

Java 大前端 ES6

LeetCode1160---拼写单词---Easy

书旅

LeetCode

Python处理图像文件的实用姿势

程一初

Python 自动化 办公

Python1024办公自动化系列

程一初

Python 自动化 办公

从《三体》到“中美科技战”,3分钟理解“网络”D丝为什么要迎娶“算力”白富美

华为云开发者联盟

数据 网络 芯片 算力 三体

数据库设计

Jayli

数据库

Python处理音频文件的实用姿势

程一初

Python 自动化 办公

utf8字符集下的比较规则

Simon

MySQL 字符集

代理模式详解

大头星

MySQL从入门到精通

书旅

MySQL 索引

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