自 2009 年 11 月正式对外公布后,至今 Go 开源已走过整整 12 个年头。刚刚,Go 开发团队技术 leader Russ Cox 就专门撰文庆贺“Go 开源 12 周年”。
在这篇博客文章中,Russ Cox 对 Go 开源今年以来的变动及所获得停顿做了回顾,并对下一阶段的倒退进行了瞻望。
Russ Cox 提到了将 godoc.org 替换成 pkg.go.dev,以及新域名 go.dev 的启用,可将所有官网 Go 站点整合至对立域名下。
往年 2 月,Go 1.16 版本增加了对 macOS ARM64 的反对,以及文件系统接口和嵌入文件、默认启用 modules 等多项改良优化。
往年 8 月,Go 1.17 版本增加了对 Windows ARM64 的反对,大大晋升了 TLS 明码套件决策的易用性和安全性;修剪模块图 (pruned module graphs) 及全新易读的构建束缚语法的引入,让 Go Modules 在大型项目中更高效。Go 1.17 版本还在底层上将 x86-64 的 Go 函数切换至基于寄存器的调用约定,让 CPU 密集型应用程序的性能进步了 5-15%。
此外,IDE 方面也反对在 VS Code Go 中默认启用 gopls,同时还为 gopls 和 VS Code Go 提供多项改良,包含由 Delve 提供反对的弱小调试体验。
除了增加含糊测试反对的新提案,往年还正式提议向 Go 增加泛型,并明确将在 Go 1.18 中提供。
据理解,10 月初,“Go 语言之父”Rob Pike 曾在 Github 上撰文称“不倡议在 Go 1.18 的规范库中应用泛型”的 issue。而到了 10 月 28 日,Russ Cox 又发文终于明确了“Go 1.18 版本中将反对泛型”的信息。
对此,Russ Cox 在此次博文中示意,欠缺泛型将是 Go 团队明年的重点工作之一(另一项重点工作和供应链平安相干)。Go 1.18 中的初始版本只是一个开始,预计 Go 1.19(或将于 2022 年 8 月公布)及更高版本将进一步欠缺泛型的设计和实现,并将其进一步整合到整体 Go 体验中。
目前,Go 团队曾经着手钻研 Go 破绽数据库以及用于报告程序依赖项中破绽的相干工具,以进步此类工具的信噪比(如果程序不应用易受攻击的性能,则不会进行报告),预计明年会被作为独立工具提供,且将其增加到现有工具中。同时,在改良 Go 供应链平安态势方面,将来也还有更多工作须要发展。
对于 Go 语言
Go 语言最后由 Rob Pike 等谷歌工程师在 2007 年 9 月启动设计工作,在 2009 年 11 月正式对外公布。
Go 语言完满交融了动静语言易于编写的个性和动态语言的高效性,具备良好的易用性和极佳的执行效率。
Go 语言最后定位于 Web 服务器、存储系统和数据库的程序设计,同时在语言中蕴含并发结构体,以帮忙开发者创立并行任务。Go 开发团队曾示意,编译实现的 Go 程序运行速度靠近 C 语言实现的程序。