最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

Web 不是未来会赢,而是已经赢了

Web has won

  • 2016-11-15
  • 本文字数:3218 字

    阅读完需:约 11 分钟

过去 20 多年来,Web 已由一个基本的文档共享网络发展成为诞生之初我们根本无法设想的,无所不能的平台。自面世之日起,Web 就在努力迎合用户的各种需求,虽然发展过程中也曾犯过各种错误,但这些问题陆续都已顺利解决。诸如 Flash 和 Silverlight 等插件本有机会统治整个市场,因为 Web 本身当时还在匍匐前进中,很多方面尚不能满足用户的需求。但当智能手机引发的革命使得大家逐渐忘却台式机(和各种插件),转为使用体积更小,同时性能不那么强大的便携设备后,大环境又一次发生了巨变。

“移动”的世界到底是咋回事?

距离人们在“水果店”外排队购买初代 iPhone 到现在已经差不多 10 年了,Web 技术至今也还没有全面成为移动领域的“一哥”。“移动化”的 Web 能力依然落后于原生应用甚至桌面浏览器。Flash 虽然算是死了,但 HTML5 依然没有因此而能称王。然而越来越多的开发者开始使用这种技术开发自己的移动体验,Gartner 称到 2016 年底,超过 50% 的移动应用将会使用混合方式开发。

诸如 React Native 和 Phonegap(Cordova)等工具为 Web 开发者提供了一种使用 Web 技术构建原生应用的备选方案。这种混合方式在时间和成本方面的效益更高:开发者无需专门为每个移动平台从零开始构建应用,而是可以编写基于 HTML5 的代码,只须编写一次,少量调整后即可重复部署至 iOS、Android、Windows Phone 等平台。

谷歌也在想方设法推进 Web 平台技术的发展。他们通过自家的操作系统 Chrome OS 作为标杆向大家展示 Web 技术的各种可能性,甚至向我们展示了 App Store 本应能做到的一切。Chrome OS 完全依赖 Web 技术,除了可供开发者用在自己的 Chrome 应用中,由浏览器提供的 JavaScript API 之外,不包含任何类型的原生备选方案。但 Chrome OS 并不能算作一种移动平台,尤其是考虑到该系统内建了一个桌面级的浏览器,并且只安装在一些小型笔记本上,因此谷歌又提出了 Progressive Web Apps 的概念,借此打造易用性更强,更接近原生应用体验的 Web 应用。理论上这种应用的实际使用效果还不错,并且应该成为未来几年里 Web 技术的发展方向,但目前这依然仅仅是一个愿景创意,只能用于谷歌自己的 Android 版 Chrome 浏览器,该技术还有很长的路要走。

JavaScript 的革命

虽然大部分人依然认为 JavaScript 只是一种前端 Web 开发技术,但实际上 JavaScript 已经逐渐渗透至现代化计算领域的每个角落。在我看来,Node 是 PHP 的未来。Node 易于学习,易于安装和开发。Node.js 唯一欠缺的是托管方面的广泛支持。大部分 Web 托管服务依然只支持 PHP,但 Node.js 也为想要尝试新技术的托管公司提供了一个好机会。

IoT(物联网)甚至 VR(虚拟现实)领域也可以见到 JavaScript 的身影。知名的 JavaScript 库 Johnny Five 就可以用于几乎所有新型的微处理控制器(Microcontroller,也许你喜欢与用其他名字称呼这种技术)。Tessel 也很好地证明了 JavaScript 可以实现的丰富用途,它已经不单纯是一种库,更像是一种依赖 JavaScript 的完整设备。

去年这时候 Mozilla 发布了 A-Frame。虽然该技术并未获得应有的广泛关注,但这实际上是一种非常让人吃惊的库。基于 Three.js 构建的 A-Frame 使得开发者可以创建基于 Web 的虚拟现实体验。我自己尝试过这种技术,不得不说这个库太伟大了。问题在于 VR 技术的重要性并不像大家想象中(本应该?)的那么高。也许有朝一日虚拟现实技术会变得极为平常普遍,但也许人们再也不会为其感到激动了。

