HTML5 揭秘

关于 HTML5 “准备就绪” 的持续讨论基于许多错误的假设。这些导致了关于 HTML5 的谬误,这些谬误一旦被说出就会不断重复——很多时候根本没有验证其有效性。

HTML5 性能不佳?

每个想要谈论 HTML5 问题的人都关注的一大问题是性能。这里的主要问题是,几乎所有比较都忽略了一个事实,即你在比较苹果和梨(并非双关语)。

将 HTML5 应用程序的性能与原生应用程序进行比较,就像比较定制西装和商店里买的成衣。当然,定制西装会像手套一样合身,看起来也很棒,但如果你想出售它或将其转交给其他人,你就会很失望。对于下一个人来说,它不会是一样的。

IMG_4197.jpg

这就是原生应用程序——它们是为单个环境和目的构建和优化的,并且处于固定状态——稍后详细介绍。

另一方面,HTML5 从其定义来看 是一种 Web 技术,应该独立于环境、显示或技术运行。它必须尽可能灵活,才能在 Web 上取得成功。从其定义来看,Web 是为所有人服务的,而不仅仅是那些能够负担得起非常昂贵的硬件并且乐于被一家公司控制的固定环境所束缚的一小部分幸运的人。

原生应用程序需要为每个设备和每个新平台从头开始编写,而 HTML5 应用程序允许你使用同一产品支持手机、平板电脑和台式机。HTML5 应用程序可以测试支持的功能并改进速度更快和更新设备上用户的体验,而不是将无法购买另一部手机的用户拒之门外,而不是具有固定尺寸和功能。

另一方面,原生应用程序在很多情况下都需要升级,并强迫最终用户购买新硬件,否则他们将无法获得产品。从灵活性的角度来看,HTML5 应用程序表现出色,而原生应用程序使你依赖于你的硬件,并在你无法负担或不想进行升级时让你陷入困境。一个很好的例子是苹果目前从 iOS 上切换到他们自己的地图。许多最终用户感到不满意,并且更愿意继续使用 Google 地图,但他们做不到。


HexGL - 一款由 WebGL 驱动的赛车游戏

看到 HTML5 在台式机上完全能够在性能方面超越,从滚动性能到 动态分析和更改视频,再到 以非常高的帧速率运行完整的 3D 游戏 并拥有 高速赛车游戏,我们不得不问自己,其性能问题出在哪里。

答案是硬件访问。为 iOS 和 Android 开发的移动硬件将 HTML5 应用程序视为二等公民,并且无法访问允许实现峰值性能的部分。iOS 中的 Web 视图受到操作系统的限制,无法像原生应用程序一样快速运行,尽管它使用了相同的原理。在 Android 上,Chrome 和 Firefox 展示了浏览器可以运行的速度,而相比之下,原生浏览器则缓慢爬行。

Android 上的原生浏览器让我们想起了 90 年代的 Internet Explorer,它威胁着长期保持不变,并阻碍万维网的发展——Mozilla 和 Firefox 诞生的原因。

从本质上讲,HTML5 是一辆 F1 赛车,它必须在泥土路上行驶,同时拖着操作系统赋予它的很多额外有效载荷,而无法绕过它——至少目前是这样。

HTML5 无法盈利?

HTML5 是一个基于开放 Web 技术的技术栈。说 HTML5 没有盈利模式,就像说 Web 无法盈利一样(当这写在一则显示广告的新闻网站上时,尤其具有讽刺意味)。

虽然乍一看,封闭的应用程序市场是销售产品的简单方法,但关于其成功的炒作很多,实际上,很少有开发人员能够通过封闭应用程序市场上的单个应用程序谋生。随着应用程序市场中发现和查找变得越来越困难,许多开发人员不再构建一个应用程序,而是构建数百个相同的应用程序(会说话的狗、会说话的猫、会说话的驴……),因为关键在于快速被发现并在市场搜索结果的第一页。

这就是使用原生应用程序的封闭应用程序市场对开发人员真正不利的地方:应用程序在 Web 上没有地址 (URL),并且无法在市场之外被找到。你需要手动在每个市场中提交每个应用程序,遵守其审查和提交流程,并且无法轻松更新你的应用程序,而不会导致服务中断。

HTML5 应用程序位于 Web 上并具有 URL,它还可以与 Adobe PhoneGap 等产品打包,成为 iOS 或 Android 的原生应用程序。反之则不可能。

从长远来看,这引发了一个问题,对于开发人员来说,哪种策略更好:押注于任何时候都可能撤回你的产品的单个封闭环境,还是在全球开放分发网络上分发并覆盖封闭商店?

Android 和 iOS 应用商店中的许多应用程序实际上都是 HTML5,并使用 PhoneGap 进行了转换。关于这一点,最大的故事是 《金融时报》将其应用程序发布为 HTML5 并获得了比原生应用程序更高的利润。最近,《纽约时报》 宣布将效仿其 Web 应用程序。

HTML5 无法离线使用?

由于 HTML5 是一个 Web 技术栈,因此本能反应是认为你必须始终在线才能使用它们。这完全是错误的。在 HTML5 应用程序中,有许多方法可以离线存储内容。最简单的方法是 Web 存储 API,它 在所有现代浏览器中都受支持(Opera mini 除外,因为它通过云服务发送内容并拥有自己的存储工具)。你还可以使用 AppCache 离线存储应用程序本身 它除了 Internet Explorer 外,其他所有浏览器都支持。如果你需要存储比 Web 存储提供的数据更复杂的数据,则可以使用 IndexedDB (适用于 Chrome 和 Firefox) 或 WebSQL (适用于 iOS 和 Safari)。为了解决这些问题,可以使用像 Lawnchair 这样的库来简化开发人员的使用。

HTML5 没有开发环境?

经常提到的一个问题是,HTML5 缺乏开发人员的工具。奇怪的是,你从未从开发人员那里听到过这种说法,而是来自那些希望购买软件来提高开发人员效率的人,而不是让他们自己决定什么能提高他们的效率。

HTML5 开发的核心是 Web 开发,并且为此提供了一个非常实用的开发环境。同样,主要问题是对 Web 的误解。你不会构建一个在任何地方看起来和运行都一样的产品——这会剥夺 Web 的核心优势。你构建一个对所有人都有效并在目标平台上表现出色的产品。因此,你的开发环境是一套工具,而不是一个可以为你做所有事情的单一工具。根据你构建的内容,你可以选择使用其中的许多工具或只使用一个。

Web 作为媒体的成功正是基于这样一个事实:你不需要成为开发人员才能发布内容——你可以使用博客平台、CMS 甚至操作系统附带的简单文本编辑器来创建你的第一个 HTML 页面。随着你在开发人员职业生涯中的进步,你会发现越来越多的你喜欢的工具,并对这些工具感到舒适和有效,但没有一个工具可以统治所有工具。一些开发人员更喜欢 Visual Studio 或 Eclipse 等 IDE。其他人想要 Dreamweaver 等所见即所得风格的编辑器,但大多数 Web 开发人员都会使用文本编辑器或其他一些工具。从 Sublime Text、Notepad++ 到 Linux 计算机上的 VIM 或 emacs,所有这些都是可以被数百万开发人员每天使用并用于构建 Web 内容的工具。

在 Web 开发人员调试和测试方面,如今他们很幸运,因为我们的最终用户必须查看我们构建的软件——浏览器——也是调试和测试环境。从 Firefox 将 Firebug 作为附加组件来实时查看更改并动态更改内容开始,然后是 Opera 的 Dragonfly 以及 Safari 和 Chrome 的 Devtools,现在所有浏览器都具有专门为开发人员提供的许多功能。Firefox 的新开发者工具 甚至更进一步,它不仅是一个调试环境,而且本身就是一组工具,开发人员可以根据自己的需要对其进行扩展。

远程调试是我们现在拥有的另一个选项。这意味着我们作为开发人员可以在我们的开发计算机上更改在手机上运行的应用程序,而不必编写它们、将它们发送到手机、安装它们、测试它们、查找错误并重复。这大大加快了开发时间。


Firefox 中的远程调试

对于更偏向视觉的开发人员,Adobe 最近发布了其 Edge 套件,它将所见即所得风格的开发引入 HTML5,包括从 Photoshop 拖放。Adobe 的 Edge Inspect 和 PhoneGap 使在多个设备上同时进行测试以及将 HTML5 应用程序作为打包的原生应用程序发送到 iOS 和 Android 变得容易。

在部署和打包方面,Google 刚刚发布了其 Yeoman 项目,该项目使 Web 开发人员可以轻松地将 Web 产品打包并部署为应用程序,并包含使它们运行良好的所有必要步骤。

总而言之,HTML5 没有固定的开发环境,因为这会削弱平台——这是 Web,你可以选择最适合你的工具。

HTML5 可以做而原生应用程序无法做到的事情

从本质上讲,HTML5 的许多谬误都是基于这样一个事实,即比较是在为其测试平台明确构建的内容与也在该平台上支持的内容之间进行的。就像比较快艇和气垫船的性能会产生相同可预测的结果一样。更有趣的问题是,是什么让 HTML5 对开发人员和最终用户来说如此出色,而原生应用程序可以或无法做到这一点。

  • **一次编写,随处部署** - HTML5 可以在浏览器、平板电脑和台式机上运行,你可以将其转换为原生代码以支持 iOS 和 Android。反之则不可能。
  • **通过 Web 共享** - 由于 HTML5 应用程序具有 URL,因此可以通过 Web 共享并通过搜索 Web 找到。你不需要转到市场并从拥挤、有限的空间中找到它,而是可以使用相同的技巧来推广其他 Web 内容。喜欢和链接到你的应用程序的人越多,就越容易被找到。
  • **基于商定的多供应商标准构建** - HTML5 是使 Web 成为现在这样的公司的共同努力,而不是一家可以朝着你不满意的方向发展的供应商。
  • **数百万开发人员** - 过去几年中为 Web 构建过内容的每个人都准备编写应用程序。它不再是一个小型、专门的社区。
  • **消费和开发工具是同一件事** - 你只需要一个文本编辑器和一个浏览器即可开始。
  • **小型、原子更新** - 如果原生应用程序需要升级,则需要重新下载整个应用程序(愤怒的小鸟的新关卡?以下是通过你的 3G 连接下载的 23MB)。HTML5 应用程序可以根据需要下载数据并将其离线存储,从而使更新不那么痛苦。
  • **简单的功能升级** - 原生应用程序在安装时需要向你请求访问硬件的权限,并且以后无法更改,这就是为什么每个应用程序在一开始就请求访问所有内容的原因(这当然存在隐私/安全风险)。HTML5 应用程序可以根据需要请求访问硬件和数据,而无需更新或重新安装。
  • **适应环境** - HTML5 应用程序可以使用响应式设计为环境提供最佳体验,而无需更改代码。你可以从台式机无缝切换到移动设备再到平板电脑,而无需在每个设备上安装不同的应用程序。

