原始社會史學(xué)家摩爾根在其里程碑式的著作《古代社會》中說到:“野蠻人的進化是一步一步的,當(dāng)他發(fā)現(xiàn)金屬礦的時候,當(dāng)他學(xué)會熔解這些礦石并澆鑄在模具中的時候,當(dāng)他把銅礦與錫共同融合制造青銅的時候,當(dāng)他發(fā)明熔爐并學(xué)會冶鐵的時候……直到當(dāng)他學(xué)會制造帶有刃和尖的鐵器的時候,文明最終才算到來”。
摩爾根把冶鐵技術(shù)的發(fā)明叫做“關(guān)于事件的事件,制造工具的工具”,在考察了各種古代社會形態(tài)之后,他指出人類社會發(fā)展核心動力是使用與制造工具的過程,人們不僅使用工具,人們還要制造工具,這兩者相輔相成,共同推動著人類進步,而制造工具更是重中之重。
受摩爾根的啟發(fā),早在計算機剛剛發(fā)明的時候,后來的第一屆圖靈獎得主Alan Perlis曾經(jīng)寫下這樣兩條法則:
被訓(xùn)練的能夠使用工具的人,被開發(fā)出來用以使用的工具,這兩者的不斷增加表明工具集合逐漸會成長為產(chǎn)品而不是簡單的加和。創(chuàng)造的部分——用以開發(fā)工具的工具數(shù)量與使用情況——也是產(chǎn)品的一部分,并且這部分更能從長期保證工具使用的增長。
計算機與互聯(lián)網(wǎng)的出現(xiàn)不過短短幾十年,站在未來看現(xiàn)在,我們極以傲的新時代可能僅僅是信息文明的一點萌芽,然而復(fù)雜系統(tǒng)背后都有簡單道理,這兩條法則或許也是信息文明發(fā)展的第一性原理。
這兩條法則有多種應(yīng)用層次,不僅可以解釋全局,也可以解釋局部。
比如,我們用它來看看國內(nèi)互聯(lián)網(wǎng)。
注:工具是一個比較抽象的詞,既可以被人用來開發(fā)其他工具也可以直接使用,為了方便理解,我們先以互聯(lián)網(wǎng)為例做一個粗淺的劃分,直接被人使用的叫做應(yīng)用,用以開發(fā)這些應(yīng)用的工具叫做信息技術(shù),簡稱技術(shù)。
中國消費互聯(lián)網(wǎng)與產(chǎn)業(yè)互聯(lián)網(wǎng)的發(fā)展速度不匹配,法則一,中國有大量的使用信息工具(應(yīng)用)網(wǎng)民,在這種人口紅利的驅(qū)動下各個公司進行了大量場景和業(yè)務(wù)創(chuàng)新,提供了非常多的應(yīng)用工具,這兩者構(gòu)成了國內(nèi)消費互聯(lián)網(wǎng)的繁榮景象。但根據(jù)法則二,國內(nèi)用以開發(fā)這些應(yīng)用的工具往往是從國外引入的(操作系統(tǒng)、編程語言、數(shù)據(jù)庫,開發(fā)框架、大數(shù)據(jù)引擎、人工智能框架與算法包),這一部分長期落后,而且具有使用能力的開發(fā)者不多,導(dǎo)致使用情況很淺,所以長期看發(fā)展后勁不足,這便是產(chǎn)業(yè)互聯(lián)網(wǎng)的落后局面。
所以互聯(lián)網(wǎng)不是走完上半場該走下半場了,而是說國內(nèi)產(chǎn)業(yè)互聯(lián)網(wǎng)的乏力影響了消費互聯(lián)網(wǎng)的發(fā)展——很顯然消費者的需求還遠遠沒被滿足。
舉個例子,我們看一下隨著中國互聯(lián)網(wǎng)一起發(fā)展起來的搜索引擎。
你別看搜索引擎動不動返回幾百萬條結(jié)果,其實根本是他不知道你需要什么東西,也不知道自己返回了什么東西,你想要的東西混在大量的垃圾頁面里面,所以每次檢索都要點開十幾個頁面。
而造成這個情況的原因恰恰是開發(fā)搜索應(yīng)用的技術(shù)還相當(dāng)初級——且未得到廣泛應(yīng)用。
搜索引擎從效果上最依賴的是自然語言處理技術(shù),在深度學(xué)習(xí)和知識圖譜的強力夾持下,某些特定場景已經(jīng)取得了較為理想的結(jié)果,比如搜索“姚明的老婆”會返回“葉莉”,但在更為廣闊的領(lǐng)域,在那些還來不及精心設(shè)計一個知識圖譜的領(lǐng)域其效果便略顯遺憾了,比如你輸入“鈦媒體的作者”,百度只能給你一個帶有“鈦媒體作者”標示的頁面鏈接,并沒有奇跡般的直接把鈦媒體作者及其介紹展示給你,于是你不得不懷疑人工智能里到底有多少人工。而且這還是頂級公司,他們研究多年的技術(shù)并沒有廣泛傳播出來。
更為一般的公司用以開發(fā)搜索工具的工具則更為初級,原理就是詞頻。哪個詞出現(xiàn)的多哪個詞就重要,就代表了文章的意思,然后有些詞實在太常見了,以至于在所有文章里出現(xiàn)次數(shù)都多,這些詞就需要降一下權(quán)重(TF-IDF)。為了體面,這里就不再提中文連詞都分不準的問題了。而且使用詞頻的還不算太差,更有甚者,是直接用的Mysql自帶的字符串匹配……
02 云計算的位置與意義
云計算市場規(guī)模一年比一年高,參與者一年比一年多,拋開金錢的味道,我們在上面兩條法則下看一下云計算所處的位置。
云計算這個詞很抽象,不妨看看云計算到底提供了什么產(chǎn)品,這些產(chǎn)品要怎么用。
阿里云產(chǎn)品截圖
服務(wù)器、數(shù)據(jù)庫、負載均衡、圖像識別、圖像搜索等等,顯然這些都是用以生產(chǎn)工具,是工具的工具。
云計算產(chǎn)品如何使用
以實時計算產(chǎn)品為例來看一下原產(chǎn)品的用法。一般云產(chǎn)品都會有一個web控制臺,直接通過瀏覽器登陸后進行操作,管理資源和進行開發(fā)。瀏覽器相當(dāng)于一個入口,作業(yè)在云服務(wù)商的數(shù)據(jù)中心運行,數(shù)據(jù)也存儲于這些分散在世界各地的數(shù)據(jù)中心里。
在云計算早期的時候很多人說這是舊瓶裝新酒,和傳統(tǒng)的VPC或服務(wù)器托管沒多少區(qū)別,但我們不要拘泥于兩者相似之處固步自封。服務(wù)器托管并不是云計算的特點,生產(chǎn)完備性才是云計算想象力的基礎(chǔ):打開aws、azure和阿里云的產(chǎn)品頁面看看,基本上開發(fā)用到的各種工具都有提供,而且大部分是這些大廠直接提供的。
以第一節(jié)提到的搜索為例,各大云廠商均提供了多種自然語言處理工具,比如分詞、實體識別等,一般公司基于這些工具開發(fā)自己的搜索,至少可以對標當(dāng)今科技的先進水平,這在云計算出現(xiàn)之前是很難想象的。
所以從互聯(lián)網(wǎng)整體來看,云計算就是信息時代關(guān)于工具的工具,關(guān)于事件的事件,通過云的方式促進技術(shù)的傳播與使用,進而促進應(yīng)用的發(fā)展,這才是云計算的價值與位置,應(yīng)用側(cè)在互聯(lián)網(wǎng)時代創(chuàng)造的一切輝煌云計算都將重演,甚至更烈。
說到這里,我們很容易解釋一個現(xiàn)象:大的云計算廠商目前大部分是成功的應(yīng)用開發(fā)商,比如AWS、谷歌云和阿里云。
從整個互聯(lián)網(wǎng)來看,云廠商處在供給者的角色,提供創(chuàng)造工具的工具,那么很顯然,只有創(chuàng)造過工具的人才知道工具如何創(chuàng)造,才能更好的提供創(chuàng)造工具的工具——這聽起來有點繞,我們不妨舉個例子。
很多互聯(lián)網(wǎng)公司業(yè)務(wù)都有季節(jié)周期,甚至每天都有波峰波谷,如果他們尋找解決方案提供商,那誰最擅長?
顯然像Amazon和阿里巴巴這樣的公司最有經(jīng)驗,雙十一、雙十二、黑五等各種活動讓他們飽經(jīng)歷練,積累起大量關(guān)于彈性的技術(shù),很多客戶的挑戰(zhàn)在他們這里不過是送分題,所以提供的解決方案也更為有效。
再以前面提到的搜索技術(shù)為例,假如谷歌把自己的搜索技術(shù)直接云化提供,大家接入后很快就便把搜索水平提升到了世界最先進水平。
除此之外,對云廠商來說,把原有技術(shù)直接云化還省去了大量研發(fā)成本。
所以公司業(yè)務(wù)覆蓋越廣,碰到的問題越多,曾經(jīng)解決的問題越多,在云計算轉(zhuǎn)型的過程中就越貼近客戶需求,成本越低,總體就越有優(yōu)勢。
03 云廠商、第三方市場與開發(fā)者
看完整體,我們再用這兩條法則看一下局部。
被訓(xùn)練的能夠使用工具的人,被開發(fā)出來用以使用的工具,這兩者的不斷增加表明工具集合逐漸會成長為產(chǎn)品而不是簡單的加和。
創(chuàng)造的部分——用以開發(fā)工具的工具數(shù)量與使用情況——也是產(chǎn)品的一部分,并且這部分更能從長期保證工具使用的增長。
我們可以把云計算廠商提供的產(chǎn)品叫做工具,開發(fā)者顯然就是使用這些工具的人,那么從第一條法則來看,云廠商需要:
增加工具的供給
訓(xùn)練&增加開發(fā)者的數(shù)量
說到工具的供給,除了在第二節(jié)提到的自研和把自己原來的系統(tǒng)直接云化之外,各大云廠商還有自己的第三方市場,就像蘋果的APP store一樣,允許其它公司和個人提供服務(wù)。
然后說一下開發(fā)者。
AWS re:Invent 2018的主題——It is all about builders。我覺得這句話說的特別好,恰好代表了云廠商對開發(fā)者該有的態(tài)度。
開發(fā)者首先是自己培養(yǎng),有些產(chǎn)品完全是云廠商的自研產(chǎn)品,必須要培養(yǎng)開發(fā)者,這點各大云廠商都有自己的開發(fā)者社區(qū),也都在提供開發(fā)者認證培訓(xùn)。
其次是開源開發(fā)者,除了自研產(chǎn)品與開源產(chǎn)品保持兼容之外(比如阿里云的MaxCompute大數(shù)據(jù)服務(wù)保持了與開源軟件HIVE的兼容),大家最近都在直接爭奪開源社區(qū)開發(fā)者——微軟收購Github、阿里引入Elastic&收購Flink、AWS和Azure引入Databricks等等,甚至阿里畢玄最近有一篇標題為《開發(fā)者生態(tài),未來云的勝負手》的文章。
我前面在鈦媒體的文章《OAS啟示錄:2B業(yè)務(wù)高昂的售前售后成本是否能通過開放源碼降低?》介紹過開源軟件如何降低銷售與交付成本。開源軟件已經(jīng)存在了大量經(jīng)過高度訓(xùn)練的開發(fā)者,顯然這種紅利對云廠商來說不得不考慮,引入開源產(chǎn)品不僅能補充云產(chǎn)品,還能獲取大量開源開發(fā)者,一舉多得。
大家都知道云計算不是新概念,但可能不知道云計算的目標最初就包含開發(fā)者。
云計算概念的雛形是1961年由John McCarthy(人工智能之父、1971年圖靈獎獲得者)在MIT的百周年紀念上第一次提出的:
如果我設(shè)想的那種計算機能夠成真,那么計算或許某天會像電話一樣被組織成公共服務(wù)…… 公共計算服務(wù)(Utility Computing)將是一種全新的重要工業(yè)的基礎(chǔ)。
注:這里說的計算機便是分時計算機,即同時支持多人使用的計算機。
在公共計算服務(wù)思想的推動下,1963年,美國軍方IPTO與MIT、GE、貝爾實驗室一起發(fā)起了MAC(Multiple Access Computing)項目,這可以認為是云計算的系統(tǒng)雛形。
MAC項目最初目標由MIT提供,共包括三個部分:1)分時系統(tǒng);2)一個使用分時系統(tǒng)的群體;3)教育。
注:對于這段歷史感興趣的讀者可以參考《Project MAC》
所以你看,即使在云計算的石器時代,大家已經(jīng)意識到了用戶的重要性。
04 總結(jié)
其實Alan Perlis的這兩條法則是不是什么第一性原理并不關(guān)鍵,關(guān)鍵的是他能夠讓我們看清一個復(fù)雜系統(tǒng)發(fā)展的關(guān)鍵因素,能夠看清各種紛雜事件所處的位置。
就像指南針,雖然不能讓你直接達到目的地,但至少能夠防止你迷失方向。
不識廬山真面目,只緣身在此山中,畢竟我們處在云計算的高速發(fā)展之中,最不缺乏的就是細節(jié)。希望這兩條法則能讓你跳出山來看山,跳出云來看云。