Go+?——編程語言跨界之旅

日期:2023-04-10 11:19:51 作者:fuli 瀏覽: 查看評論 加入收藏

一則在程序員圈廣為人知的笑話:如何讓一群程序員在最短的時間爭吵起來?只要告訴他們,“PHP 是最好的語言。”

這只是編程語言的無數爭論的一個縮影,在最新的TIOBE 語言排行榜中,Python 首次超越C,成為最受歡迎的編程語言。在過去 20 年中,這份榜單記錄了無數編程語言的流行和趨勢。

人們難免會產生疑惑,我們是否真的需要那么多種編程語言,我們有沒有可能用同一種編程語言來解決大多數問題?

“Go+ 的目標,是跨界融合,”七牛云創始人,Go+ 語言的創造者許式偉接受記者采訪時表示,“我們的第一個目標是工程和STEM 教育的一體化,下一個目標是工程和數據科學的一體化。”這兩個一體化,就是被許式偉稱為“三位一體”的編程語言 Go+ 的設計目標。

Go+ 語言是許式偉在一年前推出的,基于 Go 的一種靜態語言。近日,Go+ 推出了1.0版本,以工程、STEM 教育和數據科學為目標,正式成為生產級的編程語言。

編程語言的三個維度

在許式偉的眼中,一個編程語言的流行有三個維度,分別是語言的價值尺度,開源社區生態以及殺手級應用。在 Go 語言還在“嬰兒期”時,許式偉看出了其在這三個維度的優勢,便堅定的認為 Go 語言必定會流行。在多年推廣和使用 Go 之后,他對這三個維度的理解更加深刻。 Go+ ,就是其思考的結果。

首先是價值尺度,Go 語言核心的價值尺度就是語言的最小化特性,即“少就是指數級的多”。Go 語言的語言特性少,但是能用最精簡的特性去完成功能。Go+ 在基于 Go 的基礎上,進一步優化。受益于精簡的語法特性,Go+ 的入門門檻進一步降低。同時,語言本身要保持穩定,C 語言出現了五六十年,但是今天看到的樣子還是和當初一樣,這也是它可以長時間排名第一的原因。Go+ 在其最新發布的1.0版本中,已經將絕大部分語法和特性都已經固定下來。還有性能,在不增加使用者的額外負擔的情況下,語言需要天然的具備性能優勢,而不用開發者做額外的優化。

開源和生態,是語言流行的第二維度。編程語言是非常底層且靠近內核的東西。讓一個程序員切換語言,是一件非常困難的事情。需要一個非常有力的邏輯才可以做到。Go+ 選擇的邏輯是開放和兼容,繼承社區生態。在工程領域,Go+ 兼容 Go ,是 Go 的超集。這樣就將Go 開發的所有生態都繼承過來。而教育領域已經有一個非常厲害的語言Scratch,Go+ 在引擎上完全兼容。而數據科學的生態中,Python 是目前絕對的王者。Go+ 也計劃可以直接導入Python包,到2023年實現對Python的兼容。

最后促進一個語言流行的是殺手級的應用,Go 的殺手級應用是后端領域。目前幾乎所有云計算的基礎設施,都是 Go 寫的。而 Go+ 的殺手級應用,根據許式偉的設計,是從工程和STEM 教育一體化的融合開始,從工程師的培養體系構建開始。

12歲的Go+ 貢獻者

“我們從工程師的培養體系開始,我希望通過這個變革讓中國的工程師遠遠超過其他國家。”許式偉的這個愿望,來源于 Go+ 低代碼化、去復雜性、低齡化的核心邏輯。

實際上,在 Go+的貢獻者中,年齡最小的只有12歲。有一半的游戲案例的代碼都是這位小朋友寫的的。這里面其實蘊藏著一個問題,為什么Go+ 可以做到?

七牛云CEO 許式偉

學習 Go+ 語言,并不需要特別多的前置條件,有一些英語能力,有一些基礎的邏輯能力。“二年級8歲,差不多就可以逐步開始了”,許式偉認為,“當然,如果認為太激進,10歲開始也沒有問題”。Go+ 的門檻,實際上比 Python 還要低,因為Python語言本身還是有一些復雜性。Go+ 的目標,是在觸達初學者時,進一步降低入門的難度。許式偉認為,語言設計好不好的標準之一就是中小學生學不學得會。

Go+ 隱蔽了工程上的復雜性,初學者不用去理解什么是函數,什么是包等工程上的概念。這些概念對于小朋友太復雜。

在語法層面,Go+ 更加貼近自然語言的表達,許式偉解釋:“我們一直試圖消除大家對編程的恐懼,編程和寫文章一樣。因為編程語言的語法比自然語言少太多了。”

