在PC时代,浏览器成为互联网信息的入口,并非因为它支持了HTML技术,而是因为它给人类带来了“世界是平的”的空间和理念,人类历史上第一次实现了信息的互联互通。

  今天,微信虽然用了HTML5技术来做应用号(小程序),但是它并没有真正用到HTML5的精髓——开放、互联,也就决定了它无法实现“微信OS”的最终野心。

  昨晚,微信发布了大家期待已久的应用号(正式名称:小程序)的内测,马上朋友圈就被刷屏了,一时间新闻稿铺天盖地,HTML5开发社区欢呼雀跃。大家都认为移动互联网迎来了一个新的“微信操作系统(OS)”时代,HTML5 Web App的春天来了。作为一名HTML5领域的创业老兵,也作为曾经的HTML5国际标准的制定者之一, 我本该激动万分,但是当我看完微信应用号的介绍之后,我却对“微信OS”的未来持保留态度。

  应用号推出的确“恰逢其时”

  历史是一面镜子,移动互联网的发展可以同PC互联网中得到很多借鉴,虽然表象不一致,但是本质是相通的。 软件程序有两种架构:一种是C/S(客户端/服务器);另一种是B/S(浏览器/服务器)。

  移动端的APP和当年PC端的Windows软件都是C/S架构, HTML5和PC端的网页(HTML4) 都是B/S架构。 PC时代,早年是C/S架构为主,大家都是去下载网站下载Windows软件,这点和移动端去应用商店下载APP的过程是一样的。

  后来,大家逐渐开始不去下载网站了,逐渐转向使用浏览器来获取信息, 以B/S架构为主。从C/S转向B/S的一个关键变量就是网络带宽速度,因为B/S依赖网络,只要网络条件一旦成熟,B/S就会大行其道。

  今天移动端也正在经历PC端一样的进化过程,网络带宽越来越好,用户也越来越不愿意去应用商店下载了,我相信大家去应用商店次数都是越来越少了。

  图:PC互联网和移动互联网的演进历史惊人的相似

  今天移动端也正在经历PC端一样的进化过程,网络带宽越来越好,用户也越来越不愿意去应用商店下载了,我相信大家去应用商店次数都是越来越少了。

  必须承认,腾讯是非常擅长做产品的公司,每一次产品迭代都做得很扎实。正当移动互联网处在从C/S架构逐渐转向B/S架构的风口上的时候,恰逢其时推出应用号,欲顺势干掉所有的APP应用商店,利用其庞大的用户基数以及微信内嵌的浏览器,成为一个应用分发的超级大平台,最终实现"微信OS"的超级大野心。

  浏览器一直被认为是Web OS, 这个故事听上去顺理成章。 然而,事情并不一定会朝着这个方向发展,这里面有个重要的细节被忽略了。

  “用了HTML技术不等于真正的HTML的平台”

  Again,历史是一面镜子。微信并不是第一个做应用号的公司,早在2010年,在大洋彼岸,世界上最大的互联网公司——Google推出了基于Chrome浏览器的“应用号”Chrome App。然而就在上个月,也就是2016年8月,Google宣布停止支持Chrome App。

  Chrome的活跃用户有10亿,比微信还多, Google也比腾讯更有财力, 为什么Chrome App伟大计划最终失败? Chrome App和微信应用号都有一个致命的共性: 虽然都是用了HTML技术,但是没有用到HTML的精髓。

  当年World Wide Web(万维网)之所以能够一夜之间席卷全球,核心原因之一就是HTML的第一个字母“H”(超链接)。虽然是看起来是个很简单一个技术,但是折射了互联网的核心设计理念:开放、互联。

  通过一个网址链接, 任何人都可以查看你发布的内容, 不需要经过应用商店审核,任何两个网页之间可以方便跳转。 而从今天的应用号发布的介绍来看,所有发布的应用号都需要通过腾讯的审核,而且应用号也是封闭,并不能和外部的网页自由跳转。

  因此,今天的应用号只是用了HTML技术中无需下载安装、跨平台的功能, 并没有用到HTML开发互联的精髓。 它只是一个“用了HTML5技术的平台”,但不是一个真正的“HTML5应用平台”;它可以成为微信IM的一个重要补充, 但是成为不了一个人们期待中的“互联网操作系统”。 在互联网的世界里,只有开放才是最有生命力的。

  真正的HTML5平台

  Again,again,历史的确是一面镜子。在PC时代,这两个软件是大家最高频使用的: IM和浏览器。一个连接人与人,一个连接人与信息。 这是人类最基本的两个需求之一。

  腾讯无敌的社交基因决定了它在PC和移动时代,都完美做到了连接人与人。但是,连接人与信息领域,并不是腾讯的强项。

  随着移动互联网逐渐进入深水区,微信的简单内嵌浏览器未来将不能完全满足需求人们高效安全获取信息的需求,它的半封闭生态也将不适应互联网的开放互联的趋势。

  浏览器——真正的HTML平台,将会“王者归来”,成为最高效安全连接人与信息的工具。

  这个趋势在国外已经很明显了, Google今年4月份的时候宣布,Chrome浏览器移动版的月活跃用户突破10亿,最近5个月增长2亿!而且Google今年在抛弃掉Chrome“应用号”的同时也发布了重量级的HTML5新技术框架——PWA(Progressive Web App)。

  HTML5一直被诟病的就是无法在离线状态下使用以及体验不够流畅。基于PWA框架, HTML5应用可以同时支持在线和离线,而且加速速度和交互体验有了显著的提升。通过PWA,HTML5相比App的缺点部分就被抹平了,而优点部分却很突出,因此被业界普遍看好。PWA已经在Chrome、Firefox、Opera等浏览器中都可以运行。

  当“浏览器”王者归来的时候,用户可以更高效在互联网上冲浪,开发者可以更方便发布HTML5应用,尤其是对于中大型企业用户,可以更自主、可控的开发和部署企业级HTML5应用,那时候,我们还需要“小程序”么?

  作者简介:

  陈本峰,云适配创始人兼CEO, 国家“千人计划”特聘专家、中国企业级HTML5产业联盟主席、HTML5国际标准制定者之一、微软总部IE浏览器核心研发,国际互联网标准联盟W3C中国区HTML5布道官,专注互联网标准制定以及浏览器内核技术研究超过10年;2016年初,牵头成立了“中国企业级HTML5产业联盟”并担任主席,旨在推动HTML5技术的企业级应用进程;曾就职于微软美国总部IE浏览器核心研发团队,成功发布了IE8、IE9、IE10,参与了下一代互联网标准HTML5国际标准制定以及IE中HTML5引擎的设计。

