HTML5 需要代言人来推动发展。有很多人都承担了这个角色,Mozilla 认为,通过一系列访谈和短视频向大家介绍其中的一些人是一个好主意。形式很简单——我们向专家们提出 10 个问题,然后进行简短的视频访谈,让他们自我介绍,并详细解答一些问题的答案。
今天,我们要重点介绍的是 Opera Software 的 Web 开拓者 Divya Manian。
你很可能因为她参与了 HTML5 就绪 和 HTML5 Boilerplate 而了解到 Divya。她在 Twitter 上的用户名是 @divya,并且积极参与了 CSS 标准工作组。
正如你将在访谈中看到的,Divya 在 Web 标准方面是一位非常务实的人,她热衷于教育开发者,而不是仅仅去吸引他们。
视频访谈
你可以在 此处使用任何支持 HTML5 的设备观看视频(由 vid.ly 提供)。
Divya Manian 的 10 个问题
1) 我觉得现在对于 Web 开发者来说是一个非常激动人心的时刻。你同意吗?是什么让你对我们现在可以使用的这些新技术感到如此兴奋?
当然。对于 Web 开发者来说,这些都是激动人心的时刻。几乎每周都会出现新的工具,网页所能实现的功能也从仅仅提供静态内容扩展到了支持实时媒体流等更多功能。每个浏览器也都有非常强大的开发者工具:Opera 的 Dragonfly、Chrome 的开发者工具、IE 的开发者工具,以及最初的开拓者 Firebug。因此,开发 Web 变得既简单又困难。
2) 在过去,我们非常推崇关注点分离作为构建 Web 产品的正确方法。HTML 用于结构,CSS 用于外观和感觉,JavaScript 用于行为。在我看来,随着新技术的出现,这种严格的分离正在变得模糊。我们可以在 CSS 中生成内容,并进行动画和转换。一些 HTML5 元素如果没有 JavaScript 就无法工作(canvas 就是一个很好的例子)。你认为我们需要重新审视我们的最佳实践吗?
是的,这些新功能确实让你不得不更仔细地思考将什么内容放在哪里,但它们仍然可以实现类似的分离,只是在进行分离时需要注意一些细微差别。
例如,我认为使用 JavaScript 进行动画是一种解决无法原生实现动画的障碍的方法。浏览器更有能力控制我们需要的动画(游戏动画情况略有不同),并且原生实现它们从长远来看可以获得更好的性能。
就我个人而言,可维护性和编写易读、运行良好且高效的代码比仅仅将代码分割成 HTML/CSS/JS 更重要。
当然,我们确实需要定期重新审视我们的最佳实践,因为技术在不断变化,我们的最佳实践也需要随之变化,它们都不是一成不变的,我们应该让它们与我们当前的功能/技术保持相关性。
3) 在你的文章“这场革命需要新的革命者”中,你指出,如今推动 Web 发展的大多数人并不是 Web 设计领域中那些知名的领军人物。你是否认为我们对 Web 标准的倡导存在某种自满情绪?
在这篇文章中,我有两个担忧
1. 我们没有听到足够多来自那些必须处理在网络连接差、审查制度严格、内容使用不常用语言的地区创建 Web 应用程序的人的声音。
2. 谈论的人中,动手实践的人太少了,我们一遍又一遍地听到同样的人谈论类似的话题。
我对这两点都感到强烈,但对 #2 更为重视,因为它影响着全世界所有的 Web 开发者。一些变化正在发生,但大多数人并不知道,因为消息没有传达出去。我认为我们应该尽力鼓励那些积极寻求创建工具、帮助其他 Web 开发者或致力于 Web 上有趣的挑战的人去表达和启发,而不是那些以其演讲能力而闻名的人,因为最终我们希望人们使用/运用对 Web 最好的东西,而不仅仅是被告知 5 年前的新闻。
4) 我最近发现协作变得越来越容易。像 Github、JSBin 和 JSFiddle 这样的工具允许你讨论代码,并让你的读者与你一起修复和修改代码。我最近在获取 防弹式 90 度旋转标题 时就采用了这种方式。你认为为什么没有更多的人利用这个机会?
我不敢说没有多少人正在利用这些工具。他们确实在使用,但确实不是每个人都加入了这个潮流。Github 绝对是你可以获得的最温和、最社交的版本控制入门方式,但很多 Web 开发者并不是程序员,他们没有经历过足够的痛苦和恐怖来了解为什么版本控制系统有用。它还需要了解什么是版本控制系统以及如何使用命令行(稍微有点),这对于那些习惯于使用 IDE 或 TextMate 进行设计的开发者来说可能有些吓人。
5) CSS 现在似乎正在突飞猛进。我个人非常兴奋于 CSS element 属性,它允许截取元素的屏幕截图。你是否有任何喜欢的并使用的鲜为人知的扩展?
我不是特别喜欢供应商前缀,我宁愿看到它们被快速取消前缀,而不是看到更多前缀填充样式表。
也就是说,我确实喜欢我们正在试验的许多新属性。我们有鲜为人知的 tab-size,它允许你控制内容中“制表符”字符的宽度。当你显示代码时,这非常有用。
Opera 还引入了 @viewport,它允许你从 CSS 中设置视口,而不是使用元标签(如 <meta name=”viewport” content=”width=320″>)。我认为视口属于 CSS 而不是标记,所以我很乐意看到它得到广泛采用。
一些鲜为人知的属性,如 box-sizing(在 Opera、IE 8+、Safari 5.1+、Chrome 中未加前缀,在 Firefox 中加了前缀),也具有宝贵的价值,因为它们允许你控制你的盒子模型,这绝对是从尝试处理不同盒子模型的黑暗时代迈出的革命性一步。
6) 在这次访谈之前的较长时间的聊天中,我们讨论了会议上人们在舞台上展示的内容与人们如今在日常工作中可以使用的内容之间似乎存在脱节。你认为我们应该解决这个问题吗?为人们提供更多现成的实用内容,而不是“看看可能实现什么”的方法?
我认为在舞台上展示的内容部分是娱乐,部分是信息。我认为很难展示“真正的动手操作”内容,而不会深入其中并因此失去一半的观众。我们肯定需要找到一个平衡点。
7) 如今在编写 CSS 时,我非常讨厌必须使用不同的浏览器前缀重复大量代码。动画是最糟糕的,所有关键帧都必须重复。你是否使用过 SASS 或 LESS 等预处理器?你对这种方法有什么看法??
是的,我曾经是/也是 Sass 的早期粉丝。我使用了 2.5 年(现在少了很多,因为我不像以前那样处理那么多 CSS)。我当然认为 Sass/LESS 对于现在的任何 Web 开发者来说都是前进的方向。它们使 CSS 变得更加强大,并试图引入 CSS 严重缺乏的编程范式。谷歌的 Tab Atkins 正在尝试将这些以提案的形式提交给 CSS 工作组,希望我们能看到浏览器中某种形式的支持。
但我建议在服务器端进行操作,对这样的代码进行 JIT 编译将会是一场性能灾难。
尤其是在今天,有如此多的供应商前缀扩展,不使用这些预处理器只会造成更多损害。
8) 你在 Opera 工作,Opera 浏览器实现了大多数 HTML5 表单元素。你认为为什么其他浏览器不愿意这样做?你认为 HTML5 表单是否已经准备好投入使用?
当然,其他浏览器并非不愿意这样做。Chrome 在支持方面与 Opera 非常接近,Firefox 和 IE10 也提供了不同程度的支持。是的,目前 HTML5 表单需要与 polyfill 一起使用,但我迫不及待地想要在所有浏览器上实现完全支持,以便我们能够超越在服务器端验证表单。
9) 我感觉 HTML5 世界中对语义问题普遍存在疲劳感。演示案例根本没有 HTML,或者使用 div 作为按钮等毫无意义的元素。当我们能够以 3D 旋转事物并发出声音时,语义难道就不够性感了吗?
我也对语义感到厌倦了 :) 我认为 HTML5 不仅仅是讨论何时使用 section 或 div 或 article 或 aside。语义是需要了解和学习的,但我们已经讨论了 15 年的语义,我们当然可以超越这一点,并学习 HTML5 中发生的所有新事物,这些新事物将允许以更快/更高效的方式为你的用户提供更好的体验。
10) 如果你有一个朋友想开始学习 Web 开发,你会告诉他们做什么和去哪里?如今,让人们快速上手最有效的方法是什么?
我会让他们首先访问 Opera Web 课程,它现在已经转移到 W3C——现在是一个维基,所以每个人都欢迎贡献力量,以保持它的最新和相关性。然后我强烈建议他们参考 Mozilla 开发者中心中的解释和教程!
你是否认识我应该采访的“HTML5 人物”?在 Twitter 上告诉我:@codepo8
关于 Chris Heilmann
HTML5 和开放 Web 的布道者。让我们修复它!
30 条评论