当前位置: 首页 > 科技观察

Go中实现的语言是怎么回事?_0

时间:2023-03-12 21:59:49 科技观察

大家好,我是站长polarisxu。Go是一种通用编程语言,Go1.5实现了bootstrapping,即Go语言自己实现。经过十多年的发展,开源世界中已经有相当多的编程语言使用Go语言实现。他们发展如何?本文对它们进行了总结。01Go+这是七牛中国领军人物徐世伟带领的Go语言的延伸,专为数据科学领域打造。目标是取代Python在数据科学中的地位。项目地址:https://github.com/goplus/gop,Star数:4.2k+。该语言的前身是qlang,2020年6月左右更名为Go+,定位为数据科学领域。截至目前,最新版本为2021年1月8日发布的0.7.17,还不是稳定版。这是一门静态编程语言,完全兼容Go语言,类似脚本语言风格,数据科学代码比Go更具可读性。例如下面的Go代码:packagemainfuncmain(){a:=[]float64{1,2,3.4}println(a)}对应Go+代码如下:a:=[1,2,3.4]println(a)就在今天看到徐达在找Go+语言开发组负责人,有兴趣的可以联系徐达(让我转达也可以)。目前,距离目标还有很长的路要走。至少会先推出一个稳定版,然后才会有上线的实际应用。02TengoTengo是一种小型、动态、快速、安全的脚本语言,用Go语言实现,可以嵌入到Go程序中。它的语法类似于Go语言。项目地址:https://github.com/d5/tengo,Star数:2.2k+,最新版本为2.6.2(2020年9月18日发布)。代码示例:/*TheTengoLanguage*/fmt:=import("fmt")each:=func(seq,fn){forxinseq{fn(x)}}sum:=func(init,seq){each(seq,func(x){init+=x})returninit}fmt.println(sum(0,[1,2,3]))//"6"fmt.println(sum("",[1,2,3]))//"123"03CXCX是一种新的区块链编程语言,使用Go语言实现,语法类似于Go语言。项目地址:https://github.com/skycoin/cx,星号27,很惨。目前最新的tag是0.7.5,我查了一下,这个项目几年前就有了。目前处于半死状态,由skycoin开发。我对区块链不是很熟悉,不知道这门语言能给区块链开发带来什么革命性的功能。我安装试了一下,写了一个HelloWorld程序:packagemainfuncmain(){str.print("Hello,World!")}哈哈哈,我又掌握了一门语言HelloWorld!04Goby是受Ruby启发的一种对象解释型语言,核心代码100%用Go实现。它有一个标准库,提供各种功能,如插件系统。项目地址:https://github.com/goby-lang/goby,Star数3.2k+,最新版本0.1.13(2020年4月26日发布)。Goby旨在用于后端开发。它具有(但不限于)以下功能:基于Gogoroutine的线程/通道机制;内置数据库库;json支持;插件系统,支持动态加载Go库(目前不支持Windows系统);可以直接访问Go对象;ServerHelloWorld示例:require"net/simple_server"server=Net::SimpleServer.new("3000")i=0server.get("/")do|req,res|puts(i)i=i+1res.body=req.method+"HelloWorld"res.status=200endserver.get("/not_found")do|req,res|res.body="NotFound"res.status=404endserver.start不知Ruby爱好者喜不喜欢?!05总结除了以上,Go语言实现的还有其他语言,如chai2010的wa语言[1],以及其他脚本语言,如Lua虚拟机Go实现,JS虚拟机实现,Python解释器,等,有兴趣的可以通过https://github.com/d5/tengo项目的性能测试部分了解。你看好上面介绍的语言吗?你会尝试哪种语言?如果你对编程语言实现感兴趣,可以参与其中。