社区

无论公司或个人,总是需要 Web 的,应用通常包含的内容还是不如网站那么丰富。例如手机银行,虽然可以在银行的应用中办理很多业务,但通常就有些业务无法支持。网站的成本更低,更易于访问,通常来说开发过程也相对更为简单,为 Web 技术背后的开源社区在近年来也已经对 Web 技术进行了大刀阔斧的革新。

诸如 jQuery 和 Bootstrap 等框架使得不同技术水平的开发者可以更容易地进行 Web 开发。一段时间来,似乎接下来需要考虑的就是 Angular 了,然而该技术在向后兼容性方面还没有达到前任所实现的高度。市面上还有大量都很不错的 MV* 库,例如 Backbone、Knockout、Ember,以及 Vue 等,因此开发者并不需要固守于 Angular,尤其是该技术会使得他们无法继续使用原有的代码。

我认为可以说 Web 开发的未来主要还会落在 React 身上。Facebook 开发的库在 Web 开发社区中曾引起热议,经过不断的完善这些库已成为大家的首选,而不像 Angular 那样做的太过火。我认为,React 未来面临的最大挑战在于接受度。因此问题实际上就变成:网站真的需要 React 吗?

永不停歇的成长

Web 技术依然在以稳定的速率成长着,未来很长时间内还会继续维持这样的步伐。目前预计全球有 34 亿网民,数量已接近全球人口总数的一半。随着另一半人口开始上网,Web 技术将再一次遭遇自己最大的宿敌:浏览器的支持。目前大部分新晋网民居住在新兴市场国家,甚至第三世界国家,他们不可能使用装有 Chrome 53 的全新 Macbook 上网。如果够幸运,他们使用的可能也仅仅是运行老版 Android 浏览器的三星 Galaxy S2 手机。

这就给 Web 开发者造成了另一个问题:如何让自己的网站能被这些浏览器不支持最新功能,并且网速不快的网民顺利访问。很多企业已经因为类似这样的问题错失了大量潜在用户。据估计到 2020 年,印度将有另外 3.5 亿人开始上网,美国人口总数都没这么多。

从此往后

为了拉拢这些新用户,网站需要变得比以往任何时候更轻巧,更易于访问。虽然算不上一个网站,但 YouTube Go 就是个不错的例子,这是一种轻量级版本的 YouTube,专为诸如印度等国家网速不够快的用户打造。你可以关注一下他们是如何通过短时间内进行的一些小幅改动对自己的应用进行优化,使其更容易被网速不高的用户所使用的。这一过程中最难的部分是如何在自己无法获得切身体会的前提下,发现应用中需要改动的部分,并决定具体该如何改动。谷歌 CEO Sundar Pichai 最近曾提到“对谷歌来说,解决诸如印度用户遇到的此类 [问题] 甚至让谷歌自己得到了创新灵感”,毕竟有些时候少就是多(Less is more)。因此我认为 React 在全球采用率方面无法实现 jQuery 那样的高度,不是因为 React 不够好,而是因为目前并不需要它。

针对未来的想法

有件事是确定的:Web 技术还会继续发展。Web 是一种依然在不断扩张的数字化领域,已在我们每个人的生活中占据了越来越大的比重。对于零零后(L 世代)来说,Web 已经不仅仅是一种技术创新,而成了自己身份的一部分。下一场战争将以 Web 为战场,下一次革命将发生在 Web 上,自由世界的下一任领袖将从现在的 Web 中评选而来。然而 Web 最令人称道的地方在于它是对所有人开放的。Web 不归任何人所拥有,或换句话说,任何人都是 Web 的主人。但并非所有人都行使了自己的主人翁权利。

