点击围观!腾讯 TAPD 助力金融行业研发提效、敏捷转型最佳实践! 了解详情
写点什么

观点:Tim Bray 谈移动应用的 Web 与原生之争

  • 2011-06-16
  • 本文字数:1388 字

    阅读完需:约 5 分钟

Tim Bray不久前在西雅图 Android 开发者群组会议上论及移动应用的 Web 与原生之争,他详述了双方的众多论点论据,但并没有彻底倒向任一方。他首先来了一段自白:

我是搞 Web 出身的……从 1994 年起就靠它吃饭,中间还小赚了几笔。所以我懂 Web,我喜欢它,我感激它。

首先,他请大家承认下述现状:

移动设备上几乎所有应用都需要使用网络,而它们几乎都是经由 HTTP 实现的。

所以他认为,几乎所有移动应用都是 Web 应用。只不过大家一般所说的“Web Apps”,其实是指用 HTML、JavaScript 和 CSS 编写的移动应用。而原生应用

载体是经过编译的代码,与 CocoaTouch、Android、WinPhone7 之类的框架打交道。

Tim Bray 解释,游戏多用原生技术编写的主要原因,是为了能够重用 Unity、Unreal 之类现成的游戏引擎。本质上,Android 和 iOS 可以在这个层次上共享 C 代码。

Web 技术的最大好处,是像游戏引擎一样,可以跨平台重用客户端代码。他认为,假如维持两大主流平台的状况,Web 技术在跨平台重用方面的优势不明显。但如果市场较为分裂,应用开发者需要支持 Windows Mobile 7 、RIM、WebOS 等平台,则 Web 技术将大展拳脚。

他指出 Web 技术当前存在若干实质障碍,如性能和访问内置硬件功能的方面,但并非不可克服。他个人认为 Web 技术的真正问题是在工具和文化层面。

Android 和 iOS 框架经过其精干开发团队的精准设计,开发者可以轻而易举地用它们创造出吸引人的原生应用。

也许 Web 框架的繁盛反而成了它自己最大的敌人:

这是一个两难选择,以 [专门搜集各种 JavaScript 库的]EvetyJS 网站为例,它列举了 21 种不同的 JavaScript 工具包,我敢说其中大部分都是相当优秀的,但我也敢说除了这 21 种,还有更多我从来没听说过的。那么,你准备押宝哪一种?

他的结论是虽然 Web 框架得到很大投入,“但浏览器还远远没有跟上的迹象”。

Tim 提醒说,PhoneGap 和 Appcelerator 希望提供一种方案让开发者既能够用 Web 技术编写跨平台共享的代码,又具备原生的外观和进入应用商店的能力,但这条路线“非常难,比表面上看要难得多”。

Tim 举出他自己使用“Trip It”应用的情况作为案例。“Trip It”应用同时提供了原生和 Web 两种版本,但并没有这样做的明确理由 ,因为它需要用到的一切能力,Web 框架都能提供。可是 Tim 的答案跟很多智能手机用户一样:

我提供又一件证据:在手机上,我每次都用 [Trip It 的] 原生应用,从来不用网站。还有,我是它的付费用户,促使我跨过收费门槛的,恰好是原生应用的流畅感。

智能手机是一类相当复杂的机器,每天都有成千上万的开发者为它创造一种新类型的应用程序——“融合应用(converged applications)”。这类新应用常常戏剧性地改变我们的生活,医疗、位置相关商业、社交网络、金融(通过手机收款和支付正日益普及)、娱乐……各领域达到的便利程度甚至连两年前都无法想象。虽然各种应用都离不开 HTTP,但其实设备本身还使用了一系列预设前提与 Web 迥异的电话通信协议,Web 几乎总是假定设备拥有持续的网络连接和电源,而这些通信协议则为双向通信、网络鉴权、小额支付、电源和带宽消耗等方面优化。

消费者会不会继续偏好原生应用和应用商店的便利?抑或消费者其实希望脱离蛮横的收费模式,宁愿接受 Web 和熟悉的广告?你是像 Tim 一样举棋不定还是早就下定决心?你自己用原生应用多还是 Web 应用多?

查看英文原文: Opinion: Tim Bray on the Web vs Native Debate

2011-06-16 07:451715
用户头像

发布了 225 篇内容, 共 57.4 次阅读, 收获喜欢 44 次。

关注

评论

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

GitHub已爆火!2021金三银四Java面试突击手册,已助力多人拿到offer

Java 编程 程序员 架构 面试

进阶面试皆宜!阿里强推Java程序员进阶笔记,差距不止一点点

Java架构之路

Java 程序员 架构 面试 编程语言

完美解决Win10“无法登陆到你的账户”问题,无法登录账户的全方面解决方案!

风骨散人

win10 系统

adb工具的基本使用

行者AI

软件测试

Service Mesh是什么,为我们解决了什么问题?

xcbeyond

Service Mesh 服务网格 3月日更

『计算机组成原理』 计算机系统概述(考研、面试必备)

风骨散人

大多数人不知道的Java知识 - Java内省机制

陈皮的JavaLib

Java 内省 java反射

区块链数字版权-重新定义版权保护

13530558032

『设计模式』80年代的人们竟然领悟了设计模式-- 发布者/订阅者模式 (包括发布者/订阅者模式和观察者模式的区别)

风骨散人

Java 设计模式 发布订阅模式

第九周学习总结于心得

产品经理训练营

云端身份认证和访问管理

龙归科技

身份云 云安全

区块链BaaS应用平台的搭建,BaaS平台的应用场景

13828808769

#区块链#

智慧公安重点人员系统开发,情报研判管控平台的搭建

13828808769

【里程碑】Linkis 1.0.0-RC1 版本发布

WeDataSphere

大数据 开源 WeDataSphere Linkis 计算中间件

已拿到蚂蚁金服Offer!阿里内部二十三万字Java面试题总结

Java架构之路

Java 程序员 架构 面试 编程语言

2021最新分享快手/百度/蚂蚁/字节面经总结

比伯

Java 程序员 架构 面试 程序人生

iOS面试进阶&程序员养成文件(附下载地址)

ios 程序员 面试 iOS逆向

Rust从0到1-基础概念-变量

rust 变量

百度Feed稳定性架构实践

百度Geek说

解决方案 IDC feed

区块链电子合同--助推智慧政务

13530558032

OKR之一

张老蔫

28天写作

『设计模式』以为是个王者,后来班主任来了!设计模式--二五仔的观察者模式

风骨散人

设计模式 观察者模式

vivo 应用商店中的断点续传技术剖析

vivo互联网技术

源中瑞智慧平安社区-为社区居民保驾护航

13530558032

【Mysql实战】问题分析利器之binlog

程序员架构进阶

MySQL 数据库 Binlog 28天写作 3月日更

牛哇!看完阿里独家面试手册金三银四稳了,GitHub一天标星66K(Java岗)

Java架构之路

Java 程序员 架构 面试 编程语言

『Python爬虫』Python实现刷B站、爱奇艺等视频网站播放量(Python教学文章)

风骨散人

Python 爬虫

JDBC--批量插入

打工人!

Java MySQL JDBC MySQL性能优化

MySQL 索引原理 图文讲解

陈皮的JavaLib

MySQL 数据库 索引

观点:Tim Bray谈移动应用的Web与原生之争_JavaScript_Jean-Jacques Dubray_InfoQ精选文章