Go 语言生态发展之路

2007 年 9 月 21 日,Robert Griesemer,Rob Pike 和 Ken Thompson 在一块白板上勾勒了一个新语言,并在几天内定下了计划和目标,作为一个自由时间的项目进行;2008 年年中,这个项目得到 Google 的全力支持,成为了一个全职项目;2009 年 11 月,Go 语言正式开源 [1],并于三年后发布 1.0 版本。发布 12 年至今,已有上百万开发者成为“gopher”,已经远超设计者最初的预期。

# 源起 #

Go 语言的开发团队可以说是高人云集:Ken Thompson 创造了 B 语言(C 语言前身),是 Unix 和 Plan9 操作系统的创立者之一,和 Dennis Ritchie 一起获得了 1983 年的图灵奖;Rob Pike 是 Unix 小组成员,也是 Limbo 语言和 UTF-8 编码的主要设计者;Robert Griesemer 曾参与制作 Google 的 JavaScript 引擎 V8、Java 的 HotSpot 虚拟机和领域特定语言 Sawzall [2](Sawzall 最早被 Google 用于处理大批量日志,后来基本被 Go 取代 [3])。

图片

Go 语言的三位创始人在 Google I/O 2012 - Meet the Go Team

随着 Go 的发展,出现了一些声音称 Go 语言没什么技术优势,而 Rob Pike 对此的态度是“你们是对的”,Go 语言本身 “并不有趣”,其设计初衷不是为了推动编程语言设计的进步,是为改善软件工程的工作环境而生 [4]。

当时 Google 面临着软件大规模增长的问题,开发方式变得缓慢而笨拙。规模化在各种维度上均存在,比如多核并行、生产需求和依赖关系等,导致硬件和软件都非常大,很多软件的代码多达百万行(大部分使用 C++、Java 或 Python)。Go 语言的诞生解决了大规模的软件开发中一些核心痛点,比如开发缓慢、不受控制的依赖关系、代码理解困难和重复造轮子等。 [5]

官网描述 Go 语言可用于构建“简单、可靠、高效的大规模软件”,JetBrains 2021 年的最新调研报告显示,程序员们在工作中使用 Go 语言的比例达到了 61%(Rust 语言用于工作的比例仅 16%) [6]。

图片

使用 Go 的场景

可见 Go 确实不是一门“有趣”的编程语言,而更看重工程实践中的实用性,Go 语言设计中的方方面面都在体现这一点。

# 演进 #

版本更新历史 [7] [8]:

  • 2012 年 3 月,语言第一个正式版本 Go 1.0 发布,同时还有一份兼容性说明文档说明未来版本会确保向后兼容性。

  • 2013 年 5 月,Go 1.1 发布,这个版本的编译器、垃圾回收机制、goroutine 调度器性能均有增强。

  • 2014 年 12 月,Go 1.4 发布,堆栈大小减少了 10~30%;Android 官方支持包随版本一起发布;同时 Go 项目从 Google Code 迁移到了 Github。

  • 2015 年 8 月,Go 编译器实现自举,完全移除了 C 语言;重新设计了垃圾回收器,支持并发,垃圾回收延迟显著降低,此后版本对垃圾回收器有更进一步的优化。

  • 2018 年 8 月,Go 1.11 版本引入了 Go 模块功能,以响应在当年语言调研中反馈

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言,也就是Golang,是一种由Google开发的高性能、静态类型的编程语言,主要用于系统编程。Golang的设计理念是简单、高效和安全,因此它被广泛应用于构建各种规模的应用程序。 关于Go语言的未来发展,有几个关键的因素值得关注: 1. 社区支持:Go语言有一个非常活跃的社区,有许多开源项目和工具可供使用。随着社区的发展Go语言生态系统将继续扩大,这将为开发者提供更多的选择和机会。 2. 生态系统:Go语言已经有一些知名的开源软件库和框架,如Go标准库、Docker、Kubernetes等。随着Go生态系统的发展,将有更多的开发者选择使用Golang进行开发,这将进一步推动Go语言发展。 3. 性能优化:Go语言具有高效性能,可以快速编译和运行。随着Go语言发展,将会有更多的开发者关注性能优化,以提高应用程序的性能和效率。 4. 跨平台支持:Go语言支持跨平台编译,这意味着开发者可以使用相同的代码构建多个操作系统或平台的应用程序。随着跨平台开发的普及,Go语言在这方面的优势将得到进一步体现。 5. 标准化和国际化:Go语言已经成为了国际化的编程语言之一,许多国家都有Go语言的开发者社区。随着Go语言的标准化和国际化进程的推进,将有更多的开发者能够轻松地学习和使用Go语言。 总的来说,Go语言在未来具有广阔的发展前景。随着社区的发展生态系统的扩大、性能优化、跨平台支持和标准化和国际化进程的推进,Go语言将继续成为一种受欢迎的编程语言。然而,需要注意的是,编程语言发展受到许多因素的影响,包括市场需求、技术趋势、竞争格局等,因此未来的发展情况还需要根据实际情况进行观察和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值