也许从今往后的某一天,文盲和非文盲之间的差别不再看文字的运用能力,而是看是否会写代码(书写),或至少能读懂代码(阅读)。那么多人严重依赖自己哪怕连最浅显的理解都不具备的东西,这件事想想就让人感觉恐怖。正如 Steve Jobs 曾经说过的:“在网上,哪怕全球最小的公司看起来也和最大规模的公司一样大”,这句话直到今天依然是真理。Web 比以往任何时候具备更多的潜力。随着越来越多的逻辑开始包含在客户端,随着 JavaScript 成为 Web 上的通用语言,你也需要想方设法保护这些网站,因为 Web 中也将出现越来越多的威胁。

Jscrambler 提供了一种运行时应用程序自保护(RASP)解决方案,该方案可为客户端 Web 应用程序提供有效的保护,防范运行时攻击。在该解决方案的帮助下,用户的 Web 应用程序可通过针对 JavaScript 量身打造的反调试和反篡改技术(均为流行的应用程序保护方法)自我防护并检测篡改。

作者 Niels Klom 阅读英文原文 The Web Is Not Tomorrow But Today


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-11-15 16:403338
用户头像

发布了 283 篇内容, 共 102.0 次阅读, 收获喜欢 61 次。

关注

评论

发布
暂无评论
发现更多内容

Vue进阶(幺肆零):vue 新增数组或对象更新后,视图不更新的解决方案

No Silver Bullet

Vue 10月月更

第1周作业

危险游戏

架构实战营

HTTPS 协议到底比 HTTP 协议多些什么?

JackTian

https 网络协议 网络 HTTP 网络工程师

现成存币生息钱包软件系统开发模板

2021年南通市正规等保测评机构有几家?叫什么名称?

行云管家

网络安全 等级保护 等保测评

金九银十面试了3家大厂Java岗,我得到的知识总结

Java 程序员 架构 面试 大厂

行云创新即将出席2021云栖大会,共话云原生

行云创新

云原生 阿里 开发 行云 云栖大会

从瀑布式到DevOps,开发流程经历了什么?

SoFlu软件机器人

DevOps 敏捷开发

多币种钱包系统开发介绍(现成)

Bazel构建Android项目

轻口味

android 10月月更

五个维度打造研发管理体系

车江毅

研发管理 软件开发 技术管理 研发体系 研发团队

区块链多币种钱包软件系统开发费用(案例)

面试官:Java从编译到执行,发生了什么?

Java 架构 面试 JVM

020云原生之Pod介绍

穿过生命散发芬芳

云原生 10月月更

第 19 章 -《Linux 一学就会》- shell脚本的基础

学神来啦

Linux Shell linux一学就会 linux基础

官方线索|第十三届中国开源黑客松

轻口味

1024我在现场

Python代码阅读(第39篇):获取列表出现频率最高的元素

Felix

Python 编程 Code Programing 阅读代码

一个人如何又快又好的管理多台windows server服务器?

行云管家

服务器 运维监控 运维管理

淘宝小部件:全新的开放卡片技术!

阿里巴巴终端技术

小程序 ios android 淘宝 客户端开发

架构师训练营模块一作业

CheneyWang

架构实战营

协作型CRM软件能帮到你什么?

低代码小观

企业 企业管理 CRM 管理系统 管理工具

架构实战营 模块一作业

felix

架构实战营

阿里内部珍藏版:SpringCloud Alibaba第三版(全彩手册)

Java 架构 面试 微服务 大厂

区块链钱包系统软件开发详情(搭建案例)

模块一作业:微信业务架构图与学生管理系统毕设架构设计

deng

架构实战营

区块链数字货币钱包系统开发公司(案例)

区块链数字钱包系统软件开发详情(搭建)

redis在微服务领域的贡献

Java redis 面试 微服务 后端

2021年10月国产数据库排行榜:达梦反超OceanBase夺榜眼,TDSQL实现“四连增”,数据生态加速建设

墨天轮

opengauss TiDB oceanbase 国产数据库 达梦

BFE Ingress Controller正式发布!

百度开发者中心

负载均衡 云原生 开源技术 kurbernetes ingress

区块链加密货币钱包软件系统开发公司(现成)

Web不是未来会赢,而是已经赢了_语言 & 开发_Niels Klom_InfoQ精选文章