微信小程序終于發(fā)布了,我一直對這個東西很有興趣,不是為了獲得什么“流量紅利”,而是從技術(shù)上看,它做了一些有意思的嘗試。我沒有參加內(nèi)測的資格,也沒有去和官方或者熟悉官方的人打探過消息。我始終認(rèn)為,在這個行業(yè)里面,一個動作不需要看作者如何說,你只要對歷史和行業(yè)足夠熟悉,那么只要自己去看發(fā)生了什么就可以了。離得越近,受的影響越多,反而難以看得客觀。所以,以下就是我做為一個完全圈外人對微信小程序的看法。
微信小程序傾向增強(qiáng)現(xiàn)實
先說應(yīng)用場景。一句話概括,我認(rèn)為微信小程序的場景應(yīng)該是增強(qiáng)現(xiàn)實,也就是所謂AR。
這幾年視頻相關(guān)的增強(qiáng)現(xiàn)實和VR技術(shù)熱度太高,一說起來AR就容易讓人聯(lián)想到視覺增強(qiáng)。實際上按照所謂“現(xiàn)實-虛擬連續(xù)域(Reality–virtuality continuum)”的分類法,現(xiàn)實世界和虛擬世界中間任何鏈接物,都可以叫做AR,微信對二維碼的應(yīng)用就是這樣一種技術(shù)。通過二維碼從現(xiàn)實世界獲取信息,這就是對現(xiàn)實場景的增強(qiáng)。
無論是車站站牌,公司名片,商場貨架…任何現(xiàn)實中的東西,通過掃一個二維碼進(jìn)入一個“小程序”,這個小程序就是對那個現(xiàn)實場景的增強(qiáng),二維碼鏈接了現(xiàn)實世界和虛擬世界,換個更通俗的說法就是鏈接了線上和線下,咦,這不就是O2O嗎?是的,我一直認(rèn)為O2O曾經(jīng)的高速發(fā)展同樣是基于“數(shù)字世界如何增強(qiáng)現(xiàn)實”這個理由。不僅僅是微信對這個東西有興趣,很多年來,這個方向都是各大公司的實驗場。
先來看一個相當(dāng)原始的例子。
如圖可見,這是我們這里的公交車站使用的系統(tǒng),在公交公司網(wǎng)站上,輸入這個站上的數(shù)字編號7951,就能知道公交車發(fā)車班次和最近的公交車位置。這套系統(tǒng)正常工作是沒問題的,但是用戶自己輸入網(wǎng)址和站牌數(shù)字編號,很麻煩。建設(shè)更晚的上海智能公交系統(tǒng)就先進(jìn)多了,他們把二維碼放上了站牌,掃一下就可以了。
二維碼仍然需要打開一個掃碼工具,拿攝像頭對準(zhǔn)它,仍然有點麻煩。在我們這樣寒冷地區(qū),冬天在室外完成這個動作更有挑戰(zhàn)。
比二維碼更簡單的方式就是NFC了。NFC本來是相關(guān)技術(shù)里面最平衡的一個,有很多成功應(yīng)用案例,成本也不算高??上O果多年來就是對它沒興趣,雖然Apple Pay也是通過NFC,但蘋果就是不讓第三方app用,只給自己用于支付這一個功能。缺少了蘋果的推動,盡管Android手機(jī)早已標(biāo)配了NFC芯片,這東西還是火不起來。
蘋果自己推的另外一個東西iBeacon受制于各種限制和成本,也一樣火不起來。這樣幾個方案都有設(shè)備支持問題,二維碼就成了現(xiàn)在最好的方案。尤其在中國,幾乎所有手機(jī)都安裝的微信,微信主推的二維碼自然也就普及了。實際上很多場景NFC有更好的優(yōu)勢,比如,摩拜單車。他們印在車上的解鎖二維碼經(jīng)常被人涂改損壞,如果使用的是車身內(nèi)置NFC的方案,就不這么容易被人損壞了,維護(hù)成本會低很多。
倫敦公交使用的方案很好玩,它既使用NFC,同時也用二維碼。我猜這就是目前尷尬狀況的表現(xiàn),NFC維護(hù)成本低,穩(wěn)定性高,適合常常下雨、濕冷的倫敦,對于公交車站這種場合非常適用,但為了iPhone用戶,二維碼也要同時存在。無論是NFC還是二維碼,它完成的工作是一樣的,都是提供一個鏈接,讓用戶的設(shè)備可以打開它,無論最終展現(xiàn)為瀏覽器的一個網(wǎng)頁/某個app中的一個條目/小程序中的一頁,都是通過一個鏈接喚醒的。
只是到目前為止,NFC可以從手機(jī)的系統(tǒng)級別喚起,但二維碼還只能從軟件開始。去年Apple Pay 和 微信支付 哪個更好用的爭論就是這種區(qū)別的表現(xiàn)。體驗上說,如果銀行支持,Apple Pay的接觸就完成支付的系統(tǒng)級支持,顯然優(yōu)勢更大,但實際情況看,微信掃二維碼支付更普及,適用范圍更廣,適用門檻也低很多。微信小程序同樣走的是這條路,它不是最方便的增強(qiáng)現(xiàn)實方案,但是是更普及、成本更低、應(yīng)用門檻更低的方案。
從這個角度考慮,微信小程序過去說過的“沒有入口,不能轉(zhuǎn)發(fā)到朋友圈,沒有應(yīng)用商店”是合理的,它增強(qiáng)的就是現(xiàn)實,你不在那個現(xiàn)實環(huán)境中,就不需要它,為什么需要入口呢?雖然從今天發(fā)布的情況看,這個思路略微有了一點點變化,更多的非?,F(xiàn)實場景應(yīng)用也出現(xiàn)了,這算一種妥協(xié)或者野心吧。不過必須要掃二維碼,而不是長按識別二維碼才能使用小程序這個限制,仍然暗示了小程序在當(dāng)前階段是傾向現(xiàn)實場景的。
HTML應(yīng)用 vs App
前面說了,無論是掃碼還是NFC,最終都是通過一個URL,定位到需要的信息,這符合URL真正的含義,我們通常把URL翻譯為網(wǎng)址,但它真正的字面意義是“統(tǒng)一資源定位符”。在制訂萬維網(wǎng)WWW這個協(xié)議的時候,URL的意義就是明確的,一個URL指向一份特定的資源(信息)。到了移動互聯(lián)網(wǎng)的APP時代,新問題來了,一個URL到底應(yīng)該展現(xiàn)在瀏覽器里面,還是通過瀏覽器再喚醒一個APP,進(jìn)入APP的對應(yīng)條目呢?
這個資源定位的鏈條突然變長了,不確定性也增加了。對于開發(fā)者,不同設(shè)備和不同瀏覽器最終展現(xiàn)出來的結(jié)果差距甚遠(yuǎn)。從這個角度看,微信試圖提供一套統(tǒng)一的開發(fā)庫和運(yùn)行環(huán)境,讓信息以小程序這種方式展現(xiàn)出來,這是一件好事。開發(fā)者可以避免更多的不確定性,用戶在獲取信息的時候可靠性也更強(qiáng)。我相信這是微信以小程序這種方式解決問題的初衷,其他的各種限制和規(guī)則都是在這個基礎(chǔ)上的為了安全實現(xiàn)它而產(chǎn)生的。當(dāng)然,這樣如果做成功了,就順便控制了一批新的數(shù)據(jù)的入口,戰(zhàn)略意義重大。
至于有多少應(yīng)用會使用這種形式,這是另外一個爭論已久的話題:HTML應(yīng)用 vs App。在iPhone剛剛出現(xiàn)的年代,就有很多公司(尤其是媒體公司,比如FT.com)試圖通過html5的一些特性提供更好的網(wǎng)頁瀏覽體驗,避免開發(fā)App的高成本。特別需要指出的是,無論iOS還是Android,從一開始就有把一個URL對面的頁面,變成主屏幕上一個圖標(biāo)的功能,這并不是微信小程序的發(fā)明。
今天回頭來看,歷史證明了,所有試圖用HTML取代APP的公司,最終都還是提供了原生APP。后來還流行過一段時間混合應(yīng)用,即在一個APP外殼里面裝入HTML5的內(nèi)容。毫無疑問,這種做法也失敗了,其中最悲慘的失敗者是Facebook,直到2012年Facebook終于醒悟了不能這么做,回到了原生APP奮起直追,又收購了Instagram和WhatsApp兩個最紅的App,終于沒錯過移動互聯(lián)網(wǎng)這一波浪潮。
2012的問題在于HTML糟糕的性能,對硬件支持不夠等等造成的用戶體驗不好,使用感受非常不流暢,今天這些問題差不多解決了。Facebook也并沒放棄過HTML APP這條路,現(xiàn)在份額最大的JavaScript界面庫React仍然是Facebook出品,它已經(jīng)幾乎成了事實上的標(biāo)準(zhǔn)。在移動互聯(lián)網(wǎng)之前的時代,F(xiàn)acebook自己實際上就是一個Web App Store,里面塞滿了無數(shù)基于HTML開發(fā)的應(yīng)用。今天微信做的頗似Web時代的Facebook,有趣的是Facebook自己反而走了另外一條路,后面我會再提到這條新路。
從目前實現(xiàn)的情況看,因為HTML本身的限制以及微信自身增加的限制,多數(shù)情況下,微信小程序仍然沒法替代原生APP,它更像原生APP的一個快捷應(yīng)用,或者叫Widget也許更準(zhǔn)確。在用戶沒有安裝或者沒有打開APP的情況下,先快速獲得信息。也許一部分小型應(yīng)用會停留在小程序中,但大公司的目標(biāo)一定不止于此,無論從任何角度看,小程序?qū)τ谒麄內(nèi)匀恢皇且粋€快捷的接觸客戶導(dǎo)流入口,最終仍然要回到自己的APP才安全。至于所謂低頻APP,他們本來也就是無所謂形式的,這些APP存在什么平臺并不重要,本來也沒法靠它們構(gòu)成一個平臺的主要支撐應(yīng)用。
微信公眾號的發(fā)展也是這樣的情況。最早的時候,公眾號是為商家開發(fā)的應(yīng)用。雖然也有不少商家使用它,不過一直不成氣候。直到大量的個人用戶進(jìn)入公眾平臺,把它做為單純的內(nèi)容發(fā)布渠道,終于通過內(nèi)容引爆了這一波公眾號的浪潮,進(jìn)而影響到商業(yè)應(yīng)用。不過奇怪的是,微信官方的態(tài)度始終是重視企業(yè)應(yīng)用,壓抑個人應(yīng)用。似乎個人總是更容易傷害用戶利益,必須要時刻提防著,公眾號各種權(quán)限都是對企業(yè)認(rèn)證用戶開發(fā),對個人訂閱號不開放。微信似乎認(rèn)為公司更可靠,不過現(xiàn)實情況恰好相反,要做壞事的人花幾百塊錢就能注冊一個公司殼,但個人總不能換名字換身份證。何況商業(yè)應(yīng)用利潤和KPI考核總是帶來更大的作惡動機(jī)。從整個軟件和互聯(lián)網(wǎng)的發(fā)展歷史看,最終獲得最大利潤的是公司,但每個平臺最早拓荒的第一批人總是個人開發(fā)者。張小龍自己當(dāng)年不也是以個人開發(fā)者身份開發(fā)的郵件軟件Foxmail嗎?到了微信小程序時代,個人開發(fā)者如果不去注冊一個公司殼,竟然都不能參與開發(fā)了…這顯然是一種倒退。
另外一個問題,HTML5本來是自由的,人們當(dāng)年希望HTML5勝過APP,是因為它不用審核,更靈活。微信把小程序增加了一道審核機(jī)制,等于消滅了HTML APP最好的特性之一。存在了審核機(jī)制之后還不允許個人開發(fā)者參與就更匪夷所思了。當(dāng)然,很多人會說蘋果比Android更好的原因是因為蘋果封閉審核APP,讓應(yīng)用質(zhì)量更高。在2012年這種說法是正確的,但今年是2017年了。Google Play Store審核是自動的,比蘋果快速的多,修改立刻就可以發(fā)布。的確,Play Store曾經(jīng)存在各種問題,盜版、侵權(quán)、有危險的應(yīng)用……過去都出現(xiàn)過,但在今天,Play Store的APP質(zhì)量和AppStore已經(jīng)達(dá)到了一致水平??紤]到多樣性和更新頻率更高,修改Bug更及時,Play Store 往往能提供更好,多樣性更強(qiáng)的APP。
審核上架和拒絕個人用戶這兩個限制同時存在,我很難看好小程序的發(fā)展。什么時候這兩個條件去掉一個,我會更好看一點。等到和公眾號一樣,無條件允許個人參與了,那時候我會比較看好它。
除了微信,Google也一直在推廣PWA標(biāo)準(zhǔn),同樣是基于瀏覽器的APP。微信小程序接近于PWA去掉一些功能再加上一些微信自己的特有功能。PWA和網(wǎng)頁一樣自由,同時又享有了APP的一些優(yōu)勢,是不錯的技術(shù)。更重要的一點是,它是真實的網(wǎng)頁,Google可以索引它,從而通過搜索繼續(xù)帶來流量。一套生態(tài)系統(tǒng)是否能存活,流量分配機(jī)制是相當(dāng)重要的。如果只靠開發(fā)者自己從其他渠道才能獲得流量,這個生態(tài)系統(tǒng)是有風(fēng)險的。開發(fā)者自己弄到了流量,那就總需要把這個流量想辦法再倒回給自己,回到更自由,更穩(wěn)定掌控的地方。這是任何團(tuán)隊必然存在的趨利避害心理,無論用什么方式,也不可能壓抑住這種沖動?,F(xiàn)在用了個小程序就刪除原生APP的時髦用戶,我猜他們早晚會被各種哄騙利誘重新裝回APP的。在這些年里面,試圖控制HTML和URL的,都是有巨大野心的玩家們,一家沖進(jìn)來,另外一家也不會落后,所以,我們且等著看下一個殺入這個戰(zhàn)場的是誰。
聊天機(jī)器人應(yīng)用會是將來重要的入口
前面說到Facebook在Web時代是做HTML應(yīng)用商店的路子,但移動時代它不這么做了。那么新的思路是什么呢?如果你前幾天被扎克伯格業(yè)余時間自己開發(fā)的家用人工智能助理Jarvis刷了屏,也許會注意到除了語音識別的酷炫,它下面實現(xiàn)的基礎(chǔ)是基于聊天的Bot。對于Facebook/Google/Amazon,以及Telegram,聊天機(jī)器人正在成為新的APP平臺。結(jié)合已經(jīng)非常成熟的語義分析,幾乎一切操作都可以通過聊天界面完成,這是重要的發(fā)展方向,各種語言,各個國家,不同的聊天類應(yīng)用都是前幾大份額的應(yīng)用之一,通過聊天機(jī)器人控制具體應(yīng)用直觀又簡單,適應(yīng)的場景也很多,逐漸成為新的熱點是正常的。除了聊天工具和互聯(lián)網(wǎng)公司們,蘋果的siri也是盯著這個方向的。但奇怪的是在聊天App這個戰(zhàn)爭中勝利者之一的微信,竟然沒有走向這條路,我百思不得其解。
我相信語音或者文字的聊天機(jī)器人應(yīng)用會是將來重要的入口,也許是最重要的入口。做為開發(fā)者,無論你看好什么都無所謂,但現(xiàn)在應(yīng)該考慮到足夠的彈性,做好抽象,設(shè)計好后端API和前端展現(xiàn)分離的結(jié)構(gòu)。這樣無論是繼續(xù)做APP或者等BAT中另外兩家推廣PWA,或者跟上微信的小程序,以及未來通過聊天機(jī)器人接入什么新的系統(tǒng),你都有足夠的靈活性。這些接入方式都是表現(xiàn)層,重要的部分是后端的數(shù)據(jù)和數(shù)據(jù)處理能力,或者提供信息的能力。所以只要設(shè)計好架構(gòu),表現(xiàn)層可以用非常低的成本疊加上去。我想,現(xiàn)在最值錢的工種不應(yīng)該是開發(fā)小程序或者開發(fā)APP的程序員,而是資深的架構(gòu)師。他們才能幫你立于不敗之地。
另外,推薦的詹臏老師一篇關(guān)于小程序的文章:《小程序:關(guān)心可會話分享可促發(fā)的用戶行為》。