让我们看看原生应用程序是否可以做到这一点。

打破硬件锁定并简化盈利

HTML5 目前并非开发人员的显而易见的选择的主要原因是在涉及硬件时上述提到的锁定。iOS 设备不允许使用不同的浏览器引擎,也不允许 HTML5 访问摄像头、地址簿、振动、电话或短信。换句话说,所有使移动设备对开发人员来说有趣且对应用程序非常必要的功能。

为了解决此问题,Mozilla 和其他一些公司创建了一组 API,以标准化的方式定义对这些 API 的访问,称为 Web API。这允许任何浏览器以安全的方式访问硬件,并打破锁定。

第一个实现这些 API 的环境是 Firefox OS,其设备将于明年开始出货。使用 Firefox OS 手机,你可以构建具有与原生应用程序相同的硬件访问权限的应用程序。开发人员可以直接访问硬件,从而可以构建速度更快且更重要的是更小的应用程序。对于最终用户而言,好处是设备将更加便宜,并且 Firefox OS 可以运行在非常低规格的硬件上,例如无法升级到最新 Android 的硬件。

在盈利方面,Mozilla 正在开发自己的 HTML5 应用程序市场,该市场不仅允许提交 HTML5 应用程序,还允许通过简单的搜索在 Web 上发现这些应用程序。为了方便最终用户购买应用程序,我们与移动运营商合作,允许将账单计入移动合同。这允许没有信用卡的最终用户也能购买应用程序并加入移动 Web 革命。

HTML5 发展到什么程度了?

总而言之,HTML5 正在飞速发展,成为一个非常有趣且可靠的应用程序开发平台。我们必须消除的主要障碍是硬件访问,并且随着 Web API 的工作以及像 PhoneGap 这样的系统为我们提供了访问权限,这些障碍比我们预期的要小得多。

上面提到的 HTML5 相比原生应用的优势足以成为开发者参与并从 HTML5 开始的理由,而不是将时间浪费在为每个平台构建不同的代码库上。如果你只想支持一个特定的平台,你当然可以不这么做,但如果那样的话,就不要再抱怨 HTML5 的问题导致了你的决定。

HTML5 开发独立于平台和浏览器。如果你不认同这个理念,就会限制它的潜力。历史上,封闭的平台来了又去,而网络仍然发展强劲,它让你能够触达全球数百万用户,并且让你无需征求任何人的许可或安装复杂的开发环境即可开始开发。这就是人们开始使用网络的主要原因,而且至今仍然如此。没有人被拒之门外,所以,来试试吧。

关于 Chris Heilmann

HTML5 和开放网络的布道者。让我们一起解决这个问题!

更多 Chris Heilmann 的文章…


