本文永久链接 – https://tonybai.com/2024/08/17/go-the-c-language-of-the-internet-era-come-true

本文最初发表于我个人的微信公众号(iamtonybai),但鉴于图片消息的篇幅受限(<=1000字),一些内容没能如愿展开,这里在博客上重新发布一下,也顺道丰富一下文章的内容。


2012年,七牛云创始人、goplus语言之父许式伟在一次演讲中给出一个大胆的预言:“Go,互联网时代的C语言”。

十余年过去了,我们不禁要问:当初的那个预言是否已经成真?

在讨论这个预言之前,我们先来看在同一份演讲稿中,老许给出的另外三个预判:

它们是:

  • Java语言份额继续下滑,最终被C和Go语言超越;
  • C语言将长居编程榜第二的位置,有望在Go取代Java前重获第一的宝座;
  • Go语言最终会取代Java位居编程榜榜首。

编程语言排行榜有很多,我们就以名气最大的TIOBE刚刚发布的2024年8月排行榜为例,看看这些预判是否成真。

很遗憾,一个也没命中

在这份最新榜单中,C位列第三、Java位列第四,Go位列第九,相对于前两个月的第七还下降了两位。不过不得不说,老许对C语言的预判还是相对准确的。

那这是否意味着老许最初的那个预言也Miss了呢?个人觉得:并没有。因为这要看从哪个角度来审视。

传统观点认为,C语言被视为系统编程语言的杰出代表,因其卓越的底层操作能力和极致性能而广受推崇。它允许开发者直接与硬件交互,提供了高效的资源管理和快速的执行速度。如果从这样的视角去看待那则预言,那显然Go与“互联网时代C语言”这个评价和地位是不相称的。虽然Go最初的定位也是一门系统编程语言

但如果我们跳出以“低级操作和性能”为中心的比较框架,而是从不同时代软件技术栈的层次与构建来看,Go与C语言的地位又极其的相似

在互联网时代到来之前,C语言已经是整个软件技术栈的基石:从操作系统内核、设备驱动程序、中间件到应用程序,C语言凭借卓越的性能、无以伦比的生态,在技术栈的各个层次都有着广泛且核心的应用。

当时针指向云原生时代时,Go语言在云原生技术栈的构建中,发挥了与C语言相似的作用

我们用一张示意图来横向对比一下:

听我讲到这里,你是不是觉得老许的那个预言好像命中了呢!

当然,从狭义的角度来看,Go与C还有一些地方是很像的,比如:语法简单、跨平台可移植性好等。并且两者还“沾亲带故”:Unix之父Ken Thompson当年和Dennis Ritchie一起发明了C语言,又和Rob Pike等一起设计了Go语言!

最后,回顾许式伟2012年的预言,我们不得不惊叹于其洞察力。Go语言确实在很大程度上成为了”互联网时代的C语言”,但不是通过传统的性能优势,而是通过重新构建了云原生技术栈,从这个角度看,Go语言也不失为云原生时代的”系统语言” —— 它不仅能够优雅地处理分布式系统的复杂性,它还使得构建和维护大规模、高可靠性的分布式系统变得更为简单,是云原生时代的思维方式和解决方案的集大成者,某种程度上还可以说定义了云原生时代的软件开发范式。


Gopher部落知识星球在2024年将继续致力于打造一个高品质的Go语言学习和交流平台。我们将继续提供优质的Go技术文章首发和阅读体验。同时,我们也会加强代码质量和最佳实践的分享,包括如何编写简洁、可读、可测试的Go代码。此外,我们还会加强星友之间的交流和互动。欢迎大家踊跃提问,分享心得,讨论技术。我会在第一时间进行解答和交流。我衷心希望Gopher部落可以成为大家学习、进步、交流的港湾。让我相聚在Gopher部落,享受coding的快乐! 欢迎大家踊跃加入!

img{512x368}
img{512x368}

img{512x368}
img{512x368}

著名云主机服务厂商DigitalOcean发布最新的主机计划,入门级Droplet配置升级为:1 core CPU、1G内存、25G高速SSD,价格5$/月。有使用DigitalOcean需求的朋友,可以打开这个链接地址:https://m.do.co/c/bff6eed92687 开启你的DO主机之路。

Gopher Daily(Gopher每日新闻) – https://gopherdaily.tonybai.com

我的联系方式:

  • 微博(暂不可用):https://weibo.com/bigwhite20xx
  • 微博2:https://weibo.com/u/6484441286
  • 博客:tonybai.com
  • github: https://github.com/bigwhite
  • Gopher Daily归档 – https://github.com/bigwhite/gopherdaily
  • Gopher Daily Feed订阅 – https://gopherdaily.tonybai.com/feed

商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。

© 2024, bigwhite. 版权所有.

Related posts:

  1. Hugo作者、Go核心开发团队成员谈诞生13年的Go语言:生态系统、演化与未来[译]
  2. Go语言开源十周年
  3. 使用Docker Compose构建一键启动的运行环境
  4. Go语言很无聊…其实它妙不可言![译]
  5. Rust vs. Go:为什么强强联合会更好