Go+ 在 STEM 教育領域對標 Scratch ,邁出的第一步是生態資源兼容。所有基于Scratch的教育資源都可以直接在 Go+ 的體系下使用。而 Go+的殺手锏,是產學研融合。Scratch 是做不到這一點的,因為沒人會真正把用 Scratch 用在工程領域。Go+ 的優勢,是從入門到實際工程,用的都是同一種語言,直接把生產力工具推到教育場景下,學到的知識能夠直接去創造真實的工程。Go+ 以此嘗試解決編程教育反饋環太長的問題。

Go+的工程開發能力是工程和教育一體化的基礎,否則 Go+ 也會和Scratch一樣,成為一種玩具語言。Go+在工程師培養體系上的期望,不僅僅是 STEM,還包括職業教育,為很多公司去培養急需的編程人才,這也是工程師培養體系的一部分。

編程語言的融合之路

Go+ 從設計之初,便選擇了融合。最新的口號也體現了這一點:“for engineering,STEM education,and data science”。許式偉介紹道:“語言的底層邏輯是一致的,大家需要的,其實是低代碼,低齡化的工程能力”。看起什么都想做的 Go+, 其實只想把這一件事做到最好。

未來十年,軟件自動化還有會巨大的發展,還會有更多的行業被互聯網席卷。對工程師來說,Go+ 帶來的變革是提供了一個簡潔的,連小朋友都能掌握的一種語言用于工作。對小朋友來說,從入門開始,學習的就是將來可以用來工作的語言。

未來五十年,軟件自動化將從代碼驅動轉向數據驅動,這代表著數據科學家人才需求的爆發性增長。數據科學家的綜合能力要求非常高,包括工程能力,數學功底和商業嗅覺。而現在的數據科學家的培養體系還不成熟,好的培養途徑還是要從工程師里來。

Go+ 工程與數據科學的融合,為解決數據科學家的培養提供了一種可能。數據科學領域有自己的專屬語言,如 R語言、Julia。但使用最廣泛的語言還是 Python。這背后的道理很簡單,Python工程師足夠多,而數據科學家太少。Python 的流行本身就代表了一個重大的趨勢,即工程和數據科學家的一體化。Go+的低門檻,讓數據科學家也能很快上手,并可以和工程師用同一種語言進行對話。

國產開源的商業化之路

隨著國內互聯網行業發展,涌現了很多優秀的應用和框架。但在編程語言的層面上,一直都缺乏國人的身影,這也跟IT行業首先在國外興起有關。但許式偉認為,“我們已經想好了Go+的成長路徑”。他對做好 Go+ 充滿信心。

作為一個 PaaS 企業,提供的核心產品便是生產力工具,而編程語言就是最基礎的生產工具。因此七牛云有動力,去做一款編程語言并將其開源。Go+ 在七牛云的使命就是去觸達并占領開發者群體的入口。在七牛云的規劃中,未來其PaaS能力都會通過 Go+ 提供。

Go+ 要做的事情很專一,就是確保它生產級的水準。語言是有虹吸效應的,Go 之所以在國內這么流行,一方面是做的確實非常好,另一個則是 Go 的應用領域是后端開發,在國內也有著巨大的需求。實際上Go+ 憑借其低代碼,低齡化的特性,足以超越 Go 的局限,應用會更加廣泛。許式偉表示:“在 Go+之前,所有的編程語言都認為它是給工程師用的,而Go+是認認真真告訴大家,編程語言是所有人都要用的。”

面對所有人都可能面對的編程問題,蘋果也推出過一個基于 Swift 語言的“人人能學編程”的項目,但Swift本身門檻較高。目前除了傳統大型工程開發需要非常高門檻的能力之外,新增的很多代碼需求都是低代碼需求,且需求十分龐大。因此,低門檻的語言工具,實際上是整個社會的訴求。

對于 Go+開源和商業化,許式偉也有自己的理解,“開源是 PaaS最好的商業模式”,他解釋道,“基礎語言一定是開源的,因為大多數人都需要的東西,大概率是免費的”。開源的目的是為了吸引更多的使用群體,共建語言生態。而商業化的目標,則是通過龐大的語言使用者基數,去轉化其中專業性的需求。

開源增加了巨頭們的“抄襲成本”。因此,選擇開源,實際上是構建競爭壁壘的最佳手段,也是對知識產權的最大保護。

未來世界,我們需要什么樣的編程語言

編程語言出現的時間比自然語言晚了很多,但它的出現改變了人類記錄工程技術的方式。隨著社會的發展,科技的進步,編程會成為人類文明的基礎設施。人類工程技術的規則,行為和范式,都會被編程語言記錄下來。未來人類對代碼的依賴度會前所未有的高。如果沒有掌握編程能力,就無法理解工程技術,獲取的知識可能不足所有知識的千分之一。

人類文明另一個重要部分:數學,它的語言是統一的,但編程語言目前還沒有做到。而Go+的定位——工程開發的 Go、數據科學領域的 Python、編程教學領域的 Scratch,工程和 STEM 教育一體化,工程和數據科學一體化,恰恰正是充滿希望的一個全新嘗試。

留言與評論(共有 0 條評論)
   
驗證碼: