顛覆編程方式的感知編碼:Wolfram雄心勃勃的全新計(jì)算模式
2002 年,出生在英國的科學(xué)家、程序員及創(chuàng)業(yè)家 Stephen Wolfram 的《一種新科學(xué)》剛剛發(fā)布,其顛覆傳統(tǒng)的追求知識(shí)方式引發(fā)的驚愕、爭議與指責(zé)就已經(jīng)鋪天蓋地。上個(gè)月初,他在博客中披露了自己的一個(gè)即將完成的新項(xiàng)目,稱該項(xiàng)目將會(huì)對技術(shù)世界乃至于技術(shù)以外的世界產(chǎn)生深遠(yuǎn)影響。
VB 的 John Koetsier 在看了Wolfram的東西后說,那東西確實(shí)令人吃驚。無論你對他那本書的看法如何,有一件事情必須承認(rèn),他是個(gè)天才。
Wolfram 的父母是二戰(zhàn)前逃離德國到英國去的猶太人。他從小就顯露出了過人之處。12 歲時(shí)他已經(jīng)撰寫了一部物理詞典,14 歲時(shí)已經(jīng)完成了 3 本粒子物理方面的書,15 歲發(fā)表了第 1 篇科學(xué)論文。
1988 年,他做出了科學(xué)計(jì)算平臺(tái) Mathematica;2009 年,他發(fā)布了計(jì)算知識(shí)搜索引擎 Wolfram Alpha。而他的***項(xiàng)目,則是這兩者的***聯(lián)姻:
Mathematica 是***的精確計(jì)算引擎,WolframAlpha 則是有關(guān)世界的一般信息?,F(xiàn)在我們把二者結(jié)合到了一起。
這種結(jié)合只是大圖景的一部分。新項(xiàng)目還包括了自然語言編程—這種自然語言并不是僅靠自然語言來完成編程,而是說開發(fā)者可以利用一部分的自然語言。此 外應(yīng)用中的一切會(huì)有一個(gè)新的定義,從代碼到圖像,從輸入到結(jié)果,一切均可以符號表達(dá)式的方式使用和拓展。自動(dòng)化也到了全新的水平,而且編程語言的開發(fā)跟以 往完全不一樣,拋棄了以往從小開始、以敏捷構(gòu)造功能,建設(shè)庫和模塊為核心的做法,轉(zhuǎn)為一種具備大規(guī)模整體性的東西—將數(shù)據(jù)和代碼合二為一。還有就是對計(jì)算 的全新專注,其對世界的了解甚至比程序員還要多。
野心比Google的知識(shí)圖譜大多了
跟我們在 Wolfram Alpha 做的事情相比,知識(shí)圖譜的心氣就小得多了,那僅僅是維基百科和其他一些數(shù)據(jù)
Google 希望理解對象和事物及其關(guān)系,以便給出回答而不僅僅是結(jié)果。但 Wolfram 希望讓世界變成可計(jì)算的,這樣的話計(jì)算機(jī)就可以回答諸如“現(xiàn)在國際空間站在哪里”之類的問題。這需要一定水平的機(jī)器智能,它得知道國際空間站是什么,還得 知道它在太空中,知道它正在繞著地球軌道飛行,還得知道它的速度以及目前的軌道位置。
這不是靜態(tài)的數(shù)據(jù),而是計(jì)算與知識(shí)的結(jié)合。現(xiàn)在 WolframAlpha 做到了這一點(diǎn),但這還僅僅是個(gè)開始。
Wolfram語言組件
Wolfram 認(rèn)為,搜索引擎不擅長這個(gè)東西,因?yàn)樘鑱y了。搜索引擎中的問題會(huì)有很多答案,其適用性與正確性也各異。這沒辦法計(jì)算,不夠簡潔,無法進(jìn)行編程或注入系統(tǒng)。
Wolfram 說,讓世界成為可計(jì)算的,這是一個(gè)比產(chǎn)生維基百科式信息要大得多的目標(biāo)……一個(gè)迥然不同的東西。我們試圖要做的遠(yuǎn)比這要更加雄心勃勃。
這件事情是如此的富有野心,意義是如此的深遠(yuǎn),甚至到了難以描述的地步。Wolfram 說在他這輩子做過的各種事情里面,這是最復(fù)雜的一個(gè),復(fù)雜到可怕,難以解釋。請記住,這是一個(gè)曾經(jīng)寫過粒子物理論文的人。這件事情需要淵深知識(shí),牽涉面 廣,意義深遠(yuǎn)—Wolfram 稱之為伸到編程、科學(xué)、知識(shí)及商業(yè)等不同領(lǐng)域的“觸須”。
讓計(jì)算機(jī)做這件事情
“總的說來,我們試圖做的是,只要你能描述得出來想要什么,計(jì)算機(jī)就替你做。人來定義目標(biāo),然后計(jì)算機(jī)盡量去理解意思,然后盡***努力去執(zhí)行。”
Wolfram 說。
他還進(jìn)行了現(xiàn)場演示。
大約 30 秒鐘,Wolfram 就創(chuàng)建了一個(gè)小小的 web 應(yīng)用,應(yīng)用可以在網(wǎng)頁上畫圓,里面還包括有一個(gè)用戶界面,通過它訪客可以讓圓圈變大變小或變顏色。編程如此簡單要感謝 Wolfram 語言,由于它可以訪問到浩瀚的知識(shí)庫—所以知道什么是圓且可以畫圓,它還可以自動(dòng)提供 web—原生的用戶控制來操縱這個(gè)圓。這個(gè)例子只是個(gè)小意思,但過了 30 秒,Wolfram 又寫出了一個(gè)代碼片段,代碼實(shí)現(xiàn)了對南美國家的定義然后展示了相應(yīng)國家的國旗。然后他調(diào)出一幅歐洲地圖,通過計(jì)算的方式以不同的顏色高亮顯示德國和法國,整個(gè)過程只需幾秒鐘。
Wolfram語言解決“南美洲有哪些國?它們的國旗是什么?”這個(gè)問題
之所以能做出這樣的東西,是因?yàn)樾碌?Wolfram 計(jì)算框架包括了 Mathematica20 年開發(fā)過程中形成的復(fù)雜而精確的算法,再加上 WolframAlpha 內(nèi)部的知識(shí)引擎。結(jié)果是驚人的。
#p#
通過信息進(jìn)行自動(dòng)化
Wolfram 說這種自動(dòng)化水平要比以往任何時(shí)候都要高,其強(qiáng)大令人難以置信,只要是 WolframAlpha 知道的,app 都知道。
這是因?yàn)?Wolfram 的自然語言處理技術(shù)。它知道南美洲是一個(gè)洲,因?yàn)橹R(shí)引擎 WolframAlpha 知道這一點(diǎn)。同樣地,它知道哪些國家屬于南美洲,其國旗是什么,也了解相應(yīng)國家的人口、地圖形狀及概況,也許還包括成千上萬個(gè)其他的數(shù)據(jù)元素。而獲取這一 切只需輸入“南美洲”即可。
1、2行代碼即可完成一幅高亮顯示德國和法國歐洲地圖的調(diào)用。粗體的行是Wolfram自己輸入的
換句話說,“南美洲”并不是一個(gè)被賦值的變量或待實(shí)例化的對象或類,而是一個(gè)機(jī)器知道和理解的短語,其含義、意思和關(guān)聯(lián)均可毫不費(fèi)力地植入程序中,且不需要外部的數(shù)據(jù)來源。而且該知識(shí)來源還會(huì)不斷更新和發(fā)展來匹配不斷更新和變化的世界。
這將是開發(fā)者開發(fā)應(yīng)用的一大變化,而且這種編程方式不存在現(xiàn)實(shí)限制。
Wolfram 進(jìn)一步以南美洲作為類比,說正如我們了解厄瓜多爾的事情(如人口)一樣,我們也可以了解 Twitter API 的東西。
由于具備快速創(chuàng)建應(yīng)用的能力,Wolfram 將成為游戲顛覆者。
自然語言輸入—小孩也能寫代碼?
它改變了應(yīng)用開發(fā)經(jīng)濟(jì),因?yàn)橐酝枰獢?shù)小時(shí)或數(shù)周完成的事情現(xiàn)在只需要幾分鐘。許多人都一些有趣的想法、算法或應(yīng)用創(chuàng)意,但苦于缺人缺錢或缺時(shí)間而無法完成。Wolfram 目前正在跟這些人會(huì)面,這一切將會(huì)改變。
Wolfram 說自己的新項(xiàng)目將會(huì)催生一大批新的初創(chuàng)企業(yè)—在數(shù)小時(shí)內(nèi)開發(fā)出一種算法或自動(dòng)化系統(tǒng)將變成現(xiàn)實(shí)。
它還改變了程序員的范疇,因?yàn)榇a將不再是動(dòng)輒成千上萬行,而是 20 到 200 行。這意味著娃娃也能寫代碼,菜鳥也能做出精彩的應(yīng)用。
Wolfram 說,有了自然語言輸入,誰將成為富有經(jīng)驗(yàn)的程序員將會(huì)被改變。書寫代碼將被大大縮短—這是一門可以讓你馬上就能把事情干完的語言,不是那種“hello world”也要寫上 10 行。而它將為書寫復(fù)雜程序的人鋪設(shè)好了坦途。
但這也會(huì)讓你有點(diǎn)發(fā)懵。
感謝 Mathematica 的歷史悠久以及 WolframAlpha 的大腦,Wolfram 語言知道許多東西,也能通過內(nèi)置函數(shù)對其進(jìn)行操作—包括數(shù)據(jù)操縱和分析、可視化及制作圖表,圖像、地理、幾何、聲音、科學(xué)數(shù)據(jù)以及幾乎自動(dòng)化的用戶界面開 發(fā),進(jìn)入數(shù)據(jù)、社交數(shù)據(jù),甚至在云端的部署。這是所有一切東西的大雜燴,甚至還要多得多,這正是它最晦澀難懂的地方—因?yàn)樗鷤鹘y(tǒng)的數(shù)據(jù)與代碼及界面分離 的做法實(shí)在是太不一樣了。
當(dāng)然,在具備自然語言輸入的同時(shí),Wolfram 語言也有語法和結(jié)構(gòu)以及操作符等,那些創(chuàng)建無缺陷的、可按你思路運(yùn)行的程序所必須的構(gòu)造物。這也意味著這門語言還是需要學(xué)習(xí)的—并非說誰都可以馬上就能使喚它來開發(fā)應(yīng)用。
Wolfram的用武之地:Raspberry Pi,智能手機(jī)、設(shè)備
這些應(yīng)用有很多用武之地。
Wolfram 最近發(fā)布了一個(gè) Raspberry Pi 版的 Mathematica。這不僅令人好奇:承載著浩大知識(shí)的 Wolfram 語言是如何被容納進(jìn) Pi 小小的身軀內(nèi)的?
奧秘在于它的引擎非常便攜,但顯然知識(shí)卻是非常龐大的,所以 Wolfram 語言所需要的知識(shí)是集中存放到云端的,在處理時(shí)引擎會(huì)向云端索取知識(shí)。
Wolfram 語言還可支持桌面應(yīng)用、移動(dòng)應(yīng)用、web 應(yīng)用的開發(fā),且既可支持公有云也可支持私有云。對于移動(dòng)應(yīng)用將會(huì)嵌入一個(gè) Wolfram 引擎,然后通過 API 的方式去獲取所需的數(shù)據(jù)。而所有代碼均可復(fù)制粘貼于云端、設(shè)備及桌面之間。
不過不想學(xué) Wolfram 語言也沒問題,Wolfram 說像 Java 那樣的原生語言可以通過函數(shù)調(diào)用來利用 Wolfram 引擎。從表面上來看開發(fā)者仍只是在調(diào)用 Java,但實(shí)際上后臺(tái)會(huì)訪問 Wolfram 的云。
感知編碼,智能對象
由于 Wolfram 語言具備很高的自動(dòng)化能力和智能水平,且對待數(shù)據(jù)和代碼的方式十分類似,所以這種語言是不是可以被認(rèn)為是具有感知能力的代碼呢?
從某種程度來說是這樣的。Wolfram 解釋說,他們試圖做的,是讓程序員設(shè)定目標(biāo),然后由計(jì)算機(jī)去琢磨如何實(shí)現(xiàn)目標(biāo)。
但這并不是要讓機(jī)器去創(chuàng)新手段,不過 Wolfram 也對讓計(jì)算機(jī)去創(chuàng)新、創(chuàng)作感興趣。比方說Wolfram Tones就是這樣。這款音樂制作應(yīng)用可以根據(jù)用戶的輸入自動(dòng)創(chuàng)作音樂(在他的《一種新科學(xué)》中提到過)。這種東西他說很多都在“秘密地”搞,往往是替玩對沖基金的金融服務(wù)公司弄的。而 Wolfram 引擎已經(jīng)為如果做事和展示結(jié)果添加了一定程度的智能。
當(dāng)然這種智能跟人工智能仍相去甚遠(yuǎn),但這一天也許會(huì)來的。可能是以大規(guī)模分布的形式。
Wolfram 說,視定義的不同,目前全球大約有 100-150 億臺(tái)計(jì)算機(jī),而且很多設(shè)備內(nèi)部也有計(jì)算機(jī)。在不久的將來,幾乎所有的東西都將由計(jì)算機(jī)組成—甚至很小的東西。到那時(shí),計(jì)算的作用甚至比現(xiàn)在還要大,而且那時(shí)候各種級別的東西都將是可適配的、可修改的。
Wolfram 所指的也許是技術(shù)奇點(diǎn)。當(dāng)我們到達(dá)技術(shù)奇點(diǎn)時(shí),智能將成為萬物唯一的定義因子,而且那時(shí)候的技術(shù)發(fā)展節(jié)奏之快已非現(xiàn)在的人們所能理解了,世界變化越來越快,快到人類已經(jīng)無法想象。
如果這個(gè)奇點(diǎn)真的到來,可能就是智能系統(tǒng)發(fā)展的結(jié)果。也許 Wolfram 語言就是此類系統(tǒng)的先驅(qū)。
也因此 Wolfram 語言才會(huì)如此的難易理解和解釋,正如 Wolfram 在博客中所述:
在我看來,現(xiàn)在還是它將會(huì)帶來的結(jié)果的早期階段。但我已經(jīng)可以確定該項(xiàng)目是我們迄今為止最重要的一個(gè)。這需要艱苦卓絕的工作,但它所展現(xiàn)的景象會(huì)令人無比興奮。我已經(jīng)迫不及待,恨不得“即將推出”變成所有地方的人都能使用的實(shí)際系統(tǒng)……