国外平面设计师网站,如何引导企业老板做网站,做影集的网站或软件下载,网站建设要多长时间请点击上方蓝字TonyBai订阅公众号#xff01; 虽然迟到了#xff0c;但绝不缺席#xff01;新任Go技术负责人Austin Clements在Go语言15岁生日后的第二天#xff0c;在Go官方博客上发表了庆祝文章“Go Turns 15[2]”。在这篇文章中#xff0c;Austin回顾了过去一年Go项目和… 请点击上方蓝字TonyBai订阅公众号 虽然迟到了但绝不缺席新任Go技术负责人Austin Clements在Go语言15岁生日后的第二天在Go官方博客上发表了庆祝文章“Go Turns 15[2]”。在这篇文章中Austin回顾了过去一年Go项目和社区的变化以及Go团队的努力工作并对Go的未来发展进行了展望。我在此对这篇庆生文进行了翻译供大家参考。 Go生日快乐 周日我们庆祝了Go开源15周年[3] 自从Go诞生10周年[4]以来无论是Go语言本身还是整个世界都经历了巨大的变化。尽管如此有些方面依然保持不变Go始终致力于稳定性、安全性以及支持软件工程和大规模生产。 Go语言发展势头强劲在过去五年中Go的用户群增加了三倍多(译注不知道这个数据从何而来)成为增长最快的编程语言之一。自十五年前诞生以来Go已成为十大编程语言。 来自TIOBE 2024年11月排行榜(译者配图) 来自Github Octoverse 2024(译者配图) 随着Go 1.22版本在二月份发布和Go 1.23版本在八月份发布这一年可被称为“for循环之年”。Go 1.22将for循环中引入变量的作用域改为每次迭代[8]而非整个循环从而解决了一个长期存在的语言“陷阱”。十多年前在Go 1发布之前Go团队对几个语言细节做出了决策其中就包括for循环是否应该在每次迭代中创建一个新的循环变量。有趣的是这次讨论非常简短且没有明确的意见。Rob Pike以他一贯的风格结束了讨论只说了一个字“stet”保持原样。结果也确实如此。尽管当时看似微不足道但多年的生产经验突显了这一决策的影响。然而在此期间我们还构建了强大的工具来理解对Go的变更影响特别是在整个Google代码库中进行生态系统范围的分析和测试并建立了与社区合作和获取反馈的流程。在经过广泛的测试、分析和社区讨论后我们推出了这一变更并配备了哈希二分工具[9]以帮助开发者在大规模代码中精确定位受影响的部分。 对for循环的变更仅是是五年演进调整的一部分。这一变更的实现得益于Go 1.21中引入的向前兼容性而这又建立在四年半前Go 1.14[11]发布的Go模块[12]基础之上。 译注Go module首次在Go 1.11版本由Russ Cox设计和实现Go 1.14版本首次宣布Go module具备生产使用的成熟度了。 Go 1.23在此变更的基础上进一步引入了迭代器和用户定义的for-range循环。结合仅仅两年半前在Go 1.18中引入的泛型——这为自定义集合和许多其他编程模式奠定了强大而人性化的基础。 这些版本还带来了许多生产就绪方面的改进包括备受期待的标准库HTTP路由器增强[14]、执行跟踪的全面重构[15]以及为所有Go应用程序提供更强的随机性[16]。此外我们的第一个v2标准库包[17]的引入为未来的标准库演进和现代化建立了模板。 在过去的一年中我们还谨慎地推出了Go工具的自愿使用的遥测系统和匿名。Go遥测最初出现在goplsGo语言服务器中已经带来了许多改进[19]。这项努力为使Go编程体验变得更加出色奠定了基础。 展望未来我们正在不断演进Go以更好地利用当前和未来硬件的能力。在过去的15年中硬件发生了巨大的变化。为了确保Go能够在接下来的15年中继续支持高性能、大规模的生产工作负载我们需要适应大型多核处理器、先进的指令集以及在non-uniform内存层次结构中日益重要的局部性。其中一些改进将是透明的。Go 1.24将推出全新底层实现的map以提高在现代CPU上的执行效率。同时我们正在进行新的垃圾回收算法的原型设计以适应现代硬件的能力和限制。一些改进将以新的API和工具的形式出现以便Go开发者更好地利用现代硬件。我们正在研究如何支持最新的向量和矩阵硬件指令以及应用程序如何构建CPU和内存的局部性。指导我们努力的一个核心原则是**可组合优化(composable optimization)**优化对代码库的影响应该尽可能局部化以确保对其余代码库开发的便捷性不受影响。 我们将继续确保Go的标准库在默认情况下是安全的并在设计上也考虑到安全性。这包括不断努力将内置的、原生支持的FIPS认证加密功能纳入其中使得需要FIPS加密的应用程序只需简单切换一个命令行标志即可使用。此外我们还在不断改进Go的标准库包并借鉴math/rand/v2的例子考虑在哪里可以引入新的API以显著提高编写安全和可靠的Go代码的便利性。 我们正在努力使Go在人工智能领域表现更好同时也让人工智能更好地服务于Go增强其在AI基础设施、应用程序和开发者辅助工具方面的能力。Go是一种非常适合构建生产系统的语言我们希望它也能成为构建生产级AI系统[20]的优秀语言。作为云基础设施的可靠语言Go自然成为大型语言模型LLM基础设施[21]的理想选择。针对AI应用我们将继续在流行的AI SDK中为Go提供一流的支持包括LangChainGo[22]和Genkit[23]。从一开始Go就旨在改善端到端的软件工程过程因此我们自然希望引入AI的最新工具和技术以减少开发者的重复劳动从而留出更多时间来进行更有趣的编程活动 感谢您 所有这一切的实现都离不开Go的杰出贡献者和蓬勃发展的社区。十五年前我们只能憧憬Go所取得的成功以及围绕Go发展起来的社区。感谢每一位参与其中的人无论贡献大小。我们祝愿大家在新的一年里一切顺利 参考资料 [1] 新任Go技术负责人Austin Clements: https://tonybai.com/2024/10/10/pass-torch-to-go-new-leadership-team/ [2] Go Turns 15: https://go.dev/blog/15years [3] Go开源15周年: https://opensource.googleblog.com/2009/11/hey-ho-lets-go.html [4] Go诞生10周年: https://go.dev/blog/10years [5] Go已成为十大编程语言: https://mp.weixin.qq.com/s?__bizMzIyNzM0MDk0Mgmid2247497403idx1sn03bc972e38163e1539da765249d46586chksme860115adf17984cfe47f9680d8c0fb6370987ad45415ff2d38233d05fe6b315210ce6ada385#rd [6] Go 1.22版本: https://tonybai.com/2024/02/18/some-changes-in-go-1-22/ [7] Go 1.23版本: https://tonybai.com/2024/08/19/some-changes-in-go-1-23/ [8] 改为每次迭代: https://go.dev/blog/loopvar-preview [9] 哈希二分工具: https://go.googlesource.com/proposal//master/design/60078-loopvar.md#transition-support-tooling [10] Go 1.21中引入的向前兼容性: https://tonybai.com/2023/09/10/understand-go-forward-compatibility-and-toolchain-rule/ [11] Go 1.14: https://tonybai.com/2020/03/08/some-changes-in-go-1-14/ [12] Go模块: https://tonybai.com/tag/gomodule [13] 迭代器和用户定义的for-range循环: https://tonybai.com/2024/06/24/range-over-func-and-package-iter-in-go-1-23/ [14] 标准库HTTP路由器增强: https://go.dev/blog/routing-enhancements [15] 执行跟踪的全面重构: https://go.dev/blog/execution-traces-2024 [16] 为所有Go应用程序提供更强的随机性: https://go.dev/blog/chacha8rand [17] 第一个v2标准库包: https://go.dev/blog/randv2 [18] 自愿使用的遥测系统: https://mp.weixin.qq.com/s?__bizMzIyNzM0MDk0Mgmid2247497282idx1sn30e10a7091c270d5dcd5e1b3c57bdf2cchksme86011a3df1798b57870fedccbbda20d0a334413e15c768476a18fe9446a89432e776a8fbf1c#rd [19] 许多改进: https://github.com/golang/go/issues?qis%3Aissuelabel%3Agopls%2Ftelemetry-wins [20] 构建生产级AI系统: https://go.dev/blog/llmpowered [21] 大型语言模型LLM基础设施: https://ollama.com/ [22] LangChainGo: https://pkg.go.dev/github.com/tmc/langchaingo [23] Genkit: https://developers.googleblog.com/en/introducing-genkit-for-go-build-scalable-ai-powered-apps-in-go/ 如果本文对你有所帮助欢迎转发朋友圈 点击下面标题干货 - 2023年Go语言盘点稳中求新稳中求变 - 跟上Go演进步伐你只需要关注这几件事儿 - Go语言的新时代新领导团队和未来规划 - 编程界的“白开水”喝上就会上瘾 - 成为那个拿锤子的人 Gopher部落知识星球在2024年将继续致力于打造一个高品质的Go语言学习和交流平台。我们将继续提供优质的Go技术文章首发和阅读体验。同时我们也会加强代码质量和最佳实践的分享包括如何编写简洁、可读、可测试的Go代码。此外我们还会加强星友之间的交流和互动。欢迎大家踊跃提问分享心得讨论技术。我会在第一时间进行解答和交流。我衷心希望Gopher部落可以成为大家学习、进步、交流的港湾。让我相聚在Gopher部落享受coding的快乐! 欢迎大家踊跃加入 著名云主机服务厂商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微博2https://weibo.com/u/6484441286博客tonybai.comgithub: https://github.com/bigwhiteGopher Daily归档 - https://github.com/bigwhite/gopherdailyGopher Daily Feed订阅 - https://gopherdaily.tonybai.com/feed 商务合作方式撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。