写点什么

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:403696
用户头像

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

关注

评论

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

AI药物研发大赛培训来啦!清华博导讲解,高分基线等你来Fork!

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

SpringBoot 2 种方式快速实现分库分表,轻松拿捏!

程序员小富

分库分表 springboot ShardingSphere

数据分析与可视化在企业中的日常应用

夏日星河

Android SDK安全加固问题与分析

百度Geek说

android 安全加固 企业号 6 月 PK 榜 6 月 优质更文活动

typescript的必要性及使用 | 京东云技术团队

京东科技开发者

JavaScript 前端 企业号 6 月 PK 榜

芯片中的上百亿个晶体管是如何设计的?

博文视点Broadview

CFFF部署在公共云上意义重大

新云力量

阿里云 复旦大学 智算平台

直播平台源码功能分享:直播回放功能的实现

山东布谷科技

软件开发 直播 源码搭建 直播平台源码

瓴羊Quick BI:财务报表分析工具的重要应用

巷子

京东到家小程序-在性能及多端能力的探索实践 | 京东云技术团队

京东科技开发者

小程序 性能优化 后端 多端开发 企业号 6 月 PK 榜

一年省七位数,得物自建HFDS在 Flink Checkpoint 场景下的应用实践

得物技术

大数据 阿里云 成本优化

从“云原生”到“比Flink快十倍”:RisingWave的寻找自我认知之旅

吴英骏

数据库 sql 流处理

PoseiSwap IDO、IEO 结束,即将登录 BNB Chain

西柚子

直播预约 | 邀您共同探讨“云XR技术如何改变元宇宙的虚拟体验”

3DCAT实时渲染

元宇宙 VR虚拟现实 云XR技术

AIGC+设计|AI卖画,卖的是创意还是生意?

TE智库

人工智能 AIGC 生成式AI 平面设计

vivo 自研鲁班分布式 ID 服务实践

vivo互联网技术

雪花算法 分布式ID UidGenerator Tinyid Leaf

BI商业智能工具成宠儿,企业降本增效优质工具

夜雨微澜

Apifox:与 OpenAI 接口调试的最佳拍档

Apifox

开发 API openai ChatGPT chatgpt api

直播系统聊天技术(九):千万级实时直播弹幕的技术实践

JackJiang

网络编程 即时通讯 IM

可观测性Trace全量存储——之开篇

乘云数字DataBuff

浅谈 ByteHouse Projection 优化实践

不在线第一只蜗牛

bytehouse

行云管家- 积极探索“AI+信息安全”的创新融合

行云管家

网络安全 信息安全 智能 AI智能

推进绿色数据中心建设,宁畅发布“无忧焕液计划”

极客天地

玖章算术与百度智能云达成合作,「NineData SQL 开发」成为百度智能云主推的数据库工具

Baidu AICLOUD

使用堡垒机的意义你知道吗?能解决哪些问题?

行云管家

网络安全 信息安全 堡垒机 数据泄露

CFFF在复旦上线 中国高校可以在世界带好头!

新云力量

阿里云 复旦大学 智算平台

【有奖体验】这个 AI 智能回答,就一个字“绝”!

阿里巴巴云原生

阿里云 AI 云原生

Java反射源码学习之旅 | 京东云技术团队

京东科技开发者

Java java反射 企业号 6 月 PK 榜

全球NDR市场“客户之声”首次发布:那些最挑剔的用户都选了谁?

极客天地

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