喜感网石川谈 HTML5 的发展与动力

  • 涂兰敬

2013 年 10 月 18 日

话题:HTML5语言 & 开发

随着 HTML5 标准的不断推进与完善,传统的企业应用开发者也把目光放到了更具有表现力的 Web 应用中,而且EdgePhoneGap等工具的也让前端创造力应用的开发、一次编写全平台运行变得更为简单,就开发者而言,HTML5 带来了哪些机遇与挑战,我们采访了HTML5 Boilerplate项目核心成员、《HTML5 移动 Web 开发实战》作者、喜感网联合创始人石川:

InfoQ:我们看到,这几年有一个趋势,就是大量原本在服务器端的工作——尤其是展现层的工作——被转移到了前端,由浏览器来处理了。HTML5 不仅是 HTML 语言 +CSS+JS,还包括了离线存储、应用缓存、文件系统等大量原本操作系统才能享受到的资源。对于这样一个趋势,您是怎样看的?您觉得这个趋势背后的推动力是什么?

石川:我觉得最大的推动力还是用户的浏览器使用趋势, 现在人们用网络分享大量的信息,分享 ppt,设计文件,阅读电子书,看视频,阅览高清图片,存储办公文件,这些都是信息量大、功能性强的作业,所以自然会不断增加前端功能的复杂性。

InfoQ:由于前端被赋予了更多权限,前端的责任也变重了,只会玩几个框架是无法满足新的业务需求的。您建议现在的前端在哪些方面去进行积累?无论是语言、工具、框架、思维方式,还是其他任何方向,都可以谈谈。

石川:语言:

  • 多研究传统语言例如 C++ 肯定会有助于灵感,特别是现在前端的开发取代部分以前桌面语言开发的功能
  • 就 HTML5 来说,最好订阅 W3C working group 的群发邮件,这样可以吃透语言的特性,增强交流
  • 个人而言,我有每天读完一本书的习惯。科技方面的书没有那么频繁的出版,所以每周读一本科技的书也是对语言系统学习的好帮助

工具, 每天的生活是用秒计算的。工具上来讲,应该尽量利用插件带来的好处节省重复性的工作是非常重要的,每天花 5 分钟了解下:

  • 所用工具是否推出了什么更新版本
  • 第三方推出了什么所用工具的插件
  • 有什么同类工具,对比是否有什么好处

积少成多,慢慢地这样大大增加了开发效率

框架

  • github 上订阅一些常用框架的信息,了解最新的框架改动
  • 国外优秀的开发者都是挂在 IRC 上的,跟着他们一起编写框架,这样可以学到很多东西
  • 如果在工作中,使用框架,发现自己有更好的解决方案,就及时提交 pull request

思维方式 + 思维方式而言,就真的要对产品由衷的热爱 + 其实我觉得如果条件允许,最好拿比如小客户、朋友的网站作为练习,从文案、设计、开发都系统做一下。这样就真的更容易发现问题

InfoQ: 对于 Java 开发者,可能 Eclipse 是一个常规的开发工具;对于 Ruby 开发者,可能 RoR 是首先会考虑到的一个框架。使用常规工具和框架虽然不一定在任何场景下都最优,但有很多的好处。对于前端而言,目前 jQuery、Bootstrap 算是业界非常通用了,不知道开发工具这方面现在主要用什么?

石川:Sublime 应该算是一个比较通用的编译器,如果是编辑一个浏览和网站的话,这个工具本身功能已经足够好。再加上对插件的支持和强大的第三方插件开发,基本解决了能想到的重复型工作

InfoQ:接上一个问题,现在国内的几个大互联网公司有一个情况,就是他们不用通用的 jQuery、Bootstrap 这样的工具,而是非要自己搞一套出来,这几家公司内部的工程师对此也有不少抱怨。你对于这样一个情况的看法是什么?

石川:这个问题我们可以从两方面看:

  1. 从国内行业横向对比的角度来看,平心而论,能够真的花心思从头到尾独立研发的精神真的很稀缺。比如很多实业,都是一个“壳儿”,技术都是国外的,在销售、渠道、终端为王的时代,很少有人愿意从头到尾仔细做一件事了,所以国内互联网企业的工程师愿意花时间开发一套框架、工具这种精神,在大环境下,还是很可贵的,值得尊敬

  2. 从国内外就互联网行业纵向来看,问题的点可能主要在于开源本身是一个“众创”项目,而中国的开源项目没有和国外的工程师互动,这里面有语言、文化和习惯的问题,所以我觉得国内的公司推出一些独立研发的框架不是问题,问题是 1. 尽量用一个独特的切入点,在工作中的某些问题积累出的一套解决方法开发出框架 2. 怎么更高调的在国际开发者圈宣传出去,让国外开发者也了解加入

InfoQ:越来越重的前端在带来了好处的同时,也有另一个问题:移动端的浏览器还没有 PC 浏览器那么给力,前端写的重了,在手机上很难用起来。对于这一个问题,你建议怎样的短期处理方案和长期处理方案?

石川:无论长短期,这个要根据产品来看,要是通过产品或后台数据分析,得出结果是来自移动端的客户占有很大比重,条件允许的情况下,最好给移动端一套不同的 CSS 和 JS。这个用现有技术已经可以很容易从前端或后端检测用户使用的操作系统,如果发现用户使用的是手机浏览器,加载一套不同的 JS 和 CSS,这样不仅是考虑速度,更是根据用户体验的不同来处理这个问题

InfoQ:HTML5 的发展非常迅猛,Adobe 也在近期推出商业软件 Adobe Edge 和开源 Web 代码编辑器 Brackets,以弥补在 HTML5 方面的空缺。这里,我想请您谈谈:您对于 Adobe 在 HTML5 方面的表现有什么样的看法?另外一方面,您认为 Adobe 这样厂商的介入,对于 HTML5 技术的发展以及标准的推动有什么样的影响?

石川:我觉得像 Adobe 这样的厂商介入肯定是好的,毕竟大的公司可以利用资源优势弥补空缺。Edge 和 Brackets 都是不错的试验,但实际应用中还有些不足的地方。所以厂商的影响是否够大要看我们用什么标准去看它、衡量它,HTML5 是个很大的概念,你可以用它开发一个 app, 做一个网页,甚至发射个火箭也不是不可能。越是想要取代跨度较大领域技术的工具,肯定难度就越大,比如 Edge,或用某个移动工具取代 native app tools。把 Brackets 做的像 Sublime Text2 一样就相对容易,虽然也要一段时间。但是试验还是好的,因为以务实为基础的创新精神是大小企业都应该追求的。

HTML5语言 & 开发