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