偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Go語言負責(zé)人離職后,一門國產(chǎn)語言誕生了

原創(chuàng) 精選
開發(fā) 后端 新聞
凹語言?的發(fā)展重點可能不在于性能,而在于其選擇哪些人群作為目標受眾,以及通過何種方式獲得種子用戶

事件回顧 

?上周,谷歌Go語言項目負責(zé)人Steve Francia宣布辭去職務(wù),而他給出理由是:Go項目的工作停滯不前,讓他感到難受。有意思的是,部分國內(nèi)的Gopher(Go語言愛好者的自稱)對Go語言也產(chǎn)生了新想法。比如,國內(nèi)第一批Go語言愛好者之一的柴樹杉、全球Go貢獻者榜上長期排名TOP 50的史斌等Gopher,他們決定以Go語言為藍本,發(fā)起新的編程語言:凹語言?(凹讀音“Wa”)。

目前凹語言?的代碼已經(jīng)在Github開源,并且提供了簡單可執(zhí)行的示例。根據(jù)其倉庫的介紹,凹語言?的設(shè)計目標有以下幾個:1、披著Go和Rust語法外衣的C++語言2、凹語言?源碼文件后綴為.wa3、凹語言?編譯器兼容WaGo語法,凹語法與WaGo語法在AST層面一致(二者可生成相同的AST并無損的互相轉(zhuǎn)換)4、凹語言?支持中文/英文雙語關(guān)鍵字,即任一關(guān)鍵字均有中文版和英文版,二者在語法層面等價

Image

凹語言?示意,圖片來源@GitHub

據(jù)柴樹杉、史斌等人的說法,Go語言“克制”的風(fēng)格是他們對編程語言審美的最大公約數(shù)。因此,凹語言?項目啟動時大量借鑒了Go的設(shè)計思想和具體實現(xiàn)。

當(dāng)然,他們也表示,選擇Go語言作為初始的藍本,是在有限投入下不得不作出的折衷。他們希望隨著項目的發(fā)展,積累更多原創(chuàng)的設(shè)計,為自主創(chuàng)新的大潮貢獻一點力量。雖說柴樹杉、史斌等人是資深的Gopher,偏愛Go語言并不難理解,但我們還是忍不住好奇:究竟Go語言有多神奇,讓他們對Go語言這么著迷?

為什么選中Go語言 

許多使用過Go語言的開發(fā)者對Go的評價上看,Go語言在設(shè)計上有以下四個特點。

1、簡單易用?
不同于那些通過相互借鑒而不斷增加新特性的主流編程語言(如C++、Java等),Go的設(shè)計者們在語言設(shè)計之初就拒絕走語言特性融合的道路,而選擇了“做減法”。

他們把復(fù)雜留給了語言自身的設(shè)計和實現(xiàn),留給了Go核心開發(fā)組,而將簡單、易用和清晰留給了廣大使用Go語言的開發(fā)者。因此,Go語言呈現(xiàn)出:

  • 簡潔、常規(guī)的語法(不需要解析符號表),僅有25個關(guān)鍵字;
  • 沒有頭文件;
  • 顯式依賴(package);
  • 沒有循環(huán)依賴(package);
  • 常量只是數(shù)字;
  • 首字母大小寫決定可見性;
  • 任何類型都可以擁有方法(沒有類);
  • 沒有子類型繼承(沒有子類);
  • 沒有算術(shù)轉(zhuǎn)換;
  • 沒有構(gòu)造函數(shù)或析構(gòu)函數(shù);
  • 賦值不是表達式;
  • 在賦值和函數(shù)調(diào)用中定義的求值順序(無“序列點”概念);
  • 沒有指針算術(shù);
  • 內(nèi)存總是初始化為零值;
  • 沒有類型注解語法(如C++中的const、static等)
  • ……

2、偏好組合?

C++、Java等主流面向?qū)ο笳Z言,通過龐大的自上而下的類型體系、繼承、顯式接口實現(xiàn)等機制,將程序的各個部分耦合起來,但在Go語言中我們找不到經(jīng)典面向?qū)ο蟮恼Z法元素、類型體系和繼承機制。

那Go語言是如何將程序的各個部分耦合在一起呢?是組合。

在語言設(shè)計層面,Go使用了正交的語法元素,包括Go語言無類型體系,類型之間是獨立的,沒有子類型的概念;每個類型都可以有自己的方法集合,類型定義與方法實現(xiàn)是正交獨立的。
各類型之間通過類型嵌入,將已經(jīng)實現(xiàn)的功能嵌入新類型中,以快速滿足新類型的功能需求。在通過新類型實例調(diào)用方法時,方法的匹配取決于方法名字,而不是類型。
另外,通過在接口的定義中嵌入接口類型來實現(xiàn)接口行為的聚合,組成大接口,這種方式在標準庫中尤為常用,并且已經(jīng)成為Go語言的一種慣用法。

這是Go語言的一個創(chuàng)新設(shè)計:接口只是方法集合,且與實現(xiàn)者之間的關(guān)系是隱式的,如此可讓程序各個部分之間的耦合降至最低。
3、并發(fā)和輕量?

Go語言的三位設(shè)計者Rob Pike、Robert Griesemer和Ken Thompson曾認為C++標準委員會在思路上是短視的,因為硬件很可能在未來十年內(nèi)發(fā)生重大變化,將語言與當(dāng)時的硬件緊密耦合起來是十分不明智的,是沒法給開發(fā)人員在編寫大規(guī)模并發(fā)程序時帶去太多幫助的。
因而他們把將面向多核、原生內(nèi)置并發(fā)支持作為新語言的設(shè)計原則之一。

Go語言原生支持并發(fā)的設(shè)計哲學(xué)體現(xiàn)在下面兩點。
(1)Go語言采用輕量級協(xié)程并發(fā)模型,使得Go應(yīng)用在面向多核硬件時更具可擴展性。(2)Go語言為開發(fā)者提供的支持并發(fā)的語法元素和機制。
4、面向工程?

Go語言的設(shè)計者在Go語言最初設(shè)計階段,就將解決工程問題作為Go的設(shè)計原則之一,進而考慮Go語法、工具鏈與標準庫的設(shè)計,這也是Go與那些偏學(xué)院派、偏研究性編程語言在設(shè)計思路上的一個重大差異。
這讓Go語言的規(guī)范足夠簡單靈活,有其他語言基礎(chǔ)的程序員都能迅速上手。更重要的是Go自帶完善的工具鏈,大大提高了團隊協(xié)作的一致性。比如Gofmt自動排版Go代碼,很大程度上杜絕了不同人寫的代碼排版風(fēng)格不一致的問題。把編輯器配置成在編輯存檔的時候自動運行Gofmt,這樣在編寫代碼的時候可以隨意擺放位置,存檔的時候自動變成正確排版的代碼。此外還有Gofix,Govet等非常有用的工具。

總之,Go在語言層面的簡單讓Go收獲了不遜于C++/Java等的表現(xiàn)力的同時,還獲得了更好的可讀性、更高的開發(fā)效率等在軟件工程領(lǐng)域更為重要的元素。

凹語言?的未來 

雖然今天,Go憑借其優(yōu)越的性能,已經(jīng)成為主流編程語言之一(超過75%CNCF項目,包括KubernetesIstio,都是用Go編寫的,另外,Go也是主要的云應(yīng)用程序語言之一),Go語言在中國也相當(dāng)受歡迎,但我們還是不禁擔(dān)心脫胎于Go的凹語言?,會有美好的未來嗎?


預(yù)測未來從來都是困難的,不過,好在凹語言?的前面有一個先行者——Go+語言,我們不妨基于Go+的發(fā)展,來大致推測凹語言?的未來。

Go+是七牛云CEO許式偉發(fā)明的編程語言,于2020年7月正式發(fā)布,2021年10月推出1.0版本,目前最新發(fā)布版本是今年6月13日發(fā)布的1.1版本。也就是說,從正式發(fā)布到現(xiàn)在,經(jīng)過近兩年的時間,Go+還處于初始階段,距離大規(guī)模應(yīng)用還有一定距離,那么可以預(yù)見,凹語言?在未來相當(dāng)長的時間里,不會進入廣大開發(fā)者的視野中。

另外,據(jù)ECUG Con 2022大會上許式偉發(fā)表的看法,雖然大家都比較看重編程語言的性能,但單從性能來看的話,許式偉認為Python在腳本語言里面只能算二流,Python其實并不快。在許式偉看來,對新生的語言來說,最重要它選擇的目標人群。

Go+選擇的目標人群是全民,許式偉稱其為“連兒童也能掌握的語言”,因而Go+從工程與STEM教育的一體化開始奠定用戶基礎(chǔ)。

正是Go+的這幾個特性,讓一部分開發(fā)者看好Go+的未來。而對Go+的正向預(yù)期,會成為Go+進一步發(fā)展的助力。

對凹語言?來說,這個道理也是適用的:凹語言?的發(fā)展重點可能不在于性能,而在于其選擇哪些人群作為目標受眾,以及通過何種方式獲得種子用戶。

如果日后凹語言?的項目方會公布這些消息,那么凹語言?的未來還是可以期待的。

責(zé)任編輯:閆懷德 來源: 51CTO
相關(guān)推薦

2012-12-13 11:12:24

戴爾

2022-07-19 14:23:47

谷歌GO

2014-12-22 13:14:48

IE離職

2015-07-28 15:35:48

學(xué)習(xí)語言

2017-10-26 11:44:19

工具語言編寫

2022-03-28 10:44:26

FuchsiaOSGoogle操作系統(tǒng)

2009-04-01 10:43:26

雅虎產(chǎn)品技術(shù)離職

2010-05-13 14:18:48

云計算百度

2022-02-27 14:45:16

編程語言JavaC#

2019-11-18 11:00:58

程序員編程語言

2012-09-04 11:20:31

2022-11-04 11:11:15

語言入職項目

2022-08-27 15:03:16

FacebookMeta虛擬現(xiàn)實

2018-03-30 09:54:37

微軟業(yè)務(wù)重組Windows

2025-08-11 08:12:35

2022-02-21 11:15:59

編程語言后端開發(fā)

2021-07-09 06:48:30

語言Scala編程

2023-08-29 08:55:45

Go1Go核心

2012-03-28 09:40:40

JavaScript

2020-09-27 15:52:02

編程語言C 語言Python
點贊
收藏

51CTO技術(shù)棧公眾號