讓開(kāi)發(fā)者走更寬廣的路。
Go+語(yǔ)言迎來(lái)了它自2020年7月誕生以來(lái)的最新1.0版本。
這一版本被七牛云創(chuàng)始人許式偉稱為:真正可以面向商業(yè)化、大型軟件工程開(kāi)發(fā)。
你可能會(huì)第一時(shí)間認(rèn)為這門新編程語(yǔ)言會(huì)跟Go相關(guān),后者目前已經(jīng)成為國(guó)內(nèi)云計(jì)算基礎(chǔ)設(shè)施的主流語(yǔ)言選擇,而七牛云也自始至終是Go語(yǔ)言的擁護(hù)者。但Go+與Go仍有很大的不同,用最簡(jiǎn)練的表述來(lái)說(shuō):它有Go之心Python之形,能夠做到低代碼、低上手門檻,最終希望面向編程教育、工程開(kāi)發(fā)與數(shù)據(jù)科學(xué),形成數(shù)據(jù)科學(xué)家與工程師互通的培養(yǎng)體系生態(tài)。
這一目標(biāo)足夠遠(yuǎn)大。
那么,Go+因何而來(lái)、為何而去,如何得到發(fā)展?許式偉作為Go+語(yǔ)言和社區(qū)的主要推動(dòng)者,有著長(zhǎng)期且清晰的判斷邏輯。他認(rèn)為幾乎任何一門編程語(yǔ)言的發(fā)明,都是有目的的。“只是我們需要有一個(gè)非常有儀式感的呈現(xiàn)。讓更多的國(guó)內(nèi)開(kāi)發(fā)者有這樣一種共識(shí)。”
于是,Go+1.0在國(guó)內(nèi)頂尖工程師專家、產(chǎn)業(yè)投資觀察者、創(chuàng)業(yè)者,以及眾多開(kāi)發(fā)者的共同矚目下,拉開(kāi)了帷幕。
這份沉甸甸的“儀式感”也更像是一種破冰,打包送給所有對(duì)中國(guó)編程發(fā)展有期待的人。
1、兩個(gè)趨勢(shì)的印證
我們今天在談的科學(xué)發(fā)展,已經(jīng)不是過(guò)去單純的計(jì)算科學(xué),靠計(jì)算機(jī)推演理論、模擬現(xiàn)象。而是開(kāi)始走到下一階段,面向數(shù)據(jù)科學(xué)發(fā)展,利用計(jì)算機(jī)從海量數(shù)據(jù)中發(fā)現(xiàn)規(guī)律,通過(guò)數(shù)據(jù)驅(qū)動(dòng)形成理論,詮釋世界應(yīng)該怎樣驅(qū)動(dòng)。
隨著全球信息的爆炸式增長(zhǎng)和數(shù)字化進(jìn)程的不斷推進(jìn),所有的行業(yè)都需要互聯(lián)網(wǎng)化(產(chǎn)業(yè)互聯(lián)網(wǎng)),這意味著對(duì)工程開(kāi)發(fā)的人才需求會(huì)爆發(fā)式增長(zhǎng),工程人才的培養(yǎng)需要更為高效,工程開(kāi)發(fā)的入門門檻需要更低。這是“工程與教學(xué)一體化”的時(shí)代需求。
DT時(shí)代的到來(lái),數(shù)據(jù)科學(xué)的需求有了爆發(fā)式的增長(zhǎng),數(shù)據(jù)科學(xué)家、數(shù)據(jù)分析師的人才需求有了爆發(fā)式的增長(zhǎng)。目前缺乏有效的數(shù)據(jù)科學(xué)家的培養(yǎng)體系,從工程師中招聘、培養(yǎng)數(shù)據(jù)科學(xué)家是非常理想的方式,這也是“工程與數(shù)據(jù)科學(xué)一體化”的自然結(jié)果。
數(shù)據(jù)科學(xué)家需要跟工程師對(duì)話,工程與數(shù)據(jù)科學(xué)存在一體化發(fā)展的趨勢(shì);與此同時(shí),學(xué)生需要學(xué)習(xí)一種可以在未來(lái)應(yīng)用的工程語(yǔ)言,工程與STEM教育同樣也存在一體化發(fā)展趨勢(shì)。這兩個(gè)趨勢(shì)的結(jié)合,就是編程語(yǔ)言“三位一體”的發(fā)展方向。
而這也是Go+的核心定位,融合了工程開(kāi)發(fā)的Go、數(shù)據(jù)科學(xué)領(lǐng)域的Python、編程教學(xué)領(lǐng)域的Scratch,預(yù)計(jì)希望產(chǎn)生1+1+1>3的效果。Go+首先是一個(gè)靜態(tài)語(yǔ)言,且語(yǔ)法完全兼容Go,但在形式上,Go+可能更像腳本語(yǔ)言,跟Python一樣有同樣低的學(xué)習(xí)門檻,這也就是上文提及的“Go之心Python之形”,使得Go+使用門檻是低的,但又具備靜態(tài)語(yǔ)言的高運(yùn)行效率。
2、Go+的“參考答案”
Go+雖然仍是一個(gè)初出茅廬,一時(shí)間很難與其他主流編程生態(tài)社區(qū)相抗衡的語(yǔ)言,但它會(huì)依據(jù)自身的優(yōu)勢(shì)特征制定了相應(yīng)的階段性發(fā)展策略。在此之前,許式偉用過(guò)去他對(duì)Go語(yǔ)言的精準(zhǔn)判斷,同樣給Go+接下來(lái)的發(fā)展一個(gè)“參考答案”。
Go如今已經(jīng)成為國(guó)內(nèi)云計(jì)算基礎(chǔ)設(shè)施的主流語(yǔ)言選擇,但在變得流行之前,Go經(jīng)歷了很多迭代。以今日之視野看過(guò)去,Go的成功有三點(diǎn)要素:價(jià)值尺度、開(kāi)源與社區(qū)生態(tài)、殺手級(jí)應(yīng)用。
展開(kāi)來(lái)講:
(1)首先是價(jià)值尺度的貫徹。
一是做到最精,將語(yǔ)言特性做到小而精;二是降低學(xué)習(xí)成本,一兩周便可掌握入門,同時(shí)也將持續(xù)保持語(yǔ)言特性的穩(wěn)定性,不會(huì)在未來(lái)提升學(xué)習(xí)成本;三是在不增加使用負(fù)擔(dān)的情況下,持續(xù)提升性能。
(2)其次,替代不是它的本色,與開(kāi)源社區(qū)兼容并蓄才是它的本色。
Go+希望做到三個(gè)兼容:一是兼容Go的語(yǔ)法特性,在其基礎(chǔ)上添加的特性最小化(目前Go+已經(jīng)有對(duì)Go有90%的兼容能力);二是兼容Scratch的引擎能力和設(shè)計(jì),在此基礎(chǔ)上實(shí)現(xiàn)自動(dòng)代碼轉(zhuǎn)換;三是兼容Python,計(jì)劃可以直接導(dǎo)入Python包,到2023年實(shí)現(xiàn)對(duì)Python的兼容。
(3)再然后是具備一個(gè)殺手級(jí)應(yīng)用。
雖然Go+定位于“三位一體”,但這并不意味著它會(huì)一上來(lái)就直接切數(shù)據(jù)科學(xué)場(chǎng)景。在解決數(shù)據(jù)科學(xué)任務(wù)方面,Python語(yǔ)言社區(qū)在庫(kù)的數(shù)量、語(yǔ)言的簡(jiǎn)單性方面確實(shí)有一定優(yōu)勢(shì),且一定程度上形成了強(qiáng)大的生態(tài)。一開(kāi)始就“雞蛋碰石頭”,并不是個(gè)好方法。
為此,Go+會(huì)從工程與STEM教育一體化開(kāi)始。相較之下,Scratch只是個(gè)玩具語(yǔ)言,并不適用于后期對(duì)工程科學(xué)的深入。Go+這是沿用了Code Monkey的教學(xué)體驗(yàn),直接使用代碼編程,學(xué)習(xí)門檻低,并進(jìn)一步強(qiáng)化產(chǎn)學(xué)研融合發(fā)展,其優(yōu)勢(shì)得以體現(xiàn)。這種策略在過(guò)去的一年中已經(jīng)得到有效性的印證。
目前Go+團(tuán)隊(duì)提供了兼容Scratch的2D游戲引擎,可便于學(xué)生學(xué)習(xí)Go+。據(jù)了解,此次Go+1.0版本中,一半的小游戲都是一位12歲的學(xué)生用Go+寫(xiě)出來(lái)的。
3、應(yīng)用深化下的探索
Go+1.0仍處于初級(jí)的探索階段。STEM教育僅僅只是Go+的其中一個(gè)使用場(chǎng)景。
而面向工程開(kāi)發(fā),許式偉還指出,如游戲開(kāi)發(fā)、職業(yè)培訓(xùn)(包括少兒編程),以及輕量型的IoT場(chǎng)景等,同樣也是Go+的潛力應(yīng)用場(chǎng)景。
其背后的一個(gè)重要原因在于,Go+所具備的低代碼、去復(fù)雜性、低齡化的特性,即語(yǔ)法簡(jiǎn)單,能夠貼近數(shù)學(xué)的表達(dá)方式去工程化,同時(shí)完成功能所需的代碼量更少,每行代碼的能力更強(qiáng)了。這種特性恰恰能夠滿足越來(lái)越多市場(chǎng)中對(duì)低門檻工程能力的需求。
而回到當(dāng)下,Go+仍需要快速獲取更多開(kāi)發(fā)者的關(guān)注。
例如,社區(qū)需要加強(qiáng)對(duì)IDE的支持,提升開(kāi)發(fā)者的使用體驗(yàn),不弱于Go的開(kāi)發(fā)體驗(yàn);推出生產(chǎn)級(jí)游戲引擎;完善數(shù)據(jù)科學(xué)相關(guān)功能,支持Jupyter;借助七牛云PaaS的能力,開(kāi)發(fā)者可以通過(guò)PaaS進(jìn)行應(yīng)用構(gòu)建,實(shí)現(xiàn)對(duì)Go+的使用等等。
4、因?yàn)橄嘈潘钥匆?jiàn)
200多年前,當(dāng)一臺(tái)織布機(jī)學(xué)會(huì)讀穿孔卡片時(shí),很難有人想象這竟為后來(lái)的計(jì)算機(jī)編程語(yǔ)言創(chuàng)造了先河。
這件事情說(shuō)來(lái)也奇怪,雖然計(jì)算機(jī)語(yǔ)言發(fā)展到如今有上千種,主流和新貴的兩極化趨勢(shì)亦十分明顯,但語(yǔ)言仍在快速演進(jìn)。
在很多人眼里覺(jué)得,技術(shù)大牛們一言不合就寫(xiě)了個(gè)新編程語(yǔ)言,絲毫不顧忌后來(lái)人學(xué)習(xí)和使用門檻會(huì)有多高。而在一代又一代的持續(xù)改進(jìn)過(guò)程中,這些編程語(yǔ)言逐漸成為在Web、后端、數(shù)據(jù)庫(kù)中間件、機(jī)器學(xué)習(xí)等場(chǎng)景下的核心應(yīng)用語(yǔ)言。
許式偉也表達(dá)了另一個(gè)觀點(diǎn)。如今國(guó)內(nèi)大量的程序員是做前端開(kāi)發(fā),只有少部分在做后端。隨著企業(yè)上云動(dòng)作基本完成后,下一階段是對(duì)云上、云原生下各行各業(yè)進(jìn)行全鏈路的數(shù)字化、智能化,那么數(shù)據(jù)科學(xué)的市場(chǎng)空間逐漸擴(kuò)大起來(lái)后,新場(chǎng)景下開(kāi)發(fā)者也將面臨新的轉(zhuǎn)型挑戰(zhàn)。此時(shí),編程語(yǔ)言作為一項(xiàng)生產(chǎn)力工具,能不能及時(shí)甚至較早就能響應(yīng)市場(chǎng)的需求?
值得一提的是,在不久前的GitHub Trending上,Go+首次沖到了榜首。在現(xiàn)在看來(lái)可能仍微不足道,但在中國(guó)開(kāi)發(fā)者“虹吸效應(yīng)”溢出的時(shí)代下,還有什么不可能發(fā)生的事呢?