从可编程到跨终端——QCon 北京 2013“跨终端的 Web”专题出品人鄢学鵾专访

  • 彭超

2013 年 1 月 27 日

话题:JavaScriptQConHTML5DevOps语言 & 开发架构文化 & 方法前端

鄢学鵾,常用 ID:三七、秦歌,天猫前端团队负责人。曾在网易做过 UI Designer,领导过雅虎中国的前端团队和口碑 UED,负责过阿里云 OS 运营。 对 Web 标准、前端开发模式、性能优化和自动化有较深入的研究, 目前专注于 PC 到 Mobile 领域的设计、 技术和业务间的融合。业余时间参入过几本前端书翻译,担任 D2 前端技术论坛的顾问,并一直主持 QConBeijing 和 QConHangzhou 的前端专题。 其信仰互联网精神(自由、开放、共享、创新),努力玩转设计与技术,尽情享受趣味和创意。他的 blog 是http://dancewithnet.com,Twitter 是@kavenyan

作为 QCon 北京 2013 大会跨终端的 Web出品人,鄢学鵾接受了 InfoQ 的采访,以下是采访内容。

InfoQ:能否先简单谈谈您在 Web 编程这个领域的从业经验,和您对此领域的理解?

鄢学鵾:我的经验最早从大学开始,领导一个学生团队负责学生网站,虽然这并不是一个商业站点,但运营、设计、前后端开发的分工协作已经有了雏形。

2005 年毕业后,在网易北京做 UI Designer,交互、设计和前端开发都做,那时 Web 标准和 Ajax 刚刚盛行,我的重点开始集中在 Web 前端开发领域,理解到对 Web 编程而言,标准是最低要求,Ajax 只是一种前后端的数据交换方式,重点是如何基于它们构建解决业务问题的程序。

2007 年加入了中国雅虎,这段时间让我充分地深入了 Web 前端开发的实践和理念,包括 JavaScript 库和框架设计与开发、Web App 的模块和组装、静态文件的部署和 CDN 的发布、API 服务层和前后端分离与协作。那时最重要的工作就是设计并开发了“NCP- 站长天下”的前端架构,它一个开放的 Web App 平台,其核心是 Web App 模块的定义、组装和发布机制。这个项目后来失败了,留下的火种演化为淘宝旺铺的前身。

再后来到了口碑网,从负责前端开始一直到整个 UED,这期间最重要的事情就是完整地实践了企业级前端架构,包括 Web 架构和 JavaScript 框架引用与升级机制、静态文件规则和发布机制、静态配置文件的引用和升级机制、以及与其相对的自动化工具。

之后,在阿里云 OS 负责内容运营,从 BD、运营、PD、UED、一直负责到相关业务的后端开发,这段时间除了对手机操作系统和生态有了深刻认识外,也对 Web OS 和 Mobile Web 有了深入的探索和实践。

去年底开始负责天猫前端,现在电子商务正处于 B2C 的快速壮大和 C2B 的兴起,而移动正在成为互联网的主流,所以我现在的目标是构建一个跨终端的前端架构使其能够低成本高效率地让所有用户享受到无处不在的天猫体验。 在我看来,Web 编程就是基于 Web 把 UI 设计和数据结合起来构建人机交互环境并发布到互联网上的迭代过程。

InfoQ:Web 编程与前端开发的关系是怎样的?

鄢学鵾:Web 是互联网的一部分,但由于互联网绝大部分内容都是通过 Web 呈现的,所以很多人把万维网(world wide web)当成了互联网。同样,前端开发指的互联网产品的 UI 和数据结合构建人机交互环境的开发过程,从 MVC 的角度来说,前端开发包括 View 层和与之相关的 Control 层。所以,前端开发是基于互联网来说的,Web 编程是基于 Web 来说的,只是 Web 占有量太大,很多场合会把两者等同起来。

准确来讲,前端开发不应该局限于 Web 编程,各种客户端也有前端开发,只是前端部分不是由专门的前端开发工程师来做。Web 编程不应该局限于 HTML、CSS、JavaScript,服务端构建 View 层的 PHP、模板语言等都属于 Web 编程。但在实际交流和分享过程中,iOS 客户端的前端开发会归于 iOS 的开发,PHP、Java 等语言的前端开发会淹没于后端开发的探讨中,这也是前端开发总是探讨 HTML、CSS、JavaScript 的原因,但随着 Nodejs 的发展、各种前端工具的兴起和前后端分离的深入,前端开发也越来越会从解决互联网产品的实际问题出发,不再单单是 HTML、CSS 和 JavaScript 等技术。

InfoQ: HTML5 和 Javascript 语言在此领域扮演者什么样的角色?

鄢学鵾:HTML 和 HTTP 的出现才标识 Web 的诞生和繁荣,而 JavaScript 和 Ajax 使 Web 在 2005 年迎来第二春。HTML、CSS 和 JavaScript 是 Web 编程的基石,也是 Web 能够如此盛行的原因。由于 Web 的盛行才导致 HTML、CSS、JavaScript 在前端编程中占据统治地位。Web 不是互联网的全部,同样 HTML、CSS、JavaScript 也不是前端开发的全部,而是至关重要的部分,只有和整个互联网生态的其他技术有效地融合才会更强大。

InfoQ:这个专题的名称从往届 QCon 中“可编程的 Web”变成了“跨平台的 Web”,为什么会有这样的变化?

