Go+ 下个里程碑:超越 cgo,无缝对接 C 语言

去年(2021年)Go+ 的 slogan 从 “面向数据科学” 的语言升级到了 “面向工程、STEM 教育与数据科学” 三位一体的语言。也就是说,我们希望 Go+ 可以同时被软件工程师、中小学生、数据分析师这三个截然不同的人群所广泛使用。

对 Go+ 来说,“面向数据科学” 这个目标注定有非常长远的路要走。所以去年 Go+ 的版本迭代主要精力都花在了 “低门槛” 上。我们努力让 Go+ 的使用门槛低到和 Python 相当的水平。这是从 Go+ 作为 “面向 STEM 教育”,作为一种中小学生就能够学习和掌握的教学语言而做出的努力。我认为这些努力对 Go+ 的发展来说非常重要。2022 年我们仍然会继续去加强 Go+ 在低门槛方向上的工作。

但是在去年年底的时候,我们将 Go+ 下一个里程碑(v1.2)的版本计划做了非常巨大的调整:我们从之前的一箩筐的 Go+ 生态发展的计划,调整成为就干一个非常硬的硬骨头:实现对 C 语言的完美支持。

为什么需要做这个改变?

因为到目前为止,Go+ 从 “面向工程” 这个目标来说,它只是 “更好的 Go”。客观来讲,这个 “更好” 并不足以让软件工程师们心动到改变自己的习惯,采用 Go+ 来进行日常的开发工作。这个 Why Go+ 如果回答不好,那么 Go+ 的面向工程这个目标就仅仅停留于口号。

Go 语言足够好,在它擅长的服务端开发领域上,你甚至几乎可以肯定地说它是最好的。但是在其他所有领域,无论是 PC、Mobile、Web、小程序、嵌入式、区块链与 Web3、大数据与 AI、编程教学领域等等,Go 都显得不够好。如果用学生来打比方,Go 像是一个偏科偏的非常严重的学生,有一门学科特别擅长考 99 分,但是其它学科都只是勉强的及格线。

是什么制约了 Go 语言在其他领域的发展?

我们以 Web3 为例。这很可能是与服务端开发最为接近,Go 最容易取得压倒性优势的领域。但是实际的战绩如何呢?我花时间对几十个头部的 Web3 项目进行了分析,最后的统计结果很意外:在这个领域 Go 语言的确采用率很高的确没错,但是有另一个语言 Rust 的采用率也很高,两者的采用率基本上接近 1:1,甚至一些项目同时采用 Go 和 Rust。

为什么会这样?在正统的服务端开发中 Rust 的采用率可能连 Go 的 1/10 都没有,为什么一个看起来完全类似的同样都是网络应用类的场景,其采用率居然有这么大的差别?

我知道一些人把这个事情归因到 Go 是 GC 语言,Rust 性能更好这一点上。但我认为这并不成立。如果对网络服务性能是重要的,那么在服务端开发(尤其是云计算)这样一个成本很敏感的领域,Rust 应该比 Go 更有市场竞争力才对。

我认为最有可能的关键因素是两个:

  • 语言带给人的安全感

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值