成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

那些 Go 語言實現的語言現在發展怎么樣了?

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

[[384324]]

大家好,我是站長 polarisxu。

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

01 Go+

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

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

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

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

例如下面的 Go 代碼:

  1. package main 
  2.  
  3. func main() { 
  4.     a := []float64{1, 2, 3.4} 
  5.     println(a) 

對應的 Go+ 代碼如下:

  1. a := [1, 2, 3.4] 
  2. println(a) 

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

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

02 Tengo

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

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

代碼示例:

  1. /* The Tengo Language */ 
  2. fmt := import("fmt"
  3.  
  4. each := func(seq, fn) { 
  5.     for x in seq { fn(x) } 
  6.  
  7. sum := func(init, seq) { 
  8.     each(seq, func(x) { init += x }) 
  9.     return init 
  10.  
  11. fmt.println(sum(0, [1, 2, 3]))   // "6" 
  12. fmt.println(sum("", [1, 2, 3]))  // "123" 

03 CX

CX 是一種用于區塊鏈的新編程語言,使用 Go 語言實現,語法類似 Go 語言。

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

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

  1. package main 
  2.  
  3. func main() { 
  4.   str.print("Hello, World!"

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

04 Goby

受 Ruby 啟發的面向對象的解釋型語言,核心代碼 100% 使用 Go 實現。它具有標準庫,可提供多種功能,例如插件系統。

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

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

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

一個 Server 端 Hello World 的例子:

  1. require "net/simple_server" 
  2.  
  3. server = Net::SimpleServer.new("3000"
  4.  
  5. i = 0 
  6.  
  7. server.get("/") do |req, res| 
  8.   puts(i) 
  9.   i = i+1 
  10.   res.body = req.method + " Hello World" 
  11.   res.status = 200 
  12. end 
  13.  
  14. server.get("/not_found") do |req, res| 
  15.   res.body = "Not Found" 
  16.   res.status = 404 
  17. end 
  18.  
  19. server.start 

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

05 總結

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

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

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

參考資料[1]wa 語言: https://github.com/wa-lang/wa

本文轉載自微信公眾號「polarisxu」,可以通過以下二維碼關注。轉載本文請聯系polarisxu公眾號。

 

責任編輯:武曉燕 來源: 站長polaris
相關推薦

2021-03-01 21:59:25

編程語言GoCX

2019-07-19 15:42:57

Hadoop大數據YuniKorn

2022-05-19 14:14:26

go語言限流算法

2022-11-01 18:29:25

Go語言排序算法

2020-08-12 08:56:30

代碼凱撒密碼函數

2023-05-08 07:55:05

快速排序Go 語言

2024-08-29 13:23:04

WindowsGo語言

2024-06-06 09:47:56

2021-01-09 23:16:06

996阿里職場

2012-03-13 10:40:58

Google Go

2021-07-26 09:47:38

Go語言C++

2012-08-06 08:50:05

Go語言

2020-03-30 09:22:03

AI語音技術機器視覺

2021-07-12 15:50:55

Go 語言netstat命令

2019-06-06 08:24:38

2014-02-18 11:24:07

云計算PaaS

2014-12-26 09:52:08

Go

2024-08-26 14:32:43

2020-02-11 09:41:02

Go語言程序員文章

2020-02-05 16:55:11

Go語言程序員文章
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费毛片在线 | 久久精品亚洲精品国产欧美kt∨ | 青青草一区二区三区 | 69xxx免费| 欧美中文一区 | 久久y| 久久精品屋 | 91伦理片| 欧美国产精品 | 久久久久一区二区三区四区 | 亚洲成人av在线播放 | 国产在线观看一区 | 欧美一二三四成人免费视频 | 久草成人 | 中文字幕日韩欧美 | 97日韩精品 | 精品一区二区三区入口 | 成人1区 | 自拍视频国产 | 九九精品久久久 | 精品亚洲永久免费精品 | 精品久久精品 | 亚洲一区二区三区四区五区中文 | 国产精品1区2区3区 一区中文字幕 | 亚洲精选一区二区 | 久久99深爱久久99精品 | 亚洲精品大全 | 一区二区三区回区在观看免费视频 | 欧美二区在线 | 中文字幕一区二区三区乱码图片 | 精品视频免费 | 国产区免费视频 | 国产成人精品免费视频大全最热 | 国产精品视频在线播放 | 国产精品完整版 | 久久精品亚洲 | 精品日韩一区二区 | 亚洲精品成人网 | 亚洲视频区 | 国产在线播放一区二区三区 | 黄色片网站国产 |