冯雨
新生代“轻语者”:更灵活的组织形态
微信小程序,是基于微信推出的全新平台,开发者们可以自行开发出在微信上面运行的程序,用户可以通过搜索或者聊天分享的方式获取并直接运行它们。
作为互联网时代的“轻语者”,微信小程序有着自己鲜明的个性:首先是无需安装便可以直接使用;第二点是“触手可及”,比如我们看到一盏灯,想要控制它,只需要用智能手机对着它扫一下,然后控制这盏灯的应用程序就已经启动起来了;而“用完即走”则是微信小程序的第三个特点,用完后当它不存在就可以了;最后一个特点是无需下载,你访问过的服务,并不需要另外一个程序管理器去处理它,省去了卸载清理的过程。
通过这四个特点,我们可以看到,小程序看起来是程序,但是它却以完全不同于App的形态出现,拥有更灵活的应用组织形态。不过,尽管有许多新奇之处,但小程序开发的过程却并没有背离互联网技术开发的基本路线。
链接平台:同一个服务器,千万种客户端
对互联网开发而言,服务器与客户端是必不可少的存在。举个例子,常打游戏的人都知道,一个游戏必须有“客户端”才能玩。而网络游戏和单机游戏的一个巨大区别正是网络游戏需要用“客户端”去连接“服务器”,此时客户端就需要工程师进行研发。根据分工不同,工程师分为前端工程师与后端工程师,笼统地讲,前端工程师开发的是用户机器上运行的“客户端”,而后端工程师开发的则是服务器上运行的“服务器端”。可以说,后端工程师总是守着自家的服务器过日子,而前端工程师则各有各的分工。
电脑游戏客户端的开发还算轻松,但要是加上现在各式各样的移动客户端,前端开发的情况就复杂许多了。广义上的前端开发,几乎包括了PC、iOS、Android、Windows Phone等全部操作系统平台,除此之外还有与浏览器对应的跨平台 Web开发。而由于各大操作系统本身就无比复杂,工程师们又要再次分工,例如iOS 开发工程师、Android 开发工程师等。
主要的平台已经有许多不同,再加上 Android 的开放性和各式定制版本的不同,以及各类手机尺寸,前端工程师面临的任务就更加艰巨。而微信小程序,就能够通过一个服务器,解决不同客户端的问题,让工程师们的工作变得更加轻松。
技术图谱:一次编写,多处运行
于是,小程序为了达到工程师们“一次编写,多处运行”的目的,就开始了所谓的“跨平台”操作。那么小程序是怎样在Web和App的技術基础上实现自己的目标的呢?
首先来说说基于浏览器的 Web技术。Web 也就是网页,几乎每一个系统上都有浏览器,所以网页自带跨平台属性。网页可以通过程序来与用户互动,于是工程师在 PC 端使用了大量的网页程序,小到点击一下把商品加入购物车,大到美图秀秀的网页版。
现在再来说说App,我们通常把直接运行在各大系统上的App叫作Native App,由 Web技术做出来的,在网页上运行的 App 叫 Web App。可是网页有一个问题,因为它本身是针对“展示”设计的,所以 Web App 和系统之间的交互往往十分不便,比如你很难让一个网页像 App一样读取你的联系人、相册、本地文件,而且它的运行速度也比 Native App慢。为了解决这个问题,一些人就想到了先安装一个Native App ,在里面运行 Web App,当需要系统级别的功能或者加快运行速度时,它便当作网页和操作系统之间的桥梁。这种运行模式被称为混合模式,学名叫Hybrid App,大家熟悉的淘宝就是一个范例。
而微信小程序使用的则是类 Hybrid 技术。微信在运行小程序的时候,就像是上面提到的那个“桥梁”Native App,而我们编写的小程序,就像是在里面运行的 Web App,无论是编写还是运行过程两者都很相似。但是和 Hybrid App 有所不同的是,原来每一个开发者都需要用户把“桥梁”先安装到系统上,而微信则被大多数用户提前安装好了,这个“桥梁”的安装便可省略,当开发者们共用一个桥梁,我们就可以直接从网上“打开”一个应用了。
小程序的本质:信息即是服务
微信小程序的出现,让我们以一种新的角度审视互联网——程序本身也是信息。这些程序信息通过聊天窗口的气泡流动在互联网上,通过二维码流转于虚拟和现实之间,程序演变为信息,信息演变为服务。
当 App 被拆解成一个又一个的使用场景,就像我们可以在阅读应用里把一本书的某一页写好评注发给朋友,而他们则添加到自己的阅读清单应用里面,他读完后可以用语音或者文字对这一页文章加以评论,你会马上收到提醒。如果你们愿意,你们之间的讨论也能被更多朋友乃至陌生人看到。
现在,我们已经开始通过互联网捕捉大量的信息,并利用人工智能对这些信息进行处理和利用。而在未来,伴随着微信小程序数量的增加及质量的提升,小程序覆盖的设备种类及线下区域将越来越多,它对使用者的价值也将越来越高。当小程序完全渗透进我们的生活后,我们的双眼所见之处,双足所到之处,都将会是信息与服务的所在之处。