作者:36氪的朋友们

一个HTML5老兵坦言:我们真的需要“小程序”么?的更多相关文章

  1. 动手开发一个名为“微天气”的微信小程序(上)

    引言:在智能手机软件的装机量中,天气预报类的APP排在比較靠前的位置.说明用户对天气的关注度非常高.由于人们不管是工作还是度假旅游等各种活动都须要依据自然天气来安排.跟着本文开发一个"微天气 ...

  2. 利用css transition属性实现一个带动画显隐的微信小程序部件

    我们先来看效果图 像这样的一个带过渡效果的小部件在我们实际开发中的应用几率还是比较大的,但是在开发微信小程序的过程中可能有的小伙伴发现transition这个属性它不好使(下面说明)所以我们这个时候会 ...

  3. 耗时一个月上架了一款微信小程序,赚了2022年的第一笔副收入

    今天不谈技术,只谈经历. 前戏 相信有很多的程序员都有一个产品梦,希望有一款属于自己产品.毕竟工作中遇到的有些"脑残"的产品经理不是一个两个,最后不得不因为"技术服务于业 ...

  4. VS 星期作业 if else的应用 做一个受不受异性欢迎的小程序

    static void Main(string[] args) { //漏掉代码 输入错误 进行提示! string T1, T2, T3, T4, T5, T6, T7, T8, T9, T10=& ...

  5. Python 一个抓取糗百的段子的小程序

    import requests import re #糗事百科爬虫类 class QSBK: #初始化方法,定义一些变量 def __init__(self): self.headers={ &quo ...

  6. 一个快速检测系统CPU负载的小程序

    原理说明 在对服务器进行维护时,有时也遇到由于系统 CPU(利用率)负载过高导致业务中断的情况.服务器上可能运行多个进程,查看单个进程的 CPU 都是正常的,但是整个系统的 CPU 负载可能是异常的. ...

  7. 设计一个自动生成棋盘格子的JS小程序

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. 一个随机验证码且不重复的小程序以及求随机输入一组数组中的最大值(Java)

    1.代码: package day20181015;import java.util.Arrays;/** * 验证码的实现 * @author Administrator */public clas ...

  9. 命令行翻译 推荐一个linux系统中可用的终端小程序

    程序的github地址:https://github.com/fanbrightup/fanyi 使用起来非常简单,同时支持中英文互译甚至是整句. 步骤一:首先你需要安装node,参见我的node安装 ...

随机推荐

  1. Nginx的安装与使用

    在 CentOS 7 系统上: $ sudo rpm --import http://nginx.org/keys/nginx_signing.key $ sudo rpm -ivh http://n ...

  2. MyCat 学习笔记 第八篇.数据分片 之 求摸运算分片

    1 应用场景 Mycat 自带了多套数据分片的机制,其实根据数值取摸应该是最简单的一种. 优点:数据离散概率较为平均,可以有效的提高应用的数据吞吐. 缺点:比较明显,后期数据运维与迁移比较困难.好在M ...

  3. Python基础之函数等等

    三元运算 三元运算(三目运算),是对简单的条件语句的缩写. 1 2 3 4 5 # 书写格式   result = 值1 if 条件 else 值2   # 如果条件成立,那么将 "值1&q ...

  4. Altium Designer PCB制作入门实例

    概要:本章旨在说明如何生成电路原理图.把设计信息更新到PCB文件中以及在PCB中布线和生成器件输出文件.并且介绍了工程和集成库的概念以及提供了3D PCB开发环境的简要说明.欢迎使用Altium De ...

  5. BI测试工具之跨数据库数据对比,支持oracle,sqlserver

    应用场景: 本周在进行SIT,我帮助仅有的一个测试妹妹对部分表进行数据质量验证,第一步需要做的就是比对source与stage表的table definition 与 数据内容的一致性. 本项目使用的 ...

  6. nopcommerce之权限模块

    这篇文章简单介绍一下nopcommerce的权限模块,nopcommerce里面的权限设计相对比较简单,主要针对后台的action和前台的是否显示(比如产品.品牌等),虽然简单但是应付一般的项目应该没 ...

  7. uva 120 stacks of flapjacks ——yhx

     Stacks of Flapjacks  Background Stacks and Queues are often considered the bread and butter of data ...

  8. 【Android UI设计与开发】1.引导界面(一)ViewPager介绍和简单实现

    1.ViewPager 实现效果图 2.ViewPager 实现功能 ViewPager类提供了多界面切换的新效果,新效果有如下特征: <1>当前显示一组界面中的其中一个界面: <2 ...

  9. HDU 5044 Tree --树链剖分

    题意:给一棵树,两种操作: ADD1: 给u-v路径上所有点加上值k, ADD2:给u-v路径上所有边加上k,初始值都为0,问最后每个点和每条边的值,输出. 解法:树链剖分可做,剖出来如果直接用线段树 ...

  10. Codeforces 13C Sequence --DP+离散化

    题意:给出一个 n (1 <= n <= 5000)个数的序列 .每个操作可以把 n 个数中的某一个加1 或 减 1.问使这个序列变成非递减的操作数最少是多少 解法:定义dp[i][j]为 ...