124 条评论

  1. Ollie Wells

    在所有“原生 vs HTML5”的文章中,这篇文章让人耳目一新。

    这可能是第一篇明确指出 HTML5 擅长什么以及在某些情况下它如何与原生应用抗衡的文章……但同时也没有假装 HTML5 是“新的”原生应用。

    写得不错。

    2012 年 11 月 1 日 07:43

  2. Joe

    这都很好,但问题不一定如本文所述。

    HTML5 根本没有很好地扩展 HTML4。如果它不可扩展,就不应该再叫 HTML 了。我希望看到不同语言版本之间更好的兼容性。HTML5 就像一个不同的实体。它很可能是一个为 Web 设计的 XML 版本。

    另外,XHTML 与 HTML5 有什么关系?

    2012 年 11 月 1 日 08:49

    1. Chris Heilmann

      Joe,你已经回答了自己的问题:XHTML 是 Web 的 XML,因此不可行,因为任何错误都会导致页面完全无法渲染。XHTML 从来都不是一个好的选择,主要是因为当您正确地将其声明为 XML 时,IE6 从未显示过它。HTML5 是对 Web 标记语言的彻底重启,其主要原则就是向后兼容,而不是将用户拒之门外。我同意,在语义上,我们没有让它变得更好,但我不知道你所说的“它不可扩展”是什么意思。HTML4.01 也从未可扩展过……

      2012 年 11 月 1 日 09:10

      1. Joe

        嗯,很有趣。感谢你的回复,Chris。好吧,这在 XHTML 和 HTML 方面是有道理的。我想我只是不喜欢 HTML5 与 HTML4 的偏差有多大。我并不否认它更好,也更智能,我只是觉得我们走在一条特定的语义语言和关联的道路上,而 HTML5 却大相径庭。

        也许我无法接受改变。我希望不是这样,否则就意味着我老了。

        2012 年 11 月 1 日 12:54

        1. David

          HTML5 与 HTML4 偏差?怎么会?就浏览器而言,实际上只有两种渲染模式:严格模式和怪异模式。你称之为 HTML5 还是 HTML4 都没有意义。唯一重要的是文档类型,而它所做的只是设置渲染模式。

          关于这篇文章,Firefox 在 Linux 上的性能很糟糕。一次编写,随处运行(有时)在技术上是正确的,但用户体验通常很糟糕。更像是“一次编写,在 Windows 和 Mac 上运行,但忘记 Linux 或移动设备吧”。还有一个老生常谈的问题,那就是 IE6-8……它们短期内不会消失。也许再过两年,我们就能让 IE8 退休了,但过去 5 年来,我们一直都说 IE6 会退休……

          2012 年 11 月 1 日 17:40

          1. Robert O’Callahan

            你在 Linux 上使用 Firefox 时遇到了什么具体的性能问题?否则很难解决你的评论。

            2012 年 11 月 2 日 02:34

          2. David

            @Robert,

            我今天试着玩了一下,试图找出为什么 Firefox 在 Linux 上感觉很慢。我认为我找到了困扰我的原因。在 Linux 上使用 FF 的鼠标滚轮滚动时感觉很慢。当使用鼠标滚轮时,滚动会有点滞后,并且与使用滚动条相比会卡顿。这不是一个典型的网站,但可以显示这个问题的网站是 http://2011.beercamp.com。忽略剪裁和分层问题,只关注滚动的流畅度。

            在 Linux 上使用滚动条滚动相对流畅。虽然没有 Chrome 那么快,但仍然相当不错。

            使用鼠标滚轮滚动时,会卡顿很多。我尝试关闭平滑滚动,这使得情况稍微好了一些,但仍然不够理想。

            在 Windows 上,使用鼠标滚轮或滚动条以及启用平滑滚动时,滚动都很好。

            请注意,我在一年前的 Core i7 机器上试用了这些网站。两年前,我有一台运行 Ubuntu 的惠普 Core 2 Duo 笔记本电脑和一台运行 Windows 的老 IBM ThinkPad(是的,*那个*老的)。Firefox 在 IBM 上的滚动速度和流畅度都比在惠普上快。

            2012 年 11 月 4 日 20:40

  3. mpmedia

    很棒的文章。
    但是“一次编写,随处运行”并不总是正确的。尤其是在移动设备上,尤其是在尝试为设备编写游戏时。设备上的性能也不尽如人意。如果用户体验真的很重要,那么原生开发仍然是最佳选择,因为它总是比任何用 js/html 编写的代码都要快得多。
    前端开发人员倾向于首先为 WebKit 编写代码,例如,因为它在 Google 和 Apple 设备上很常见。然后对其他平台进行快速修复。HTML5 很好,但它不是万能药。它是一个标准,它很重要,但你不能让人们认为编写 HTML5 会比编写 Java 或 Obj-C 更容易,这些语言提供了很多 HTML5 没有提供的功能。

    2012 年 11 月 1 日 09:05

    1. Chris Heilmann

      同意。这在文章中有所涉及——问题不在于语言,而在于这些设备上 Web 视图的性能。如果这个问题不再存在,那么你用什么语言编写就无关紧要了。现在,尤其是在移动游戏方面,硬件限制使得无法实现性能均等。在桌面设备上,公司会因为这种事情而被起诉 :)

      2012 年 11 月 1 日 09:13

      1. Eelis

        如果你使用 Emscripten 将 C/C++ 编译为 Javascript,就像 BananaBread 所做的那样,结果比你将其编译为原生代码慢 3 或 4 倍(根据 Emscripten 的常见问题解答)。因此,在我看来,基于 Javascript 的 Web 应用的性能问题远不止 Web 视图未经优化那么简单。

        2012 年 11 月 1 日 12:16

        1. Chris Heilmann

          我不是这方面的专家,但如果这是转换过程的一部分,我不会感到惊讶。转换的目的是作为一种快速重用的方法,而不是优化 JS。

          2012 年 11 月 1 日 14:01

        2. Justin McCandless

          编译为 Javascript 的结果随后必须在 Web 视图中运行,并受到硬件限制的影响,而编译为原生代码的结果则可以作为原生应用不受限制地运行。我不熟悉 Emscripten,但如果我理解正确,我认为将你的 Javascript/原生代码从 C 编译而来的事实不会让你在这里进行任何新的比较。

          2012 年 11 月 1 日 23:16

          1. Eelis

            Emscripten 速度降低 3-4 倍不是因为“硬件限制”,而是因为 LLVM IR 的级别比 Javascript 低得多,这意味着如果你将 LLVM IR 编译为 Javascript,高效的低级操作(如原始内存访问)将转换为效率低得多的高级操作(如访问模拟原始内存的 Javascript 数组)。

            因此,情况并非仅仅消除硬件限制并优化 Web 视图后,你使用什么语言就无关紧要了。即使硬件限制消失了,Web 视图也得到了优化,你/仍然/需要考虑你使用的语言,因为除了 Javascript 之外的任何东西都必须编译为 Javascript,并且由于 Javascript 的性质,对于许多面向性能的语言来说,这意味着*严重的*速度下降。

            2012 年 11 月 2 日 08:20

  4. Fabian

    虽然很多都是真的,但遗憾的是,没有可用的方法来调试 Web 视图中发生的事情。像 Weinre 这样的工具是绝望者的最后选择,它并不算数。

    2012 年 11 月 1 日 10:15

    1. Chris Heilmann

      确实,这个问题又回到了操作系统开发者的身上 :(

      2012 年 11 月 1 日 10:31

  5. NinjaWarrior1976

    > 原生应用需要为每个设备和每个新平台从头开始编写

    你可以使原生应用可移植。就像你在 Firefox 上做的那样。看到这里我就停止认真阅读了。

    请停止写这种糟糕的文章。请用实现来证明 Web 平台的性能,而不是用言语。拜托。

    2012 年 11 月 1 日 11:01

  6. we

    “确实,这个问题又回到了操作系统开发者的身上 :(”

    哈哈,但你的重点是它不依赖于设备/操作系统……失败。此外,大多数应用只针对操作系统,而不是特定架构(而且,你拥有可以简化多个操作系统软件开发的通用框架)。更不用说很多在线“应用”缺乏功能,*需要*至少*某些*连接(大部分是比较大的而不是小的),而且……通常只在 Chrome 上(大多数情况下在 Fx 上)运行(良好)……耶,它比 Win/Mac/Linux 三合一更糟糕……

    2012 年 11 月 1 日 11:07

  7. Michael

    很棒的文章。几年前我在 Palm 工作过,我记得我们是如何从头开始使用 HTML5 构建整个 WebOS 并让开发者直接访问硬件栈来构建 HTML5 应用的。硬件还没有完全准备好,所以性能一直是一个问题,直到后来的 Palm Pre 2 发布,而 iOS 已经根深蒂固,无法获得市场份额。希望 Firefox OS 会脱颖而出。

    2012 年 11 月 1 日 11:27

  8. Bobby Newmark

    这篇文章的非 SSL URL 重定向到 HTTPS,但当页面加载时,HTTPS 页面会引发混合内容警告。这有点烦人。

    2012 年 11 月 1 日 11:32

  9. Scott

    为什么一个 HTML5 布道者使用 Flash 视频来展示 HTML5 演示?这是在钓鱼吗?

    2012 年 11 月 1 日 13:16

    1. Chris Heilmann

      不,我们称之为 YouTube。它在这里显示为 html5 视频……还有:http://www.zeldman.com/2011/11/18/it-is-not-ironic/

      2012 年 11 月 1 日 13:25

    2. Pluto

      仅仅因为你没有通过 Youtube 启用 HTML5,并不意味着其他人也没有启用。 https://www.youtube.com/html5

      2012 年 11 月 3 日 14:11

  10. pjmlp

    你忘记了

    – 一次编写,随处调试。

    2012 年 11 月 1 日 13:45

    1. Chris Heilmann

      逐步编写,只在需要的地方调试。怎么样?

      2012 年 11 月 1 日 13:55

      1. Haakon Løtveit

        “是的,你的应用程序无法工作,但由于你使用的是 Linux/OSX/Windows XP,我们不会修复它,因为你没有使用 Windows 7 和 IE 9 或更高版本。”

        这基本上就是它的意思。

        虽然可能不是你/想要表达/的意思。

        2012 年 11 月 2 日 06:39

    2. Pluto

      下载多个浏览器并测试相同的 URL/Web 应用比安装多个操作系统、运行它们、安装你想要测试的应用,然后测试它们更容易。

      别忘了,当你必须构建一个应用程序,然后将其复制到另一个操作系统中进行测试时,这会更加困难。难道你不认为保存 Web 应用中一部分文本文件(JavaScript、HTML、CSS 等)的更改并刷新页面更容易吗?

      2012年11月3日 14:22

  11. Achim Schlemmer

    Chris,我只想说感谢你为独立做出的有力辩护。有力,充满激情。

    2012年11月1日 14:25

  12. Luke

    Chris,
    你是程序员,还是仅仅是Mozilla的公关?我自己用Banana Bread做了一些测试,正如上面所说,它至少比运行简单地图的原生Cube 2应用慢4倍。加入复杂的几何图形,它会慢10倍。

    当然,高端PC可以运行HTML5的Wipeout克隆版,比如HexGL,就像我10年前的PS2一样。你仍然没有证明HTML5在性能方面与原生应用具有竞争力。Farmville或PS2级别的游戏没问题,但如果想用HTML5技术构建像BF3那样现代的游戏,祝你好运。

    2012年11月1日 15:05

    1. Chris Heilmann

      这不是我想要说明的重点。我很乐意让Mozilla的Emscripten和WebGL团队来应对这个挑战。我认为我们离你在移动设备上想要达到的3D性能还很远(在我的Nexus 7上玩一些游戏,看看它有多热以及电池电量消耗的速度就知道了)。这也不是这篇文章的重点——你可以在此找到其他关于性能的相关帖子。

      2012年11月1日 16:05

      1. Luke

        Chis,你的观点是什么?这篇文章的标题是“HTML5真相揭秘——HTML5性能不佳?”我重新阅读了你的文章,你的观点似乎是它的性能“足够好”,阻碍HTML5性能的唯一因素是“操作系统”。

        你用如此薄弱的论据声称自己“揭秘真相”,这怎么可能?这就像说我的Apple IIe的图形足够好一样。

        至于操作系统是限制因素,这完全是错误的。操作系统并没有阻碍Firefox和HTML5应用。阻碍它们的是运行它们的虚拟机。JavaScript虚拟机本身会占用大量内存,通常为300MB到1GB,然后必须花费宝贵的CPU周期将代码转换为原生代码。所有这些都会导致巨大的性能损失。其他HTML5技术,比如CSS,从未设计为硬件加速。即使没有操作系统,运行速度仍然会比原生应用慢得多,因为你无法访问硬件的功能。这是HTML5的问题,而不是操作系统,也不是浏览器。

        所以,如果你担心电池性能和CPU使用情况,那么你应该坚持使用Nexus 7原生游戏或iOS游戏,因为任何HTML5版本的相同应用都需要多一个数量级的CPU才能获得你看到的相同效果。

        我希望你们能够成功。但你们需要通过开发高性能浏览器来实现这一点。我们知道你们的平台能够做到什么,而你们还没有发挥其全部潜力。给我提供Electrolysis项目的更新。然后网络应用可以利用多个CPU核心。给我们提供这样的东西,而不是这些垃圾。

        2012年11月1日 19:19

        1. Chris Heilmann

          这篇文章的目的是针对所有那些断言HTML5无法离线、性能明显不足以及无法盈利的文章提出反驳。有很多这样的文章,分析师和记者们在阅读时,由于没有时间查看基准测试结果和详细的技术设置讨论,就会接受这些观点。

          Nexus 7的例子是使用原生游戏……再说一次,我们可以优化Firefox到天荒地老,但如果它甚至不被允许在操作系统上运行(就像iOS的情况一样),那么我们的WebAPI工作和性能工作就没有达到预期目标。

          这里的重点是要提高人们的认识,即有些事情是_可以_实现的,WebAPI工作正在进行中,并且它没有在浏览器中得到广泛应用,原因是人们反复争论“原生始终更好,所以为什么要费心”。

          标题不是我起的——最初我把它叫做“HTML5神话与一些解决方案”。

          如果你认为这篇文章毫无意义,那好吧,但请你站出来写一篇更好的文章,或者在其他文章中站出来——当高管们阅读并被媒体引用时,他们会声称浏览器性能存在错误。我们在用技术细节互相攻击方面_非常_擅长,但在防止关于网络技术的陈词滥调流传出去方面,我们的表现却很糟糕。想要最好的例子:看看扎克伯格关于为什么HTML5不适合Facebook的错误引用。

          2012年11月2日 01:17

          1. Luke

            你写了一篇“真相揭秘”的文章,我相信你知道这会引发一些争议(以及点击量)。感谢你站出来解决人们在这里提出的问题。我同意你关于离线使用和盈利化的观点。如果你在标题中只是说HTML5性能对于休闲游戏来说足够好,那么我不会有任何异议。

            我仍然不明白你如何从Nexus 7过渡到iOS被锁定?你的Nexus 7不仅完全开源,而且也没有被锁定。你可以自由加载任何软件。你甚至不需要使用Google的应用商店。你可以自由安装亚马逊的应用商店,甚至创建你自己的Mozilla应用商店。我没有问题从Google Play下载FF,而且我认为Google没有对如何开发它设置任何限制,对吧?如果你开发出比Chrome更好的浏览器,人们就会使用它。

            所以这就是我的挑战,让FF再次成为行业领导者。通过IonMonkey等改进,JavaScript性能正在变得越来越好。但现在是2012年,大多数新CPU都是4核、6核、8核、12核,甚至16核,IE和Chrome都充分利用了这些核心。FF仍然是单线程的。你们需要继续进行Electrolysis项目,以便开发人员可以访问多个核心。祝你好运!

            2012年11月2日 05:32

    2. Ants Bull

      @Luke——哇,仅仅因为你关于BF3不可能在HTML5中实现的稻草人论证,就完全否定了所有其他HTML5应用?

      你到底有没有读过这篇文章?3A游戏在整个应用市场中所占比例是多少?0.0001%?醒醒吧,天才……

      2012年11月1日 16:45

      1. Luke

        Ants Bull,我说的是“像BF3这样的现代游戏”,而不是“每个HTML5应用”。事实上,我承认HTML5对于“Farmville或PS2类型游戏”来说没问题。你用稻草人论证来试图改变我的前提,真是好笑。

        Chris承认他们“离我想要达到的3D性能还很远”。作为一个花费大量时间评估Unigine和Banana Bread等3D HTML5引擎性能的人,我感谢Chris的诚实以及公开讨论FF性能的意愿。

        2012年11月2日 05:14

  13. bobx

    这听起来都很棒,但并不完全准确。问问任何有经验的网络开发人员关于“一次编写,随处运行”。浏览器本身就是一个大问题……也就是说,除了基本的文档渲染之外,它们都很糟糕。(而且它们在这方面甚至做得并不好)。所以我认为这篇文章试图让我相信浏览器是一个很棒的开发平台。它不是,它很糟糕,直到它不再糟糕,我才会浪费时间编写HTML。这根本没有意义。

    2012年11月1日 15:56

    1. Chris Heilmann

      那就别写。正如文章中所述,如果你不想接受挑战,那就别做。但如果你一开始就抛弃它,不要责怪这项技术。

      2012年11月1日 16:01

    2. Jon H

      Bobx,我认为Chris并没有试图说HTML5网络应用开发比原生应用开发*更容易*,因为,好吧,它确实不容易。我最近开发了一个网络应用,它必须在iOS 5+、Android 2.3+和BB6+上运行,这真是太痛苦了。这样做是有意义的,因为一旦开发团队(在我的例子中)获得了所有移动网络浏览器的详尽知识,包括其优缺点和碎片化,那么构建应用就会变得容易得多,因此花费的时间更少,并且比为每个平台构建原生应用更可行。

      作为一名经验丰富的网络应用开发人员,我完全同意你在本文中提出的观点,Chris。没有人说这条路会很容易,如果他们这么说,那他们就错了。

      2012年11月2日 09:14

  14. Ryan Brady

    嗯,没有提到Flash?

    我开始阅读这篇文章,它一开始写得很好,“你不能将一次编写多平台语言与原生语言进行比较”,我真的很兴奋,因为我认为我将看到Flash与HTML 5性能的比较。酷。

    Ctrl + F查找Flash,未找到。

    什么?

    将HTML5替换为Flash(或任何其他一次编写平台,如HaXe),这篇文章的大部分内容仍然有效……这是这篇文章中一个巨大的漏洞……

    2012年11月1日 16:54

    1. Chris Heilmann

      你是说那个根本无法在移动设备上运行的Flash吗?

      2012年11月2日 01:18

      1. Andrew

        http://www.adobe.com/au/products/air.html

        “什么是Adobe AIR?”

        “Adobe® AIR®运行时使开发人员能够将相同的代码打包成适用于iPhone、iPad、Kindle Fire、Nook Tablet和其他Android™设备的原生应用。”

        2012年11月2日 01:51

        1. Robert O’Callahan

          我认为每个人都知道Flash将在移动端首先消失,然后在其他所有地方消失。

          2012年11月2日 02:37

          1. Tomas

            那么,如果HTML5比其他现有技术差,它怎么能很好地竞争呢?如果原生技术有更多资金,它怎么能快速发展呢?理论上,HTML5应该在移动设备上运行良好,但目前它做不到。回复也经常是“我们在Flash时代就见过这种情况”。

            2012年11月2日 07:57

          2. Frank

            不是的,Robert。Flash Player已经从移动浏览器中消失了。Andrew谈论的是AIR,它允许你使用Flash技术为应用商店构建原生应用。已经有大量的基于Flash的应用,其中一些位居排行榜前列。你的手机上可能已经安装了一些,甚至你都不知道。

            2012年11月13日 13:36

      2. facebook_jonathan.hart.sf

        Chris,

        Adobe AIR允许Flash开发人员获取其代码库并在移动设备上以原生方式运行它。它支持Stage3D,这是一个OpenGL的包装器,并提供与WebGL相同的GPU访问权限。

        所以Flash开发人员不需要移动浏览器插件,因为他们不需要它。移动网络对于应用来说已经死了,应用商店将继续存在。Adobe AIR可以轻松地将Flash游戏放到应用商店中。

        2012年11月28日 12:34

  15. Tony G

    同样有趣的是,WebGL被用作性能良好的示例,但它真的是HTML5的一部分吗?认为它是HTML5的一部分似乎是另一个神话。

    http://www.w3.org/TR/html5/
    http://stackoverflow.com/questions/10185554/is-webgl-part-of-the-html5-specification

    2012年11月1日 18:32

    1. Chris Heilmann

      难以置信,CSS也不是。现在创建一个没有CSS的优秀应用。

      2012年11月2日 01:17

      1. notzed

        我为Android制作的最后一个优秀的应用在任何地方都没有使用CSS?

        2012年11月3日 16:59

      2. Joe

        我同意Tony G的观点。

        Chris,将WebGL与CSS进行比较是不公平的,有很多原因,从CSS自96年就存在,而WebGL几乎没有被使用开始,但最重要的是CSS是W3C标准的一部分,而WebGL不是,这会使你关于“基于商定的多供应商标准构建”的整个观点失效。

        有很多HTML5性能示例可以在不使用WebGL的情况下以60fps运行。例如,IE团队创建的那些http://ie.microsoft.com/testdrive/Views/SiteMap/

        当最新版本都支持Web缓存和IndexedDB时,我不明白为什么还要说IE不支持它们。

        令人难过的是,你用来强化使用HTML5的大多数论点都是Flash或Java很久以前就能做到的事情。

        下次你可以做得更好。

        2012年11月3日 17:18

        1. Chris Heilmann

          或者你可以——我们需要更多人讲述HTML5的成功案例,而不是夸大其词。我对你的评论感到困惑——据我所知,在文章中我从未提到过WebGL与CSS的比较。我对IE示例的问题是,它们在预览浏览器、预览操作系统以及仅在一个操作系统上可用的浏览器中运行。那里性能惊人,但这很好,但我甚至无法测试它,因为我没有Windows电脑。

          2012年11月4日 03:45

      3. Antoine Bapst

        http://devblog.blackberry.com/2012/02/playbook-native-webgl-development/

        2012年11月5日 06:14

    2. Robert O’Callahan

      HTML5只是整个Web标准平台的一个流行品牌名称。

      2012年11月2日 02:38

    3. jeff fall

      但是,任何移动设备的网络浏览器都不支持WebGL……

      https://caniuse.cn/#feat=webgl

      2012年11月5日 16:14

      1. Robert Nyman

        实际上,一些移动网络浏览器支持WebGL

        2012年11月5日 16:25

        1. Chris Heilmann

          包括Android版Firefox……http://imgur.com/qIECB

          2012年11月5日 16:32

          1. Ghaladen

            一位很有远见的开发者想到了一个主意,那就是在 iOS 上使用 OpenGL 创建一个原生 WebGL 模拟层。当然,这会让你的 WebGL 应用变成原生应用而不是网页应用,但至少这算是一个不错的权宜之计,直到 Apple 在 Mobile Safari 中实现 WebGL 并使其不再糟糕。

            https://github.com/phoboslab/Ejecta

            2012年11月7日 10:15

    4. Jonathan Hart

      Tony G 完全正确。WebGL 不是 HTML5。它是一个必须应用于浏览器之外的 HTML5 规范的功能,并不是 HTML5 支持者应该被允许使用的有效工具。

      除此之外,微软拒绝支持它,所以你潜在的市场份额就损失了 50%。它在任何移动浏览器中都无法运行,而且启用它对 Apple 的股东利益不利。所以你唯一的希望是 Apple 决定通过开启它来削减其应用商店的销售额,并且 IE 的市场份额下降到如此之低以至于你根本不想接触那些用户。这需要数年时间。在此期间,你可以使用 AS3 创建一个像你上面发布的游戏,并通过 Adobe AIR 将其发布到 Mac 或 PC 桌面应用,使用相同的代码库覆盖所有网页浏览器,包括 iPhone、iPad、Android、Blackberry 甚至三星电视…

      我认为很明显,开发者,尤其是我们游戏开发者,并非像网站制作那样进行游戏开发:花费一半时间来解决跨浏览器兼容性问题。那些日子已经过去了。

      2012年11月28日 12:29

  16. Luther Goh Lu Feng

    我对 HTML5 应用的一个担忧是,在缓慢的移动网络连接下,加载一些资源和库所需的时间可能相当长,这反过来会极大地影响用户体验。

    我认为除了采用混合模式或原生模式之外,没有其他解决办法,因为在这些模式下只需要进行一次下载(或进行尽可能多的更新)。

    此外,诸如 WebRTC 和网页通知等一些功能据我所知尚未出现在移动浏览器中。因此,就原生推送通知而言,用户体验在我看来是不理想的。

    2012年11月1日 19:21

    1. Robert O’Callahan

      加载时间不应该是一个问题。网页应用的资源与原生应用的资源大小没有区别。用户在两种情况下都需要下载一次。我们拥有(HTML5 应用缓存和 IndexedDB)技术来确保它们保留下来,并且无需再次下载。

      2012年11月2日 02:39

  17. 一刀切

    我发现 Reddit 上的顶层评论很有讽刺意味
    揭穿这个揭穿。

    2012年11月1日 19:38

  18. Lori

    HTML5 是否真的只有在拥有相当先进的显卡的情况下才能正常工作?

    FWIW,我认为无法盈利是一个特性,而不是一个缺陷 :)

    2012年11月1日 20:14

    1. Joey Martinez

      不,要使用 HTML5,你只需要一个支持它的浏览器,比如 Chrome 或 Firefox。但是,如果你想要硬件加速来提高性能,你需要一个现代的显卡和最新的驱动程序。

      2012年11月1日 20:29

  19. Joey Martinez

    我来这里是为了阅读关于 HTML5 或浏览器取得的进展。但我看到的都是一些空洞的言论和互相指责。
    “HTML5 应用被视为二等公民,无法访问允许达到峰值性能的部分” 这是因为 HTML5 API 尚未存在。正如你正确指出的那样,当它们像 GPS 一样存在时,它们通常会被使用。

    是的,在移动领域,WebGL 还没有实现,但尽管你们说得天花乱坠。与它们的原生对应物相比,WebGL 应用的性能非常糟糕。因此,消费者最好使用原生应用。

    如果你真的想要在移动领域使用 WebGL,有什么能阻止你在你的 Fennec 浏览器中实现它?如果性能确实很好,我们会使用它。Android 上存在问题?修复它们并与 Google 分享。
    https://aosp.org.cn/source/submit-patches.html

    你之所以取得今天的成就,是因为你制作了市场上最快、最精简的浏览器。不要忘记你的根。

    2012年11月1日 20:26

    1. Chris Heilmann

      当操作系统不允许任何其他虚拟机和浏览器时,我们如何才能制作出最好和最快的浏览器?

      2012年11月2日 01:05

      1. Joey Martinez

        当前的 JavaScript 虚拟机是 CPU 和内存占用大户。这就是为什么人们抱怨 HTML5 Google Maps 应用的运行速度比其原生对应物慢得多。FF 在 Javascript 性能方面仍然落后。你自己
        http://arewefastyet.com/
        显示 FF 在每个基准测试中都落后于 Chrome。你想“揭穿一些性能神话”?发布一篇 FF 领先的文章。

        假设硬件变得更快,并且你将虚拟机的性能提高到移动应用可以接受的水平。是什么阻止我们在 Android 中使用它?该平台是开源的,接受外部补丁,并且不会锁定默认商店或阻止用户安装其他应用商店。

        FF 已经推出了 Android 平台版本。但我们不使用它,因为它比 Chrome 慢,并且实际上支持的 HTML5 功能更少。你想要直接访问硬件。使用 NDK 你就可以做到。

        你抱怨 Apple iOS 将你拒之门外,好吧,让他们变得无关紧要。为什么不制作一个更快更好的浏览器,让人们选择像 Android 这样的开放平台来运行你的浏览器?最初包括我在内的人购买 iPhone 的主要原因之一是它是第一款拥有体面移动浏览器的手机。

        但现在有了选择,我用过 Android 和 WebOS 手机。
        http://news.cnet.com/8301-13579_3-57542628-37/iphone-users-get-less-loyal/
        停止抱怨 iOS 并为消费者提供更好的东西。如果你创造它,我们会使用它。

        2012年11月2日 12:33

  20. Andrew Betts

    值得澄清的是,FT 应用没有使用 Phonegap,文章中有点暗示了这一点。除此之外,内容很棒。

    2012年11月2日 04:42

  21. Vivien

    我同意你所说的大部分内容。HTML5 是未来。但它有一件小事:离线功能不起作用。好吧,基本功能以某种方式起作用,但更新简直让人头疼。另外,尝试在其他设备上(例如诺基亚、黑莓或低于 2.3 的 Android)使用清单文件…?我可以告诉你,当我设法让某些东西正常工作时,我的大脑一片空白。时不时地仍然会出现奇怪的行为…真实的反馈。

    2012年11月2日 05:39

  22. Alex Bertram

    HTML5 的离线模式目前是一场灾难:IndexedDB 和 WebSql 之间的分裂给像我们这样的构建工业级强度 HTML5 应用的开发者带来了巨大的麻烦,而且情况正在变得更糟。

    2008 年,Gears 插件允许开发者构建针对所有主要浏览器的离线应用,使用一个(即使不完美)API。

    在 Mozilla 和微软拒绝了已经可用的 WebSQL 标准之后,我们又回到了碎片化。

    选择 IndexedDB 就会失去 IE、Safari、Opera 和 iOS,IE10 将支持 IndexedDB,但这对企业用户来说还需要数年时间。在尝试执行诸如联接之类的简单操作时,IndexedDB 也复杂了一个数量级。(反之则不然——sqlite 是一个很棒的键值存储)

    选择 WebSQL 就会失去 Firefox 或 IE10。Gears 插件仍然提供了一个 polyfill,如果不受支持,则意味着可以在 IE6-9 中构建针对 sqlite 的应用。

    微软阻挠标准是可以预料的,但 Mozilla 对 WebSQL 的对抗立场令人失望,并且至少将 HTML5 阻碍了几年。

    :-(

    2012年11月2日 05:40

    1. Chris Heilmann

      你看到文章中链接的 lawnchair 了吗?

      2012年11月2日 08:15

      1. Alex Bertram

        我没有看到,谢谢。确实,如果你的应用可以使用键值存储,那么有很多库可以抽象 WebSQL 和 IndexedDB 之间的差异。

        也许我对 IndexedDB 本身最严重的问题是:我们在 ActivityInfo(www.activityinfo.org)上投入了大量工作,这是一个用于人道主义救援行动的 HTML5 应用,这些行动中的连接不可靠或很糟糕。我们最初针对 WebSQL/Gears 进行开发,并利用 sqlite 在浏览器中离线对用户数据集进行联接和聚合。使用 IndexedDB 重新实现所有这些内容意味着我们现在必须完成 sqlite 曾经为我们完成的大量工作。这是一个巨大的负担,目前我们不支持 Firefox 的离线功能。更糟糕的是,我们将不得不将联接和聚合移到工作线程以避免阻塞 UI 事件循环,这又增加了一个数量级的复杂性。

        也许我们的用例并不常见,但从这里的尖刻言论来看:https://hacks.mozilla.ac.cn/2010/06/comparing-indexeddb-and-webdatabase/#comments,我认为我们并不孤单。

        我认为很多人希望 Mozilla 对抛弃 WebSQL 的决定更加明确,并且许多开发者希望看到 Firefox 重新考虑它。如果 Firefox 开放接纳,我将成为第一个提交 WebSql 实现的请求者!

        2012年11月2日 09:34

  23. Neil Carpenter

    Chris 的文章写得很好,我很喜欢。

    不过,这些负面评论让人感到遗憾!我想这与这里的话题有关…

    2012年11月2日 07:18

  24. Willian Carvalho

    首先,我非常喜欢这篇文章。
    我理解每个人的观点,并且尊重他们。

    尽管如此,我相信“HTML5”将取得足够的成功,从而使每个人受益,以及其他技术。
    不久前(考虑到人类的整个历史),我们无法想象自己能够飞行、驾驶车辆、用电话通话等。多亏了那些愿意相信并努力让事情发生的人,这些事情现在变得像呼吸一样简单!

    我的意思是,无论你认为 HTML5 由于性能问题或其他任何问题而变得可靠有多困难,相信它可以成为现实并且很好并不会伤害我们 :)
    一群非常杰出的人正在努力使这一切成为现实,我支持他们!

    2012年11月2日 09:35

  25. Shawn

    你提出了一个问题,对于开发者来说,最好的选择是什么,是押注封闭平台还是开放网络。

    我认为开发者最好的选择是在可以赚钱的时候尽可能多地赚钱,并且不要担心 3-5 年后的未来会发生什么。

    现在,98% 的现金流经 App Store。因此,作为开发者,你需要在那里,其他任何做法都是愚蠢的。

    在 3 年或更长时间后,我们可以重新评估市场,看看 HTML 是否已成为一个拥有可靠显示层和性能特征的值得尊敬的中间件,但现在使用它毫无意义。

    如果我们现实一点,HTML 的缺点在 3 年内不会消失。开发者最好尝试找到一个像 Unity 或 Adobe AIR 这样的中间件平台来解决 App Store 锁定“问题”,而不是继续相信 Apple、MS 和 W3。

    2012年11月2日 10:03

  26. Shawn

    此外,我认为性能的真正问题不在于硬件访问,而在于 DOM。

    如果 HTML 想认真对待应用开发,它需要创建一个替代臃肿笨重的文档对象模型的东西,并创建一个对应用有意义的东西,例如应用对象模型。这将使用绝对定位,并将重点放在性能简化和一致性上。

    必须存在一个参考实现,所有供应商都必须遵守。这将最终为 HTML 开发者提供世界上其他每个开发者都拥有的东西:一个可靠且一致的显示层。通过去除 DOM 中的所有冗余和废料,可以更容易地修复性能问题。

    2012年11月2日 11:06

    1. Antoine Bapst

      @Shawn,你可能会(非常)对这个感兴趣
      “所有 DOM 操作都在 HTML 片段未附加到活动 DOM 时发生。这允许 DOM 操作非常非常快,并且在整个片段插入到 DOM 之前不会产生任何 WebView 布局计算。JavaScript DOM 操作期间的布局计算是可能导致基于 Web 的 UI 速度变慢的最昂贵的操作之一。

      你创建的每个屏幕都是一个 HTML 片段,它通过 AJAX 加载到应用程序中,以保持 DOM 的大小和内存使用量最小。”
      https://github.com/blackberry/bbUI.js

      2012年11月5日 07:55

  27. mpmedia

    到目前为止,评论非常有趣。
    最终,无论选择哪种解决方案,关键在于你可以在开发平台上覆盖多少客户。以及你从中可以获得多少投资回报。
    无论我们如何看待 HTML5,它都将继续存在。顺便说一句,我没有看到你关于 YouTube 上“破灭的承诺…”的视频链接
    http://www.youtube.com/watch?v=Pi7PBR7SMqM&feature=g-user-u
    很棒的视频

    2012年11月2日 11:16

  28. thinsoldier

    我的 2 美分。

    我在我的 Nexus 7 上安装的 90% 非 Google 应用都没有进行如此密集的图形处理,以至于如果它们是用 Web 技术构建的,性能会成为问题。

    我尝试过的 80% 非 Google 应用(以及一些 Google 应用!)如果我没有 Wifi 访问几乎完全没用。它们几乎可以算是网页。

    我刚开始使用 Android(以及智能手机/触摸屏设备),所以我的一个朋友给了我很多他认为“必备”的应用名称。在他给我的列表中,至少有 30% 的应用我找不到,或者无法确定我安装的应用是否就是他所说的那个。在通过 Play 商店应用搜索时就是这种情况。

    我最终让他访问 play.google.com 网站并向我发送他一直在谈论的那些应用的准确网址。这最初非常困难,因为他属于那些仍然不理解网页地址框概念的人。

    Google Play 商店应用是垃圾。自从第一代 iPhone 之后我就没用过 iPhone 了,但如果 iTunes 是任何参考,我预计 Apple App Store 也同样糟糕。

    网页万岁。

    2012年11月2日 17:52

  29. Joe Y

    我讨厌看评论,看到那些无谓的争论。文章很棒,读得很享受。

    2012年11月2日 21:24

  30. Rob

    很棒的文章!不过你有一点错了,iOS 6确实允许HTML5访问摄像头来拍照和录制视频。

    2012年11月2日 21:50

  31. Paul

    你可以为所有桌面浏览器(包括不支持WebGL的IE)编写Flash Stage3D硬件加速应用程序,并将相同的代码编译成桌面、iOS、Android甚至智能电视的原生应用程序(LG在2012年的机型上支持AIR 3.0,三星很快也会这样做)。看看新的Stage3D游戏,比如Farmville 2、Kings Road或育碧即将推出的游戏等等。Flash游戏正在达到一个新的水平,随着新版本的Flash虚拟机和ActionScript 4,明年的差距将会更大。
    Flash作为制作网站的工具已经或将要消亡,但在游戏开发方面,它比HTML5好得多。

    2012年11月3日 06:12

  32. ian

    实事求是地说,在这篇文章中用“JavaScript”替换大部分“HTML5”。

    2012年11月3日 07:20

    1. Chris Heilmann

      在构建应用程序时,没有JavaScript的HTML5不会让你走得太远。它们是一种共生关系。

      2012年11月3日 12:29

  33. 访客

    好吧,我明白他们的意思……但在很多方面,这些评论都有些夸大其词,例如,这句话完全不正确
    “原生应用程序需要为每个设备和每个新平台从头开始编写,而HTML5应用程序则允许你使用同一产品支持手机、平板电脑和桌面。”

    我喜欢Web技术,但就像文章中所说的,你不能把苹果和梨比较,上面的评论完全是谬误、谎言等等。是的,你可以为多平台构建一个原生应用程序,在成本上仍然比Web应用程序更便宜或相同。

    所以,请不要误导人们!

    2012年11月3日 12:18

  34. notzed

    通过说“是的,它更慢”来开始对你的第一个谬误的回应,这并不是一个令人信服的论证的开始。谁在乎它“可能”更快,它根本就不是,而且很容易争论说,平台本身无法像替代方案那样被加速,因为一些核心“慢”的功能,比如文档对象模型,以及JavaScript本身的动态特性。如果在花费了大量时间和金钱试图使其加速之后,到目前为止仍然失败了,那么也许是时候运用奥卡姆剃刀原则,并建议它永远无法竞争。

    任何旧网页都没有被授予访问摄像头等权限是有充分理由的——这些理由与安全性有关。如果有一天网页与安装的应用程序无法区分,那么Web将变得太危险而无法使用。

    整个“一次编写,随处运行”的胡说八道纯粹是垃圾。只有当你运行来自少数供应商的最新浏览器,在非常有限数量的平台上时,对于复杂的应用程序,这才是近似正确的——即使这样,也必须处理每个浏览器之间的不兼容性。为HTML5编写可移植的应用程序比为每个平台重新编写(和/或重新编译代码)几次更难。而且,经过所有这些努力之后,你得到的只是一个笨拙且缓慢的“Web应用程序”。人们只需要比较一些更复杂的应用程序,比如谷歌地图或YouTube,就能看到即使是最有经验和最熟练的开发人员,仍然无法达到预期。

    请坚持Web擅长的领域——提供文本和视频,以及一些有限的动画(不想仅仅阅读文本就耗尽电池)。除此之外,都只是阻抗失配,只会导致用户感到沮丧和开发人员秃头。

    2012年11月3日 15:59

    1. Chris Heilmann

      如果我们过去对Web平台采取这种态度,我们就不会有图像或CSS。根据平台的当前状态而不是试图消除障碍使其变得更好来判断平台,这等于放弃——或者成为一个真正不希望某些东西成功的人,甚至假装思考过它。

      当CSS过渡只在Safari中受支持时,我认为它们只是玩具。现在,几个月后,它们成为了一种非常简单的方法来增强功能,使其更流畅,并在较新的浏览器中安全使用,同时不给旧环境带来过载,并替换许多不需要运行的JS。如果你不想成为其中的一部分,那就不要妨碍,我们可以愉快地共存。

      2012年11月3日 16:10

      1. notzed

        奇怪的说法——图像在HTML的第一个版本中就存在,而且几乎是它起飞的主要原因。

        从什么时候起,做出深思熟虑的观察就变成了积极的阻挠?

        2012年11月3日 16:30

  35. notzed

    再详细说明一下可移植性的要点——如果Firefox是唯一的浏览器,而且Mozilla可以强制用户在每个平台上都升级到最新版本,而不管他们是否愿意。但它们不是,而且它们也做不到——还有其他供应商的其他浏览器,它们也有自己的业务利益,这些利益与Mozilla的利益是正交的。还有一些平台,即使Mozilla可以,他们也永远不会为其创建Firefox。

    如果没有这种控制,Mozilla就受其他三大巨头的摆布,他们没有任何理由不将Mozilla排除在“应用程序”之外。

    这是一个Mozilla可以控制的解决方案

    a) 开发一个高级、高性能的API,可以从JavaScript轻松干净地调用它,实现现在分散在一堆糟糕且不兼容的库中的许多功能。

    c) 提供一个完整、支持且高质量的JavaScript实现,可在各种竞争对手的浏览器上运行。

    b) 可选地,在Firefox中以原生方式实现此功能,以获得更好的性能(尤其是在移动设备上:更好的资源使用)。

    我在这里谈论的是核心应用程序支持:一致的HTMLRequest、一致的JSON/XML解析器、窗口小部件和动画、图形等,即一个合适的应用程序开发工具包。

    目前,应用程序开发人员拥有的只是一个语言、一个粗糙的表示层和一堆供应商之间不兼容的零散API。然后,他们需要求助于一堆随机且零散的库来实现缺少的功能并试图隐藏这些不兼容性。

    在任何其他竞争平台上,为了编写一个有效的应用程序,根本不需要这些额外的功能。

    2012年11月3日 16:25

  36. Jeff Hammel

    我发现通过定制西装与现成西装的类比来比较“原生”应用程序与HTML5应用程序具有误导性。虽然你用后续的论点支持了我反对意见的内容,但HTML5是一个平台,就像现有的操作系统是一个平台一样。理论上,你可以像“原生”应用程序针对主机操作系统进行定制一样,以相同的方式定制HTML5针对现有HTML5解释器的性能。在实践中,没有人这样做,因为HTML5的真正意义在于互操作性。也许我对定制服装的感受影响了我对这一点的感受,但我认为这个类比不太恰当。相反,HTML5是一个不同的,而且就目前而言,在许多方面都更受限制的工具箱,用于构建西装。

    2012年11月3日 18:22

  37. Abe

    “一个很好的例子是苹果目前从iOS切换到他们自己的地图。许多最终用户感到不满,更愿意继续使用谷歌地图,但无法做到。”

    是的,我就是其中之一。我想要我的原生谷歌地图回来!
    Chris,
    现在我被迫在我的iPhone 4S上使用HTML5版谷歌地图,它很慢,而且与原生版本相比,UI很糟糕。即使是最基本的功能,缩放也变得一团糟。我真的很期待Firefox OS。你不会像苹果一样,会让我保留我的原生应用程序,对吧?哦,等等……

    2012年11月3日 18:23

    1. Chris Heilmann

      谢谢你的参与,但在Firefox OS上,HTML5应用程序_就是_原生应用程序。这就是它的全部意义所在。

      2012年11月4日 03:42

      1. Abe

        Chris,
        从性能或UI的角度来看,在任何情况下你都不能将任何HTML5应用程序称为“原生”。
        PC杂志的技术百科全书将原生应用程序定义为
        一个旨在在被引用的计算机环境(机器语言和操作系统)中运行的应用程序。该术语用于将原生应用程序与解释型应用程序(例如非原生于单个平台的Java应用程序)进行对比。

        原生应用程序的一些示例包括所有iOS应用程序或NDK Android应用程序(注意NDK中的N代表原生)。JavaScript是一种解释型语言。Firefox OS并没有神奇地解决解释JavaScript固有的所有性能问题。在性能神话揭秘文章中,称其为原生是不诚实的。

        现在你可以说你指的是平台的原生UI工具包。好吧,除非你制作一个Firefox OS HTML5工具包,否则你无法称其为原生,因为它没有以原生方式针对单个平台。

        HTML5版谷歌地图的性能和用户体验远不如Android和iOS上的原生版本。Firefox不会提供更好的UI工具包。Firefox OS不会解决JavaScript的性能问题。它只是取消了运行自定义原生应用程序的选项,就像苹果对iOS 6所做的那样。

        2012年11月4日 16:26

  38. Max Polk

    WebGL确实属于HTML5,就像人们在找到单词进入词典之前说的新词一样。在成为正式单词之前有一点延迟,同样,在现代浏览器上使用canvas.getContext(“webgl”)返回的规范良好的OpenGL ES 2.0 API也是如此。

    等到官方规范挥舞其祝福的魔杖,我们可能已经转向了下一件大事。这更像是W3C与供应商在发展过程中构建的方式,更像是WhatWG(http://www.whatwg.org/)。当供应商推出HTML5功能的早期版本并逐渐成熟时,社区内的群体共识和反馈效果很好。

    当规范对WebGL施加祝福时,我们可能已经转向了下一件大事。

    2012年11月4日 13:59

  39. Wlad

    像你这样的人——一个尚未存在的平台(或者标准已经确定了吗?)的布道者,据说该平台是开发人员的灵丹妙药,帮助将成熟且非常适合开发人员的技术——Flex边缘化,甚至可能扼杀了它。通过过度宣传一些没有可比的工具和调试选项,更不用说功能集的东西,你创造了一些根深蒂固的神话。(比如video标签,它只是带来了预Flash时代的不兼容问题。或者所有浏览器都支持所有编解码器吗?在乔布斯取消Flash时,它们是否都支持?)。现在你正在品尝自己酿的苦酒。我个人来说,正在拿着一桶爆米花准备观战。

    2012年11月4日 16:01

    1. Chris Heilmann

      啊,是的,我记得很清楚——多么辉煌的一天。我们坐在想要赋予开发人员选择和自由的人群的邪恶地下巢穴里,主席抚摸着他那只白色的毛茸茸的猫,并大喊“杀死Flex”,按下他那光滑的金属办公桌上的按钮。多么美好的一天。计划很简单——在饮用水中添加一种改变思维的药物,这将使人们变得疯狂,并购买非常漂亮的产品,永远改变我们与机器交互的方式,但完全不运行Flex。

      2012年11月5日 01:03

      1. wlad

        所以HTML5神话也是同一个邪恶计划的产物吗?或者它们是如何产生的?HTML5在今天还不成熟,在乔布斯取消iOS设备上的Flash时,它甚至更加不成熟。当然,这更多是一个商业决策,而不是其他什么,但HTML5狂热者为他提供了武器,用来攻击持异议者。并且拥有一个乐于接受的受众。HTML5狂热者是Adobe大幅削减Flex开发工作的原因。因为据说有一个更好的替代方案。在相当长的一段时间内,根本没有,也不会出现。

        我没有说你做了,我只是说你的狂热帮助创造了一种导致这种情况的心态。此外,它正在损害RIA世界(JS库重新发明Flex多年来拥有的东西,并将其作为最新潮的东西,这既可悲又令人恼火,客户要求重写不会正常工作,但他们听说“这是未来”,在这一点上是浪费资源),最终损害了用户。

        如果设备不允许访问其资源,那么它本质上也不运行HTML5,那么你的卖点是什么?使用Flex,你至少有AIR,其性能远高于包装的HTML5应用程序,但它的未来不确定。因为有些人不断地一遍又一遍地推崇不存在的劣质技术。

        2012年11月5日 02:48

        1. Chris Heilmann

          作为一个非常直言不讳的无神论者,我讨厌你一遍又一遍地称我为宗教狂热者。对于一个声称处于爆米花模式的人来说,你似乎真的很生气。你所说的劣质技术,我称之为Web,它存在的时间比你真正感到恼火的东西更长。我们可以以同样的方式反驳你的论点——也许Web作为一个平台还没有达到人们试图用封闭技术一次又一次地替代它的程度,这些封闭技术具有短期“更好的体验”?我非常兴奋于Adobe现在正在做的事情,而且我公开非常直言不讳地表示,不希望用HTML5半途而废地重复Flash社区多年来取得的成就。像你这样的强硬派论点阻止了这种情况的发生。我们可以从在不同平台之间共享经验教训中获益良多,但相反,我们屈服于幼稚的争吵和抱怨,抱怨人们只是不理解我们的宠物工具是完美的,而且没有人需要其他任何东西。我厌倦了这一切,真的厌倦了。我喜欢Adobe的新信息,即HTML5是需要支持的平台,但这_根本不_意味着Flash开发人员需要改变,他们所做的一切都将被丢进垃圾桶。

          2012年11月5日 03:56

          1. Antoine Bapst

            阿门。

            2012年11月5日 04:22

          2. wlad

            我正在爆米花模式下观看摧毁HTML5的神话。我并不是在为一个充满问题和不成熟的平台的布道者而爆米花,这些布道者将其作为一种可行的替代方案,从而创造了摧毁一个领先于它的平台的神话。

            HTML5 的精髓在于热情。它并不存在,但你无比相信它,并宣扬它。

            顺便说一句,你讨厌我用宗教类比,却自称布道者?真是讽刺。

            我完全支持网络的演变,我完全支持浏览器提供的功能的增加,更支持它们的一致性。但它们擅长的是——呈现简单的页面,并在其基础上添加一些简单的视觉效果。这就是长期以来存在的网络。当你试图将 HTML5 作为开发复杂应用程序的平台进行宣传时,这就是你让我失去兴趣的地方。甚至,与三年前宣称 HTML5 是一个可行的替代方案相比,这可能更让我恼火,因为即使在今天,我们也没有标准,更不用说一致的实现。像你这样的人创造了这个平台无法实现的神话。

            封闭的技术,尤其是 Flash,帮助网络生存和繁荣。看看这种备受赞誉的开源标准化花了多长时间,以及平台因此遭受了怎样的苦难。

            2012 年 11 月 5 日 04:56

          3. Antoine Bapst

            @Wlad:“ [网络]呈现简单的页面,并在其基础上添加一些简单的视觉效果”。我们显然没有生活在同一块石头下……你是在谈论运行核反应堆吗?这既不会发生在网络上,也不会发生在移动世界中。对于其余 90% 的有用应用程序(我的意思是除了游戏之外),你肯定会注意到你可以通过网络访问它们,而且用户体验实际上比应用程序更好。
            这不是关于明亮或复杂性;而是关于使用。

            附注:我并非瞎子,也明白特定的需求将永远需要使用原生或专用平台。但我们可以看到,这些特定需求正趋向于交互环境中非常低的百分比。这要归功于 HTML5 的增强功能。

            2012 年 11 月 5 日 05:28

          4. Antoine Bapst

            @wlad 移动环境中应用程序的主要优势是适应设备限制的布局和功能,通常会导致功能限制。对我们——Web 开发人员来说,这无异于一场噩梦,因为我们需要弄清楚如何管理它。现在,无论是通过 HTML 浏览器(Web)还是引擎(应用程序),我们都有能力统一这两个世界。
            我相信我们甚至会获得一些功能(直接调用、触摸、设备传感器等),这将扭转这种情况。
            HTML5 将吸引许多 Web 开发人员进入移动环境,这可能是 HTML5 成为一项庞大标准的原因,因为移动 Web 浏览的比例越来越高。我们说的是一大批开发人员……以及公司。

            2012 年 11 月 5 日 07:49

        2. Antoine Bapst

          “如果设备不允许访问其资源……”
          BB10 可以。而且不会/很快就会不再孤单。

          2012 年 11 月 5 日 04:21

          1. wlad

            “不会像那样持续很久”,“它很快就会流行起来”是 HTML5 在过去几年一直所宣称的。它是未来。并且永远都会是。

            2012 年 11 月 5 日 05:05

          2. wlad

            “而且用户体验实际上比应用程序更好”——只有当应用程序是包装好的 HTML5 应用程序时才成立。原生应用程序的用户体验始终优于网页,无论它们处理的数据的复杂程度如何。因为只要你拥有原生应用程序,它们与网页之间的体验就不会一致。

            2012 年 11 月 5 日 06:22

          3. Antoine Bapst

            @Wlad:这是现在(或 2013 年第一季度针对普通受众的近期未来)。BB10 实际上允许你访问设备资源;摄像头就是一个“这永远不会发生”的神话被打破的例子。

            2012 年 11 月 5 日 06:26

          4. Antoine Bapst

            [抱歉,以上内容发布到错误的帖子中了]
            @wlad 移动环境中应用程序的主要优势是适应设备限制的布局和功能,通常会导致功能限制。对我们——Web 开发人员来说,这无异于一场噩梦,因为我们需要弄清楚如何管理它。现在,无论是通过 HTML 浏览器(Web)还是引擎(应用程序),我们都有能力统一这两个世界。
            我相信我们甚至会获得一些功能(直接调用、触摸、设备传感器等),这将扭转这种情况。
            HTML5 将吸引许多 Web 开发人员进入移动环境,这可能是 HTML5 成为一项庞大标准的原因,因为移动 Web 浏览的比例越来越高。我们说的是一大批开发人员……以及公司。

            2012 年 11 月 5 日 08:00

  40. Antoine Bapst (@superfly_FR)

    @Chris
    感谢这篇文章的深刻见解。

    虽然 HTML5 仍在等待最终规范——我理解我们是在 Mozilla 的网站上——但你似乎忽略了这场比赛中的一位竞争对手。

    RIM 的 BB10 大量面向 HTML5:其默认浏览器/运行时是使用 HTML5/JS/CSS 构建的,并且是有史以来最符合 HTML5 标准的浏览器之一。WebWorks 框架(从 PhoneGap 分叉而来)在谈论原生/Web 统一时是一个非常重要的跟踪方向。

    我相信这是一个 HTML5 如何进入移动世界的真实例子,就像“在高速公路上行驶的 F1 赛车”(我的意思是访问完整的硬件加速,例如),并且应该至少因为大力推动 HTML5 开发人员的采用而获得一些赞誉。

    2012 年 11 月 5 日 02:33

    1. Antoine Bapst (@superfly_FR)

      一些资源

      浏览器是 HTML5
      http://www.berryreview.com/2012/09/25/blackberry-10-browser-built-using-web-technology-html5cssjavascript/

      Webworks:“完整故事”
      https://developer.blackberry.com/html5/

      WebWorks 是开源的,你可以自己构建
      http://devblog.blackberry.com/2012/10/blackberry-10-webworks-framework/

      使用 Web Inspector 调试 BlackBerry Web 应用程序
      http://devblog.blackberry.com/2011/06/debugging-blackberry-web-apps/

      让我们团结起来推广我们最喜欢的语言!!!

      2012 年 11 月 5 日 02:40

  41. underhill

    Firefox OS 是否允许其他浏览器引擎,或者这是否是一种新类型的锁定,就像 Chrome OS 在移动设备上一样。

    2012 年 11 月 5 日 07:04

    1. Robert Nyman [Mozilla]

      据我所知,不会有任何对其他 Web 浏览器引擎的直接支持。整个操作系统都是 Gecko,即 Firefox 的渲染引擎,在现有引擎中拥有另一个渲染引擎听起来并不理想。

      Firefox OS 为 Web 层提供了 JavaScript API,基本上可以通过开放技术控制手机上的所有内容。希望其他引擎制造商也能在其各自的设备上支持这些 API。

      2012 年 11 月 5 日 08:13

      1. Luke

        Underhill,你说得对。使用 Firefox OS,你将“锁定在一个由单一公司控制的固定环境中”。FF OS 和 iOS 之间的唯一区别在于,你不会使用高性能的原生应用程序,而是会使用速度缓慢的 HTML5 解释型应用程序以及通用的基于 HTML5 的 UI。

        Mozilla 将锁定第三方浏览器的理由是“Gecko 是操作系统”,这完全具有误导性。这类似于微软以 IE 是 Windows 操作系统的一部分为借口将其捆绑在一起。Mozilla 只是更进一步。他们创建了一个自定义的 Linux 发行版,该发行版只运行一个应用程序,即 Firefox。

        Mozilla 的问题是他们有一个臃肿的浏览器,他们希望在资源有限的移动设备上运行它。他们没有从根本上解决这个问题,而是简化他们的浏览器,而是试图在精简的操作系统上运行他们臃肿的浏览器。

        2012 年 11 月 5 日 16:49

        1. underhill

          这正是我无法对 Firefox OS 过于兴奋的原因。但是,作为一个尝试实现电话和其他设备 API 的实验,我发现它很棒,但由于它是一个锁定的设备/操作系统,我觉得它违背了 Mozilla 使命的三大要点中的两个:“网络的开放性和机会”。我想可以认为它确实为开发人员提供了机会,尽管我担心这种机会可能导致“开放”的 Web 应用程序只能在一个平台上真正运行。

          2012 年 11 月 6 日 06:52

  42. Kyosuke Kawate

    我们尝试过 aquoria.com。
    处理 HTML5 非常令人兴奋且值得一试。周围环境正在快速发展,我们从中受益。我们现在处于测试阶段,重点关注移动端,迭代更新 HTML5 应用程序非常容易。

    你想试试吗?

    2012 年 11 月 6 日 00:28

  43. Kent

    虽然我没有机会阅读每一条评论,但我注意到很多负面情绪。这很遗憾,因为这篇文章提出了非常好的观点,并且理解 HTML5 仍在被采用,并且 H5 的构建一次心态和设备无关性是使其如此强大的原因,这一点得到了很好的阐述。

    只要我记得,我一直都在宣扬 HTML 与设备原生(在适用情况下)相比。这对最终用户、开发人员以及任何必须资助、支持或增强应用程序的人来说都更好。

    好文章!

    2012 年 11 月 6 日 16:20

    1. mpmedia

      有很多负面情绪,不是因为技术本身,而是因为我们被兜售了这种技术。
      而且我很抱歉,HTML5 的构建一次部署到处和设备无关性并不属实,至少目前是这样。浏览器没有实现相同的 API,即使实现了,有时它们实现的方式也不同。

      2012 年 11 月 7 日 10:43

      1. mpmedia

        我的意思是“我们是如何被兜售了这种技术的……”

        2012 年 11 月 7 日 10:44

  44. Ghaladen

    iPad 上的 YouTube 政治应用程序(http://www.youtube.com/politics)证明了 HTML5 还没有准备好成为移动设备的主导标准。每当视频播放时,选项卡需要几秒钟才能切换,滚动视图很迟钝,这对任何应用程序来说都是完全不可接受的。而且谷歌在移动 Web 开发方面毫不逊色。

    别误会我的意思,我希望 HTML5 能超越原生,无论是每个应用程序都成为 Web 应用程序,还是通过像 PhoneGap 这样的混合解决方案。我厌倦了必须了解 C#、Objective-C 和 Java 才能为所有平台构建应用程序。幸运的是,我可以使用像 node-webkit 这样的 HTML5 解决方案开发我大部分的桌面原生应用程序(https://github.com/rogerwang/node-webkit,它很厉害)。但说实话,在移动 WebKit 能够处理原生应用程序可以处理的内容或至少接近之前,对于任何超过简单表单的内容,HTML5 在移动设备上的表现都无法撼动原生应用程序的地位。

    2012 年 11 月 7 日 09:59

  45. Marco

    我听到过关于 HTML5 最大的问题,我不知道它是否是神话,那就是由于 HTML5 不支持 DRM,因此无法防止下载视频,例如来自 Netflix 和 Hulu 的视频。我还听说,使用 HTML5,Netflix 和 Hulu 无法阻止跳过广告。因此,Netflix 和 Hulu 不会切换到 HTML5。即使许多 YouTube 视频在禁用 Flash 时也无法正常工作,我认为这是因为跳过广告的问题。

    这是真的吗?有什么方法可以解决这个问题——一些平台中立的“广播标志”,即使只是基于诚信系统,也允许某些内容只能流式传输而不能保存?
    好莱坞是否有可能允许 Netflix 和 Hulu 切换到 HTML5,如果有,他们是否有可能这样做?

    2012 年 11 月 10 日 13:14

  46. Dave De Silva

    委员会设计。最低公分母。HTML5。

    这些是同义词。

    不幸的是,人们甚至无法自信地开发针对这个低标准的程序。相反,即使是最琐碎的功能,也必须进行复杂的浏览器测试。

    2020 年叫我起来。抱歉做一个喷子。我只是一个真正的开发者,认真地思考着围墙花园。我们必须在现实世界中权衡利弊,而不是在理想世界中。

    2012 年 11 月 13 日 22:02

  47. YABE Yuji

    Mozilla 大力推动 HTML5 仅仅是因为这是他们在这个移动时代生存的唯一途径。我理解这一点,但问题在于,许多开发人员不想被绑定到 HTML/CSS/JavaScript 上。最重要的是,即使我们将 JavaScript 视为汇编语言,它也是一场灾难(我尝试过 CoffeeScript、Dart、TypeScript、Emscripten 和许多其他语言!)。

    作为一名 C++ 游戏程序员,我从未相信网络的开放性和其他优势。这篇令人失望的文章并没有改变任何事情。我将在未来至少 10 年继续开发原生应用程序,并且完全忽略 Firefox OS。许多原生开发人员也会这样做,结果将是 Firefox OS 上缺乏应用程序。

    有趣的是,微软最近做出了相反的决定。他们允许我们在 Windows Phone 上开发原生应用程序。他们多么开放。请效仿,Mozilla。网络可能满足某些(或许多)开发人员的需求,但它显然并非万能。HTML5 人必须接受这一点。你可以在浏览器上开发像 Skyrim、Call of Duty、Photoshop、After Effects、3DS Max、Blender、Cubase、SONAR 这样高性能的应用程序吗?请注意,即使在当前最快的 PC 上,我们也无法做到这一点。这意味着移动浏览器在未来至少 10 年(或 20 年!)内也无法做到这一点。

    至少 HTML5 爱好者应该在 iPhone 上玩最新的丰富游戏,看看原生世界发生了什么。现在就去做吧,拜托。

    2012 年 11 月 22 日 15:31

  48. Mandeep Singh

    嘿,好文章。我写了一篇文章,讨论了 HTML 5 中引入的新元素。如果你有兴趣了解更多关于 HTML5 的信息,可以在这里阅读:什么是 HTML5

    2012 年 11 月 24 日 23:31

  49. anatoliy Kuzmenko

    不错的文章,我一直在使用 Adobe PhoneGap 打包我的 HTML5 应用程序,并且没有遇到任何问题

    2012 年 11 月 28 日 10:52

  50. Blake Callens

    好文章,但我认为原生代码论点被如此广泛使用的原因是,大多数布道者都说 HTML5 已准备好取代已编译或半编译的 Web 应用程序,而正如你正确指出的那样,它永远不会完全取代。

    2012 年 12 月 11 日 14:52

  51. Joe Pereira

    我目前已退休(77 岁),但我仍然喜欢计算机编程,因为我做了很多年了,甚至在个人电脑出现之前,例如,使用英特尔 8585 处理器和摩托罗拉 6800 进行机器语言编程,以及其他各种处理器的汇编语言编程,大多数人并不知道这些处理器的存在,包括 C 和 C++ 编程。
    几个月前,我开始学习、研究和练习 HTML 4.0、XHTML 和 HTML5,我非常享受体验这个先进技术的现代时代的喜悦,无论我是否应该这样做。我只想沉迷于我在 HTML5 中所做的事情。

    2013 年 1 月 3 日 22:34

  52. steve porker

    哇——真是很多政治废话。你有没有尝试过使用 PhoneGap 跨多个平台构建应用程序?Ugh……如果它如此出色,为什么 iOS 和 Android 的 99.9% 的应用程序仍然是原生的?因为 HTML5 还不够成熟,并且充满了笨拙的 JavaScript 技巧来获得体面的用户体验——即使这样,与原生相比也差强人意。我不确定西装的类比是否合适——我使用的类比是 HTML5 就像预制房屋与标准房屋。是的,预制房屋理论上可能更便宜——但它的墙壁很薄,在飓风中会被吹倒。如果你担心为多个平台开发,可以看看像 MonoTouch 这样的工具,这些工具的目标是通过共享高达 90% 的代码库来开放原生体验。期待 2015 年 HTML5 开始有所作为——在此之前,如果你认真对待移动应用程序开发,请坚持使用原生开发。

    2013 年 1 月 20 日 15:03

  53. 珍妮特

    如果不能盈利,谁会需要它呢?

    2013年1月29日 12:53

本文评论已关闭。