鄢学鵾:上一届 QConHangzhou 的前端主题是“可编程的 Web”,当时 Mobile Client Application 大行其道让某些人担心"Web is Dead?",而实际情况是,新一轮的浏览器大战如火如荼,HTML5 继续在理想和现实中挣扎前行,JavaScript 从 Web 走到了 Server(NodeJS),Mobile Client Application 越来越多地 mushup Web Application,Web Sites 开始提供各种各样能解决实际问题的 API,Web 越来越强大的可编程性使其正发展成为互联网操作系统。

而今天,Mobile Client App 依旧如日中天,但没有人再担心"Web is Dead",反而因为多种操作系统、无数种屏幕尺寸和使用场景成为移动互联网的新挑战。大热门业务和大公司可以不考虑成本为不同的终端不同的设备构建各种客户端产品,但 Web 的通用性、低成本和快速发布显示了巨大优势,这就是为什么大量类似 TIME 杂志的网站都已经使用 Web 的响应式设计来解决跨终端的问题(http://mediaqueri.es),这也是为什么本期 QCon 主题要讨论“跨终端的 Web”的初衷。

InfoQ:现在各个移动平台对 WebApp 均提供了不留余力的支持。有为 Web 而生的 WebOS,FirefoxOS,近日 Ubuntu 也发布了最新的 OS 系统,Android,WindowsPhone 和 iOS 更在尽全力再提高 HTML5 的支持度与 Javascript 的运行效率。为什么会有如此繁荣的市场?

鄢学鵾:去年 QConhangzhou 2012 时,我曾说过“Web 越来越强大的可编程性使其正发展成为互联网操作系统”,这个真正有点 WebOS 的味道,因为这是基于互联网管理资源的一种方式,现在已经显示巨大的能力和生命力。但今天的终端操作系统不仅要管理软件,更要管理硬件,这都不是 JavaScript 擅长的,这就是为什么所有基于 HTML5 + JavaScript 的 WebOS 都不会成功,因为不可能短时间内解决操作硬件的性能问题和构建大型绚丽的游戏。硬件就应该交给底层语言去解决,所以短时间内 WebOS 肯定不可能成功,但基于操作系统使用 Web App 来管理互联网资源,这正是 Web 所擅长的且能够跨平台的,这就是为什么今天会受到如此重视的原因,虽然目前还不够繁荣,或许在明年这时就另一个世界了。

InfoQ:但也有人认为,在 web 端,html5 是 100% 晴天,在移动端则不然。Facebook 在这一年里彻底放弃了移动平台上的 HTML5 应用。您怎么看这一点?

鄢学鵾:今天移动端的用户规模已经超过了桌面端,但经济规模还差的很远,所以整个移动互联网还属于投资阶段,不计成本地投入导致了客户端如此火热,另外 Mobile Web 也没有完全准备好,比如移动端的网络稳定性、离线处理方案和性能,但随着基础设施的发展和对投入产出比的考量,跨终端的 Web 才是绝大部分互联网场景下的最合适选择。另外,Facebook 也没有彻底放弃了移动平台上的 HTML5 应用,只是认为现阶段使用 Native App 是一个更快的实现较好体验的解决方案,两者会齐头并进。

InfoQ:无论在桌面端还是移动端,NativeApp 与 WebApp 永远是大家争论的焦点。您如何看待两者的选择和取舍?

鄢学鵾:Native App 和 Web App 只是解决人机交互环境问题的两种方案,不是竞争对手,而是互补关系,选择哪个需要看使用场景、体验和成本。现在属于移动互联网的投资期和狂热起,所以大家基本上更关注使用场景和体验,而不考虑成本。

我个人认为 Web App 适用于解决对网络依赖性强且需要跨终端的互联网产品,比如交易和新闻,而 Native App 适用于对性能、效果和流畅度要求特别高的软件产品,比如游戏和 IM。整体上,我倾向于用 Web App 作为通用的跨终端解决方案,然后用 Native App 来解决大热门应用,同时两者还可以相互 mashup 来相互借力。

InfoQ:这个领域在 2012 年有哪些值得记录的进展?在未来又有怎样的挑战与展望?

鄢学鵾:2012 年最需要记录的 3 件事情就是“Web is Dead?”的讨论、“Facebook 承认在移动平台上使用 HTML5 策略有误”和 Win8 原生支持 Web App。

前 2 件事情不是对 Mobile Web 的打击,而是使 Web 开发的同学们真正开始思考 Mobile Web 所遇到的问题和 Web 在移动互联网时代的价值,而第 3 件正预示着 PC 和 Pad 的融合,也引发了这次“跨终端 Web” 的讨论。

今天 Mobile Web 最大的挑战在于网络、性能和效果,而跨终端 Web 要改变的不仅仅是设计开发思路,更需要运营和产品以及服务端都需要从细粒度模块化的角度来思考互联网产品的每个部分。

InfoQ:做为 QCon 中这个专题的出品人,您希望通过此专题为大家带来哪些实践经验,从而解决哪些问题?

鄢学鵾:

  • 从跨浏览器到跨终端,Web 应用造就了怎样精彩的商业案例?
  • HTML + CSS + JavaScript + Web API 解决问题的能力到底有多强大?
  • 跨终端的 Web 开发会给前端开发带来怎样的挑战和变革?

InfoQ:多谢三七。最后一个问题,如果不干 IT,您最想从事什么工作?

鄢学鵾:设计和开发有意思的亲子玩具,让未来的下一代在老爸亲手做的玩具陪伴下长大。

关于此次 QCon 北京的详细信息,请移步至大会官网。现在购票正处在八折折扣期,团体报名,更有其他优惠。报名请至大会报名链接。详情咨询qcon@cn.infoq.com

JavaScriptQConHTML5DevOps语言 & 开发架构文化 & 方法前端