<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          那些 Go 語言實現(xiàn)的語言現(xiàn)在發(fā)展怎么樣了?

          共 2865字,需瀏覽 6分鐘

           ·

          2021-03-05 18:31

          閱讀本文大概需要 5 分鐘。

          大家好,我是站長 polarisxu。

          Go 是一門通用編程語言,Go1.5 實現(xiàn)了自舉,也就是說,Go 語言是用它自身實現(xiàn)的。經(jīng)過十來年的發(fā)展,開源界使用 Go 語言實現(xiàn)的編程語言不少,那它們發(fā)展的怎么樣?本文進行一下梳理。

          01 Go+

          這是國內(nèi)七牛老大許式偉主導的,對 Go 語言的擴展,專為數(shù)據(jù)科學領域打造。目標是取代 Python 在數(shù)據(jù)科學領域的位置。

          項目地址:https://github.com/goplus/gop,Star 數(shù):4.2k+。

          該語言的前身是 qlang,2020 年 6 月份左右將其重命名為 Go+,并定位為數(shù)據(jù)科學領域。截止目前最新版本是 2021 年 1 月 8 日發(fā)布的 0.7.17,還不是穩(wěn)定版本。

          這是一門靜態(tài)編程語言,完全兼容 Go 語言,類似腳本語言的風格,比 Go 更具可讀性的數(shù)據(jù)科學代碼。

          例如下面的 Go 代碼:

          package main

          func main() {
              a := []float64{123.4}
              println(a)
          }

          對應的 Go+ 代碼如下:

          a := [123.4]
          println(a)

          今天剛看到許大在尋找 Go+ 語言開發(fā)團隊的負責人,有興趣的可以聯(lián)系許大(找我轉(zhuǎn)達也沒問題)。

          目前看,距離目標還有很長的路要走,最少先推出穩(wěn)定版本,然后有一個線上實際的應用。

          02 Tengo

          Tengo 是一種小型、動態(tài)、快速、安全的腳本語言,它使用 Go 語言實現(xiàn),并且可以嵌入 Go 程序中。它的語法和 Go 語言類似。

          項目地址:https://github.com/d5/tengo,Star 數(shù):2.2k+,目前最新版本是 2.6.2(2020 年 9 月 18 日發(fā)布)。

          代碼示例:

          /* The Tengo Language */
          fmt := import("fmt")

          each := func(seq, fn) {
              for x in seq { fn(x) }
          }

          sum := func(init, seq) {
              each(seq, func(x) { init += x })
              return init
          }

          fmt.println(sum(0, [123]))   // "6"
          fmt.println(sum("", [123]))  // "123"

          03 CX

          CX 是一種用于區(qū)塊鏈的新編程語言,使用 Go 語言實現(xiàn),語法類似 Go 語言。

          項目地址:https://github.com/skycoin/cx,Star 數(shù) 27,很凄慘。目前最新 tag 是 0.7.5,我查了下,該項目幾年前就存在了。目前看屬于半死不活的狀態(tài),是 skycoin 主導開發(fā)的。對區(qū)塊鏈不太熟悉,不知道這個語言能為區(qū)塊鏈開發(fā)帶來什么革命性的功能。

          我安裝試用了下,寫了一個 Hello World 程序:

          package main

          func main() {
            str.print("Hello, World!")
          }

          哈哈哈,我又掌握了一門語言的 Hello World!

          04 Goby

          受 Ruby 啟發(fā)的面向?qū)ο蟮慕忉屝驼Z言,核心代碼 100% 使用 Go 實現(xiàn)。它具有標準庫,可提供多種功能,例如插件系統(tǒng)。

          項目地址:https://github.com/goby-lang/goby,Star 數(shù) 3.2k+,目前最新版本 0.1.13(2020 年 4 月 26 日發(fā)布)。

          Goby 的預期是用于后端開發(fā)。它具備(但不限于)以下功能:

          • 基于 Go goroutine 的 thread/channel 機制;
          • 內(nèi)置 database 庫;
          • json 支持;
          • 插件系統(tǒng),支持動態(tài)加載 Go 庫(目前不支持 Windows 系統(tǒng));
          • 可以直接訪問 Go 對象;

          一個 Server 端 Hello World 的例子:

          require "net/simple_server"

          server = Net::SimpleServer.new("3000")

          i = 0

          server.get("/"do |req, res|
            puts(i)
            i = i+1
            res.body = req.method + " Hello World"
            res.status = 200
          end

          server.get("/not_found"do |req, res|
            res.body = "Not Found"
            res.status = 404
          end

          server.start

          不知道 Ruby 愛好者喜歡不?!

          05 總結(jié)

          除了上面介紹的,還有其他一些 Go 語言實現(xiàn)的語言,比如 chai2010 的 wa 語言[1],以及其他一些腳本語言,如 Lua 虛擬機 Go 實現(xiàn)、JS 虛擬機實現(xiàn)、Python 解釋器等。

          有興趣的可以通過 https://github.com/d5/tengo 項目的性能測試部分了解。

          以上介紹的語言,你有看好的嗎?會嘗試哪個語言嗎?如果你對編程語言實現(xiàn)感興趣,可以參與其中。

          參考資料

          [1]

          wa 語言: https://github.com/wa-lang/wa




          往期推薦


          歡迎關注我

          瀏覽 40
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲综合短片中文字幕 | 北条麻妃久久精品 | 成人综合娱乐在线视频 | 欧美成人在线观看视频 | 最新国产AV|