<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tony Bai &#187; TIOBE</title>
	<atom:link href="http://tonybai.com/tag/tiobe/feed/" rel="self" type="application/rss+xml" />
	<link>https://tonybai.com</link>
	<description>一个程序员的心路历程</description>
	<lastBuildDate>Mon, 25 May 2026 23:53:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>谁说 Rust 在中国火了？扒开 2025 全年数据，我看到了令人尴尬的真相</title>
		<link>https://tonybai.com/2026/05/12/the-embarrassing-truth-about-rust-adoption-in-china/</link>
		<comments>https://tonybai.com/2026/05/12/the-embarrassing-truth-about-rust-adoption-in-china/#comments</comments>
		<pubDate>Mon, 11 May 2026 23:50:26 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[BorrowChecker]]></category>
		<category><![CDATA[CommunityEvents]]></category>
		<category><![CDATA[CrossingTheChasm]]></category>
		<category><![CDATA[DeveloperSurvey]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[GlobalPerspective]]></category>
		<category><![CDATA[Meetup]]></category>
		<category><![CDATA[OpenSourceBusinessModel]]></category>
		<category><![CDATA[OpenSourceEcosystem]]></category>
		<category><![CDATA[ownership]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[Rustacean]]></category>
		<category><![CDATA[SupplyChainSecurity]]></category>
		<category><![CDATA[TechEvangelism]]></category>
		<category><![CDATA[TIOBE]]></category>
		<category><![CDATA[供应链安全]]></category>
		<category><![CDATA[借用检查器]]></category>
		<category><![CDATA[全球化视野]]></category>
		<category><![CDATA[开发者调研]]></category>
		<category><![CDATA[开源商业模式]]></category>
		<category><![CDATA[开源生态]]></category>
		<category><![CDATA[所有权]]></category>
		<category><![CDATA[技术交流]]></category>
		<category><![CDATA[技术传播]]></category>
		<category><![CDATA[生产力]]></category>
		<category><![CDATA[社区活动]]></category>
		<category><![CDATA[跨越鸿沟]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=6303</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2026/05/12/the-embarrassing-truth-about-rust-adoption-in-china 大家好，我是Tony Bai。 如果只看国内的公众号和社交媒体，你可能会觉得 Rust 在中国IT技术圈已经很火了：大厂在重构核心链路和重写数据工程的基础设施、创业者在搞 Web 3.0和AI 原生开发、甚至连刚毕业的学生都在卷“所有权（Ownership）”。在一片“Rust 必火”的赞歌中，我们似乎已经默认了中国是全球 Rust 生态版图中最强的那一极。 但真相，往往藏在那些没人注意到的冷数据里。 最近，我做了一次极其枯燥的工作。我让Claude 翻阅了全球最权威的 Rust 社区周刊——《This Week in Rust》（简称 TWiR） 2025 年全年的所有 53 期内容，重点抓取了其中“Upcoming Events（近期活动）”板块。 注：可能存在一定幻觉和不准确的地方。 我想看看，在这一整年里，中国到底举办了多少场能够被国际主流社区感知到的 Rust 技术交流(meetup and conf)。 结果令我脊背发凉。 今天，我想撕开这层温情脉脉的“技术繁荣”假象，带大家看看中国 Rust 社区最真实的底色。 数据重击：中国 Rust 社区的“隐形”之谜 在 2025 年的 53 期 TWiR 中，全球范围内的 Rust 活动如火如荼。 欧洲：平均每期出现 13 个 活动，全年累计超过 120 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/2026/the-embarrassing-truth-about-rust-adoption-in-china-1.png" alt="" /></p>
<p><a href="https://tonybai.com/2026/05/12/the-embarrassing-truth-about-rust-adoption-in-china">本文永久链接</a> &#8211; https://tonybai.com/2026/05/12/the-embarrassing-truth-about-rust-adoption-in-china</p>
<p>大家好，我是Tony Bai。</p>
<p>如果只看国内的公众号和社交媒体，你可能会觉得 Rust 在中国IT技术圈已经很火了：大厂在重构核心链路和重写数据工程的基础设施、创业者在搞 Web 3.0和AI 原生开发、甚至连刚毕业的学生都在卷“所有权（Ownership）”。在一片“Rust 必火”的赞歌中，我们似乎已经默认了中国是全球 Rust 生态版图中最强的那一极。</p>
<p><strong>但真相，往往藏在那些没人注意到的冷数据里。</strong></p>
<p>最近，我做了一次极其枯燥的工作。我让Claude 翻阅了全球最权威的 Rust 社区周刊——<strong>《<a href="https://this-week-in-rust.org">This Week in Rust</a>》（简称 TWiR）</strong> 2025 年全年的所有 53 期内容，重点抓取了其中“Upcoming Events（近期活动）”板块。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/the-embarrassing-truth-about-rust-adoption-in-china-2.png" alt="" /></p>
<blockquote>
<p>注：可能存在一定幻觉和不准确的地方。</p>
</blockquote>
<p>我想看看，在这一整年里，中国到底举办了多少场能够被国际主流社区感知到的 Rust 技术交流(meetup and conf)。</p>
<p><strong>结果令我脊背发凉。</strong></p>
<p>今天，我想撕开这层温情脉脉的“技术繁荣”假象，带大家看看中国 Rust 社区最真实的底色。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/agentic-software-engineering-qr.png" alt="" /></p>
<h2>数据重击：中国 Rust 社区的“隐形”之谜</h2>
<p>在 2025 年的 53 期 TWiR 中，全球范围内的 Rust 活动如火如荼。</p>
<ul>
<li><strong>欧洲</strong>：平均每期出现 <strong>13 个</strong> 活动，全年累计超过 120 场。</li>
<li><strong>北美</strong>：平均每期出现 <strong>10 个</strong> 活动，全年累计超过 130 场。</li>
<li><strong>而中国大陆（CN）呢？</strong> 在整整 53 期里，仅仅出现了 <strong>3 期</strong>！</li>
</ul>
<p><img src="https://tonybai.com/wp-content/uploads/2026/the-embarrassing-truth-about-rust-adoption-in-china-3.png" alt="" /><br />
<center>2025 全年 53 期全球Rust技术活动对比柱状图</center></p>
<p>更讽刺的数据还在后面。如果我们把目光缩到亚洲：</p>
<p>在 TWiR 的“Asia”板块中，以色列的<strong>特拉维夫（Tel Aviv）</strong>一个城市，全年的出现频次是 <strong>11 次</strong>。</p>
<p><strong>是的，你没看错：特拉维夫 > 整个中国大陆 + 中国香港 + 中国台湾省。</strong></p>
<p>全中国 14 亿人口、数千万程序员，在这个全球最活跃的 Rust 观察窗口中，竟然比不上一个中东城市活跃。</p>
<p>难道中国程序员不写 Rust 吗？显然不是。那是谁偷走了中国 Rust 社区的“声音”？</p>
<h2>信息茧房：我们在微信群里“自嗨”</h2>
<p>为什么中国 Rust 活动在全球视野中几乎消失了？通过一些调研，我发现了一个极其严重的“结构性问题”。</p>
<p><strong>第一，我们的社区是“内向”且“封闭”的。</strong></p>
<p>在国外，Rust 开发者习惯在 GitHub、Reddit、Discord、Twitter 或是通过电子邮件订阅列表交流。一旦有 Meetup，他们会第一时间向 TWiR 这种全球通用的周刊提交信息，寻求全球开发者的关注。</p>
<p>而我们呢？</p>
<p>我们活跃在微信群、钉钉群、飞书群，或者是在 B站 的某个直播间。</p>
<p><strong>这些平台，本质上是“信息的黑洞”。</strong> 它们无法被搜索引擎抓取，无法被国际社区感知，甚至连跨个群都费劲。我们在一个个封闭的小圈子里讨论着高深的生命周期和异步并发，却对外面的世界“一声不吭”。</p>
<p><strong>第二，中国开发者正在丧失“国际社区意识”。</strong></p>
<p>即便是在 2025 年中国 Rust 的两个高光时刻——3 月的 <strong>Rust Asia 2025 (香港)</strong> 和 9 月的 <strong>RustChinaConf 2025 (杭州)</strong>，它们的曝光也是极其短暂的。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/the-embarrassing-truth-about-rust-adoption-in-china-4.png" alt="" /><br />
<center>2025 全年中国地区Rust技术活动明细</center></p>
<p>正如一位社区大佬所言：<strong>“如果你不在推特和 GitHub 上发声，你就相当于不存在。”</strong></p>
<p>我们这种“躲进小楼成一统”的行为，正在让中国 Rust 生态沦为全球版图上的一个“暗物质”。</p>
<h2>大厂黑盒：Rust 只是大厂的“私人玩具”？</h2>
<p>还有一个更深层的原因：<strong>中国 Rust 应用的“两极分化”极其严重。</strong></p>
<p>在一极，是像<strong>字节跳动（ByteDance）、PingCAP、蚂蚁集团</strong>这样的顶级玩家。</p>
<p>他们拥有极深的技术功底，在核心系统中使用 Rust 已经到了炉火纯青的地步。但问题在于，这些能力被封锁在大厂的围墙之内。他们更倾向于内部的技术内卷，而不是建立开放的、具有影响力的公共社区。</p>
<p>在另一极，是广大的、依然在 CRUD 泥潭里挣扎的普通开发者。</p>
<p>对于他们来说，Rust 太难、编译太慢、门槛太高。他们看不到实际的应用案例，找不到线下的交流圈子，只能在网上看着“Rust 必火”的营销号文章陷入焦虑。</p>
<p><strong>缺乏“中间层”的连接，导致中国 Rust 社区没有持续的、小规模的、日常化的技术碰撞(Meetup)。</strong></p>
<p>我们只有一年一度的大会，却没有每周一次的 Meetup。这就好比一个只有春晚却没有日常市集的村庄，死气沉沉。</p>
<h2>认清现实后的反思：不要做“Rust 隐士”</h2>
<p>编程语言的生命力，不仅取决于它的编译器有多牛逼，更取决于它的<strong>社区网络效应</strong>。</p>
<p>当中国的 Rust 开发者集体消失在全球视野中，我们会失去什么？</p>
<ol>
<li><strong>失去标准制定的参与权</strong>：Rust 的每一个重要 RFC，背后都是全球开发者的博弈。如果我们不在场，我们的业务场景和需求将永远不会被考虑。</li>
<li><strong>失去顶级人才的吸引力</strong>：全球的顶尖 Rustacean 会认为中国是一个 Rust 的荒漠，从而减少技术交流与合作。</li>
<li><strong>技术审美的滞后</strong>：长期脱离国际主流语境，会导致我们在架构审美和最佳实践上，陷入一种“闭门造车”的狭隘。</li>
</ol>
<h2>小结：打破沉默，重新“出海”</h2>
<p>Rust 的吉祥物是一只螃蟹（Ferris）。螃蟹虽然有硬壳，但它不应该只生活在自己的小沙洞里。</p>
<p>在国际视角下的中国 Rust 社区的“冷”，可能并不是用的人少，而是我们<strong>“跑得太慢、声音太小”</strong>。</p>
<p>如果你正在参与一个 Rust 项目，如果你所在的公司正在筹备一场技术分享，请记住：</p>
<p><strong>除了发朋友圈，请去 GitHub 提个 PR，去 TWiR 投个稿，去国际社区喊一声：“Hey, we are here!”</strong></p>
<p>不要让 2026 年的统计数据，依然显示中国是那个“隐形”的国家。</p>
<p><strong>技术无国界，但影响力的版图，需要每一位开发者用行动去标注。</strong></p>
<p>资料链接：https://this-week-in-rust.org/blog/archives/index.html</p>
<hr />
<p><strong>今日互动探讨：</strong></p>
<p>看完这份数据，你感到惊讶吗？你觉得是什么阻碍了你参与国际开源社区的讨论？在你的身边，Rust 真的火了吗？</p>
<p>欢迎在评论区分享你的真心话！</p>
<hr />
<p>还在为写 Agent 框架频频死循环、上下文爆炸而束手无策？我的新专栏 <strong>《<a href="http://gk.link/a/12IzL">从0 开始构建 Agent Harness</a>》</strong> 将带你：</p>
<ul>
<li>抛弃臃肿框架，回归“驾驭工程 (Harness Engineering)”的第一性原理</li>
<li>用 Go 语言手写 ReAct 循环、并发拦截与上下文压缩引擎等，复刻极简OpenClaw</li>
<li>构建坚不可摧的 Safety Middleware 与飞书人工审批防线</li>
<li>在底层实现 Token 成本审计、链路追踪与自动化跑分评估</li>
<li>从“调包侠”进化为掌控大模型边界的“AI 操作系统架构师”</li>
</ul>
<p>扫描下方二维码，开启从 0 开始构建Agent Harness 的实战之旅。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/build-agent-harness-from-scratch-qr.png" alt="" /></p>
<hr />
<p><strong>原「Gopher部落」已重装升级为「Go &amp; AI 精进营」知识星球，快来加入星球，开启你的技术跃迁之旅吧！</strong></p>
<p>我们致力于打造一个高品质的 <strong>Go 语言深度学习</strong> 与 <strong>AI 应用探索</strong> 平台。在这里，你将获得：</p>
<ul>
<li><strong>体系化 Go 核心进阶内容:</strong> 深入「Go原理课」、「Go进阶课」、「Go避坑课」等独家深度专栏，夯实你的 Go 内功。</li>
<li><strong>前沿 Go+AI 实战赋能:</strong> 紧跟时代步伐，学习「Go+AI应用实战」、「Agent开发实战课」、「Agentic软件工程课」、「Claude Code开发工作流实战课」、「OpenClaw实战分享」等，掌握 AI 时代新技能。 </li>
<li><strong>星主 Tony Bai 亲自答疑:</strong> 遇到难题？星主第一时间为你深度解析，扫清学习障碍。</li>
<li><strong>高活跃 Gopher 交流圈:</strong> 与众多优秀 Gopher 分享心得、讨论技术，碰撞思想火花。</li>
<li><strong>独家资源与内容首发:</strong> 技术文章、课程更新、精选资源，第一时间触达。</li>
</ul>
<p>衷心希望「Go &amp; AI 精进营」能成为你学习、进步、交流的港湾。让我们在此相聚，享受技术精进的快乐！欢迎你的加入！</p>
<p><img src="http://image.tonybai.com/img/tonybai/gopher-and-ai-tribe-zsxq-small-card.jpg" alt="img{512x368}" /></p>
<hr />
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求，请扫描下方公众号二维码，与我私信联系。</p>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p style='text-align:left'>&copy; 2026, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2026/05/12/the-embarrassing-truth-about-rust-adoption-in-china/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>为什么人人爱 Rust，但 RedMonk 榜单却给它泼了一盆冷水？</title>
		<link>https://tonybai.com/2026/04/25/rust-popularity-vs-redmonk-ranking-reality-check/</link>
		<comments>https://tonybai.com/2026/04/25/rust-popularity-vs-redmonk-ranking-reality-check/#comments</comments>
		<pubDate>Fri, 24 Apr 2026 23:43:32 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[BorrowChecker]]></category>
		<category><![CDATA[CrossingTheChasm]]></category>
		<category><![CDATA[DeveloperExperience]]></category>
		<category><![CDATA[EcosystemFragmentation]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[GoLanguage]]></category>
		<category><![CDATA[Go语言]]></category>
		<category><![CDATA[Industrialization]]></category>
		<category><![CDATA[LearningCurve]]></category>
		<category><![CDATA[ownership]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[ProgrammingLanguageRankings]]></category>
		<category><![CDATA[redmonk]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[safety]]></category>
		<category><![CDATA[ShippingSpeed]]></category>
		<category><![CDATA[standardlibrary]]></category>
		<category><![CDATA[SupplyChainSecurity]]></category>
		<category><![CDATA[TechSelection]]></category>
		<category><![CDATA[TIOBE]]></category>
		<category><![CDATA[供应链安全]]></category>
		<category><![CDATA[借用检查器]]></category>
		<category><![CDATA[学习曲线]]></category>
		<category><![CDATA[安全性]]></category>
		<category><![CDATA[工业化]]></category>
		<category><![CDATA[开发者体验]]></category>
		<category><![CDATA[性能]]></category>
		<category><![CDATA[所有权]]></category>
		<category><![CDATA[技术选型]]></category>
		<category><![CDATA[标准库]]></category>
		<category><![CDATA[生产效率]]></category>
		<category><![CDATA[生态碎片化]]></category>
		<category><![CDATA[编程语言排名]]></category>
		<category><![CDATA[跨越鸿沟]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=6225</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2026/04/25/rust-popularity-vs-redmonk-ranking-reality-check 大家好，我是Tony Bai。 在过去几年的技术圈，Rust 是当之无愧的“流量之王”。 它连续多年在 Stack Overflow 开发者调研中蝉联“最受喜爱的语言”；它是 Linux 内核 30 年来引入的唯一非 C 语言；它是微软、亚马逊等大厂重塑底层安全架构的希望。 如果只看社交媒体和社区讨论，你会觉得 Rust 已经“统治了世界”。在一片赞歌中，大家默认 Rust 杀进主流榜单前十、取代传统语言只是时间问题。 但就在 2026 年 4 月，一份来自权威分析机构 RedMonk 的2026.1编程语言排行榜，却给所有“Rust 狂热者”泼了一盆透心凉的冷水。 数据呈现了一个极其残酷的反差： 在这份以“开发者真实选择”为核心指标的榜单上，Rust 的排名并没有像预期的那样一飞冲天，而是停滞在了第 20 位，甚至被曾被视为小众的 Dart 所超越。相比之下，那个常被调侃“无趣”的 Go 语言，依然稳稳地坐在第 12 位，并在云原生领域保持着统治地位。 为什么人人爱 Rust，但它在工业界的大规模普及却显得如此缓慢？为什么它“攻陷”了最硬核的 Linux 内核，却迟迟进不了普通开发者的日常？ 今天，我想结合近期社区的深度讨论，扒开 Rust 这层华丽的外衣，带大家看看这门“天选之子”背后的生存现状与真实挑战。 口碑与数据的鸿沟：被锁死在“塔尖”的生产力 在开发者 Alejandra 最近整理的一份清单里，Rust 的“战绩”堪称辉煌：Windows 11 的核心组件、AWS [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/2026/rust-popularity-vs-redmonk-ranking-reality-check-1.png" alt="" /></p>
<p><a href="https://tonybai.com/2026/04/25/rust-popularity-vs-redmonk-ranking-reality-check">本文永久链接</a> &#8211; https://tonybai.com/2026/04/25/rust-popularity-vs-redmonk-ranking-reality-check</p>
<p>大家好，我是Tony Bai。</p>
<p>在过去几年的技术圈，Rust 是当之无愧的“流量之王”。</p>
<p>它连续多年在 Stack Overflow 开发者调研中蝉联“最受喜爱的语言”；它是 Linux 内核 30 年来引入的唯一非 C 语言；它是微软、亚马逊等大厂重塑底层安全架构的希望。</p>
<p>如果只看社交媒体和社区讨论，你会觉得 Rust 已经“统治了世界”。在一片赞歌中，大家默认 Rust 杀进主流榜单前十、取代传统语言只是时间问题。</p>
<p><strong>但就在 2026 年 4 月，一份来自权威分析机构 RedMonk 的2026.1编程语言排行榜，却给所有“Rust 狂热者”泼了一盆透心凉的冷水。</strong></p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/rust-popularity-vs-redmonk-ranking-reality-check-2.png" alt="" /></p>
<p>数据呈现了一个极其残酷的反差：</p>
<p>在这份以“开发者真实选择”为核心指标的榜单上，Rust 的排名并没有像预期的那样一飞冲天，而是<strong>停滞在了第 20 位</strong>，甚至被曾被视为小众的 Dart 所超越。相比之下，那个常被调侃“无趣”的 Go 语言，依然稳稳地坐在第 12 位，并在云原生领域保持着统治地位。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/rust-popularity-vs-redmonk-ranking-reality-check-3.png" alt="" /></p>
<p>为什么人人爱 Rust，但它在工业界的大规模普及却显得如此缓慢？为什么它“攻陷”了最硬核的 Linux 内核，却迟迟进不了普通开发者的日常？</p>
<p>今天，我想结合近期社区的深度讨论，扒开 Rust 这层华丽的外衣，带大家看看这门“天选之子”背后的生存现状与真实挑战。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2025/paid/system-programming-in-go-pr.png" alt="" /></p>
<h2>口碑与数据的鸿沟：被锁死在“塔尖”的生产力</h2>
<p>在开发者 Alejandra 最近<a href="https://blog.goose.love/posts/what-actually-uses-rust/">整理的一份清单</a>里，Rust 的“战绩”堪称辉煌：Windows 11 的核心组件、AWS 的 Firecracker 虚拟化、Cloudflare 的下一代代理服务器 Pingora……</p>
<p>但这恰恰揭示了 Rust 目前最大的尴尬：它是一个“属于 1% 的神兵利器”。</p>
<p>这些成功的 Rust 项目，无一例外都属于“系统级基础设施”领域。它们雇佣的是全球前 1% 的顶级程序员，拥有极其漫长的研发周期和近乎奢侈的调试成本。</p>
<p>正如 RedMonk 的分析师在<a href="https://redmonk.com/sogrady/2026/04/14/language-rankings-1-26">报告</a>中一针见血地指出：</p>
<blockquote>
<p>“Rust 依然面临着非专家程序员难以逾越的学习门槛。专家们愿意投入时间，但更广泛的主流采用似乎面临着巨大的惯性。”</p>
</blockquote>
<p>开发者 Alejandra 在其博文的自白中也坦言：</p>
<blockquote>
<p>“无论我们如何自我安慰 Rust 已经进入主流，事实是：它离 C++ 甚至 Java 的普及程度，依然有着深不见底的鸿沟。大学教的第一门语言依然是 Java，飞机上依然在用 C++，网页里依然全是 Javascript。”</p>
</blockquote>
<p><strong>Rust 已经完成了从 0 到 1 的“极客突围”，却正在撞向从 1 到 N 的“工业化之墙”。</strong></p>
<h2>标准库的困局：当“技术洁癖”变成“协作负担”</h2>
<p>除了学习曲线，Rust 进军主流的第二个障碍，也许就是它那小而美的标准库。</p>
<p>这篇名为<strong>《Unpopular opinion: Rust should have a larger standard library》（非主流观点：Rust 应该有一个更大的标准库）</strong>的帖子，戳中了无数一线开发者的泪点：</p>
<p>在我之前写过的一篇文章《<a href="https://tonybai.com/2026/04/09/stop-being-small-and-beautiful-rust-petition-to-learn-from-go/">别搞“小而美”了！Rust 开发者请愿：求求标准库学学 Go 吧</a>》中也曾提过社区对 Rust 标准库的述求：</p>
<blockquote>
<p>“我不想写个程序就要拉几百个三方库！生成一个随机数，std 里没有；想要个异步运行时，std 里也没有。我不得不把信任托付给几百个散落在 GitHub 各地、由个人维护的小型包（Crate）。”</p>
</blockquote>
<p><strong>这种对“核心精简”的极致追求，正在引发严重的“供应链安全焦虑”。</strong></p>
<p>在 Go 的世界里，你可以用标准库完成 90% 的后端开发，这意味着你的核心链路是由 Google 顶尖团队直接背书的。但在 Rust 的世界里，开发者面临着“碎片化依赖”的内耗。</p>
<p>这种“标准库贫血”导致了一个反直觉的现象：Rust 是一门为了“安全”而生的语言，但它极度依赖社区包的机制，却在客观上增加了<strong>供应链被“投毒”</strong>的风险。</p>
<p>正如评论区所感慨的：“标准库是模块最终的坟场。”Rust 团队为了避免标准库变得臃肿，却无意中将“复杂性”和“审计成本”全部转嫁给了一线开发者。这种“技术洁癖”在处理顶级项目时是美德，但在处理追求效率的通用业务时，却成了巨大的阻碍。</p>
<h2>Go vs Rust：工业生产力的两种极致审美</h2>
<p>为什么 Go 能在 RedMonk 榜单上稳坐第 12，而 Rust 只能在第 20 徘徊？</p>
<p>这是两种完全不同的<strong>工程学审美</strong>，也决定了它们在大规模协作中的不同命运：</p>
<ul>
<li><strong>Go 的审美是“工厂流水线”</strong>：它不鼓励个人英雄主义，它用 gofmt 强制所有人的代码长得一模一样。它追求的是<strong>“平均生产力的最大化”</strong>。即便是一个普通水准的程序员，在 Go 的框架下也很难写出摧毁系统的灾难性代码。这种“无聊”和“简单”，正是大厂进行大规模兵团作战时的首选。</li>
<li><strong>Rust 的审美是“顶级艺术工作室”</strong>：它追求极致的精准、极致的控制。每一个 borrow，每一个 lifetime 都是在进行微雕。它追求的是<strong>“个体生产力的上限”</strong>。</li>
</ul>
<p>但在现代软件工业中，<strong>“下限的稳定性”往往比“上限的惊艳度”更具普适价值。</strong> 绝大多数公司需要的不是一个能手搓编译器的天才，而是一群能够按照既定流程、稳健产出、且易于维护代码的合格工程师。</p>
<h2>AI 时代的变数：谁才是对机器最友好的母语？</h2>
<p>RedMonk 的报告里还提出了一个极具前瞻性的观察：<strong>理论上，AI 编码辅助工具应该能抹平 Rust 的学习曲线，但现实并非如此。</strong></p>
<p>为什么？</p>
<p>大模型（LLM）的本质是模式识别和概率预测。</p>
<p>对于语法单一、推崇“唯一路径”的 Go 语言来说，AI 生成的代码准确率极高，且人类审查的认知负荷极低。</p>
<p>而对于规则极其复杂、生命周期标记繁琐的 Rust 来说，AI 生成的代码极易出现“微妙的语法错误”或“不地道的生命周期设计”。人类开发者在审查 AI 生成的 Rust 代码时，往往比自己重写一遍还要痛苦。</p>
<p>在“机器写代码”即将接管开发流程的未来，简单、标准、甚至有些“死板”的语言，反而拥有更宽、更深的护城河。《<a href="https://tonybai.com/2026/04/23/hashicorp-founder-admits-go-is-alive-thanks-to-ai/">HashiCorp 创始人亲口“认错”：AI 让我重新爱上了 Go (文末福利)</a>》一文中Hashicorp创始人Mitchell Hashimoto 因 AI 重新爱上Go，以及Pandas 之父近期更喜欢让 AI 用Go写代码也印证了这一点。</p>
<h2>小结：架构师的清醒与权衡</h2>
<p>作为一个架构师，我们不必因为 Rust 在榜单上的“冷水”而否定它的伟大。</p>
<p>Rust 正在解决软件工程中最难的问题——在不牺牲性能的前提下，从根源上消灭内存漏洞。它的价值，已经在 Linux 内核和那些“不容有失”的领域得到了证明。</p>
<p>但我们也必须清醒地认识到：<strong>技术的流行度（Popularity）与技术的高级感（Elegance）并不总是正相关。</strong></p>
<p>如果你在构建下一代安全操作系统、数据库内核或高性能边缘网关，Rust 是你不二的利剑。</p>
<p>但如果你在构建一个需要快速迭代、支撑公司核心营收、且由几十甚至上百人协作的后端业务系统，请务必保持客观：那个排名第 12、虽然有些“平庸”但永远能准时交付、且对 AI 极度友好的 Go，或许才是那个更优的工程方案。</p>
<p>再次祭出那句话：你的技术护城河，从来不是由你用什么语言决定的，而是由你解决问题的深度，以及你在各种极端权衡（Trade-offs）中做出的选择决定的。</p>
<p>资料链接：</p>
<ul>
<li>https://blog.goose.love/posts/what-actually-uses-rust/</li>
<li>https://www.reddit.com/r/rust/comments/1sqyjxa/blog_ok_what_actually_uses_rust/</li>
<li>https://redmonk.com/sogrady/2026/04/14/language-rankings-1-26/</li>
</ul>
<hr />
<p><strong>今日互动探讨：</strong></p>
<p>看完这份“人人爱 Rust，但榜单很冷酷”的现实反差，你觉得 Rust 挺进主流最大的障碍是什么？你认为“大标准库”是未来编程语言的必然趋势吗？</p>
<p>欢迎在评论区分享你的看法！</p>
<hr />
<p>还在为写 Agent 框架频频死循环、上下文爆炸而束手无策？我的新专栏 <strong>《<a href="http://gk.link/a/12IzL">从0 开始构建 Agent Harness</a>》</strong> 将带你：</p>
<ul>
<li>抛弃臃肿框架，回归“驾驭工程 (Harness Engineering)”的第一性原理</li>
<li>用 Go 语言手写 ReAct 循环、并发拦截与上下文压缩引擎等，复刻极简OpenClaw</li>
<li>构建坚不可摧的 Safety Middleware 与飞书人工审批防线</li>
<li>在底层实现 Token 成本审计、链路追踪与自动化跑分评估</li>
<li>从“调包侠”进化为掌控大模型边界的“AI 操作系统架构师”</li>
</ul>
<p>扫描下方二维码，开启从 0 开始构建Agent Harness 的实战之旅。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/build-agent-harness-from-scratch-qr.png" alt="" /></p>
<hr />
<p><strong>原「Gopher部落」已重装升级为「Go &amp; AI 精进营」知识星球，快来加入星球，开启你的技术跃迁之旅吧！</strong></p>
<p>我们致力于打造一个高品质的 <strong>Go 语言深度学习</strong> 与 <strong>AI 应用探索</strong> 平台。在这里，你将获得：</p>
<ul>
<li><strong>体系化 Go 核心进阶内容:</strong> 深入「Go原理课」、「Go进阶课」、「Go避坑课」等独家深度专栏，夯实你的 Go 内功。</li>
<li><strong>前沿 Go+AI 实战赋能:</strong> 紧跟时代步伐，学习「Go+AI应用实战」、「Agent开发实战课」、「Agentic软件工程课」、「Claude Code开发工作流实战课」、「OpenClaw实战分享」等，掌握 AI 时代新技能。 </li>
<li><strong>星主 Tony Bai 亲自答疑:</strong> 遇到难题？星主第一时间为你深度解析，扫清学习障碍。</li>
<li><strong>高活跃 Gopher 交流圈:</strong> 与众多优秀 Gopher 分享心得、讨论技术，碰撞思想火花。</li>
<li><strong>独家资源与内容首发:</strong> 技术文章、课程更新、精选资源，第一时间触达。</li>
</ul>
<p>衷心希望「Go &amp; AI 精进营」能成为你学习、进步、交流的港湾。让我们在此相聚，享受技术精进的快乐！欢迎你的加入！</p>
<p><img src="http://image.tonybai.com/img/tonybai/gopher-and-ai-tribe-zsxq-small-card.jpg" alt="img{512x368}" /></p>
<hr />
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求，请扫描下方公众号二维码，与我私信联系。</p>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p style='text-align:left'>&copy; 2026, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2026/04/25/rust-popularity-vs-redmonk-ranking-reality-check/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rust 还没进前十，TIOBE 就开始唱衰了？</title>
		<link>https://tonybai.com/2026/04/17/tiobe-ranking-and-the-decline-of-rust-hype/</link>
		<comments>https://tonybai.com/2026/04/17/tiobe-ranking-and-the-decline-of-rust-hype/#comments</comments>
		<pubDate>Thu, 16 Apr 2026 23:36:54 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[BorrowChecker]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[LearningCurve]]></category>
		<category><![CDATA[MemorySafety]]></category>
		<category><![CDATA[ownership]]></category>
		<category><![CDATA[PaulJansen]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[ProgrammingLanguageRankings]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[SearchEngines]]></category>
		<category><![CDATA[SearchVolume]]></category>
		<category><![CDATA[SoftwareEngineering]]></category>
		<category><![CDATA[SurvivorBias]]></category>
		<category><![CDATA[SystemProgramming]]></category>
		<category><![CDATA[TIOBE]]></category>
		<category><![CDATA[借用检查器]]></category>
		<category><![CDATA[内存安全]]></category>
		<category><![CDATA[学习曲线]]></category>
		<category><![CDATA[幸存者偏差]]></category>
		<category><![CDATA[所有权]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[搜索量]]></category>
		<category><![CDATA[生产力]]></category>
		<category><![CDATA[系统编程]]></category>
		<category><![CDATA[编程语言排行]]></category>
		<category><![CDATA[软件工程]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=6190</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2026/04/17/tiobe-ranking-and-the-decline-of-rust-hype 大家好，我是Tony Bai。 过去几年，技术圈最热门的“猜谜游戏”之一，就是预测 Rust 什么时候能杀入 TIOBE 排行榜的前十。 这门被誉为“天选之子”的语言，连续多年霸榜 Stack Overflow“最受喜爱”的宝座，被微软、亚马逊等巨头奉为重写底层基础设施的“银弹”。所有人都觉得，它冲进前十，只是时间问题。 但就在最近，TIOBE 指数发布了 2026 年 4 月的最新排名。 榜单本身平平无奇，Rust 的排名甚至还从去年同期的 18 位微升到了 今年的16 位。 然而，TIOBE 的 CEO Paul Jansen 亲自撰写的一篇社论，却像一盆冷水，劈头盖脸地浇在了所有 Rustacean（Rust 开发者）的头上。 Paul Jansen 用极其明确的措辞，给这门甚至还没来得及摸到前十门槛的语言，提前下了一份“病危通知书”： “Rust 的崛起显示出放缓的迹象。……它进入前十的梦想，现在看来比以前更加遥远了。” 这篇社论，瞬间引爆了全网的讨论。 无数 Rust 开发者感到匪夷所思，甚至有些愤怒：我们还没真正发力，你怎么就开始唱衰了？ 这背后，到底是 TIOBE 对技术趋势的精准预判，还是这把统治了我们十几年的“认知标尺”，已经彻底失灵了？ 今天，我们就来扒开这张榜单的底裤，看看在喧嚣的数据背后，Rust 的真实处境，究竟是怎样的。 官方的“诊断书”：Rust 的“阿喀琉斯之踵” 我们先来看看 TIOBE CEO Paul Jansen 的“诊断报告”。 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/2026/tiobe-ranking-and-the-decline-of-rust-hype-1.png" alt="" /></p>
<p><a href="https://tonybai.com/2026/04/17/tiobe-ranking-and-the-decline-of-rust-hype">本文永久链接</a> &#8211; https://tonybai.com/2026/04/17/tiobe-ranking-and-the-decline-of-rust-hype</p>
<p>大家好，我是Tony Bai。</p>
<p>过去几年，技术圈最热门的“猜谜游戏”之一，就是预测 Rust 什么时候能杀入 TIOBE 排行榜的前十。</p>
<p>这门被誉为“天选之子”的语言，连续多年霸榜 Stack Overflow“最受喜爱”的宝座，被微软、亚马逊等巨头奉为重写底层基础设施的“银弹”。所有人都觉得，它冲进前十，只是时间问题。</p>
<p>但就在最近，TIOBE 指数发布了 2026 年 4 月的最新排名。</p>
<p>榜单本身平平无奇，Rust 的排名甚至还从去年同期的 18 位微升到了 今年的16 位。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/tiobe-ranking-and-the-decline-of-rust-hype-2.png" alt="" /></p>
<p>然而，TIOBE 的 CEO Paul Jansen 亲自撰写的一篇社论，却像一盆冷水，劈头盖脸地浇在了所有 Rustacean（Rust 开发者）的头上。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/tiobe-ranking-and-the-decline-of-rust-hype-3.png" alt="" /></p>
<p>Paul Jansen 用极其明确的措辞，给这门甚至还没来得及摸到前十门槛的语言，提前下了一份“病危通知书”：</p>
<blockquote>
<p><strong>“Rust 的崛起显示出放缓的迹象。……它进入前十的梦想，现在看来比以前更加遥远了。”</strong></p>
</blockquote>
<p>这篇社论，瞬间引爆了全网的讨论。</p>
<p>无数 Rust 开发者感到匪夷所思，甚至有些愤怒：<strong>我们还没真正发力，你怎么就开始唱衰了？</strong></p>
<p>这背后，到底是 TIOBE 对技术趋势的精准预判，还是这把统治了我们十几年的“认知标尺”，已经彻底失灵了？</p>
<p>今天，我们就来扒开这张榜单的底裤，看看在喧嚣的数据背后，Rust 的真实处境，究竟是怎样的。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/agentic-api-in-action-qr.png" alt="" /></p>
<h2>官方的“诊断书”：Rust 的“阿喀琉斯之踵”</h2>
<p>我们先来看看 TIOBE CEO Paul Jansen 的“诊断报告”。</p>
<p>他指出，Rust 在今年年初曾一度冲到历史最高排名第 13 位，但仅仅三个月后，就又跌回了第 16 位。</p>
<p>他给出的解释是：</p>
<blockquote>
<p>“一个可能的解释是，尽管 Rust 能够生产出高效和安全的代码，但对于非专家程序员来说，它仍然<strong>难以学习</strong>。虽然专家们愿意投入时间去掌握这门语言，但更广泛的主流采用似乎面临着更大的挑战。”</p>
</blockquote>
<p>这段话，精准地戳中了 Rust 社区最敏感、也最引以为傲的那根神经——<strong>陡峭的学习曲线</strong>。</p>
<p>为了追求极致的内存安全，Rust 发明了极其复杂的“所有权（Ownership）”和“借用检查（Borrow Checker）”系统。这套系统像一个极其严苛的导师，在你编译代码的每一个环节，都对你进行着灵魂拷问。</p>
<p>无数新手在入门 Rust 时，都会经历一段被称为“与编译器搏斗”的痛苦时期。</p>
<p>TIOBE 的观点很明确：<strong>这种“精英主义”的设计哲学，正在成为 Rust “出圈”的最大障碍。</strong></p>
<h2>榜单的原罪：用“百度指数”去衡量火箭科学</h2>
<p>TIOBE 的诊断听起来似乎很有道理。但我们必须先问一个更底层的问题：<strong>TIOBE 指数，到底是个什么东西？</strong></p>
<p>TIOBE 的排名，本质上是一个基于<strong>“搜索引擎查询量”</strong>的指标。它在全球 25 个主流搜索引擎上，统计包含 +”<language> programming” 关键词的页面数量。</p>
<p>看懂了吗？这套诞生于 十多年前的评判标准，在 2026 年的今天，已经<a href="https://tonybai.com/2025/11/14/the-go-ecosystem-in-2025/">变得极其荒谬</a>。</p>
<p>它衡量的是一门语言在公网上的“话题度”和“声量”，而不是它的“真实价值”和“商业应用”。</p>
<p>这就像用“微博热搜”的次数，去评判一位科学家的学术贡献一样可笑。</p>
<p>用这把“旧尺子”去衡量现代编程语言，会产生几个致命的认知偏差：</p>
<p><strong>1. 越是难学、坑越多的语言，排名越高。</strong></p>
<p>这恰恰是 TIOBE 逻辑最诡异的地方。Paul Jansen 一边抱怨 Rust 太难学，一边却忽视了，正是因为“难学”，新用户才会频繁地去 Google 搜索“Rust a lifetime that lives long enough”、“the trait Borrow is not implemented for String”这些令人抓狂的报错信息。</p>
<p>每一次“救命”的搜索，都在为 Rust 的 TIOBE 排名，贡献着宝贵的 KPI。</p>
<p><strong>2. 越是成熟、生态完善的语言，排名越吃亏。</strong></p>
<p>随着一门语言的成熟，它的文档会越来越完善，社区的最佳实践会沉淀下来。开发者遇到的问题，更多地会在官方文档、IDE 提示、或者小圈子的 Slack/Discord 里被解决，而不会产生大量的公开搜索。</p>
<p>没有问题，就没有搜索。没有搜索，就没有 TIOBE 排名。</p>
<p><strong>3. TIOBE 无法衡量“生态位”的价值。</strong></p>
<p>Rust 的江山在哪里？在 Linux 内核里(注：最近发布的Linux Kernel 7.0里，<a href="https://www.fosslinux.com/154929/linux-kernel-7-0-new-features.htm">Rust已经正式转正了</a>！)，在 Windows 的系统组件里，在 Cloudflare 的边缘网络里，在 Figma 的渲染引擎里，在那些对性能和安全要求达到极致的底层基础设施里。</p>
<p>这些领域的开发者，是金字塔尖的系统程序员。他们讨论问题，是在 GitHub Issue、Zulip 频道，而不是在 CSDN 上问“我的 &amp;mut 为什么传不进去”。</p>
<p>Rust 的价值，深藏在那些不会产生大量公开搜索记录的、高壁垒的硬核场景里。而 TIOBE 的爬虫，可能永远也爬不到那里。</p>
<h2>真实的版图：Rust 正在经历一场“青春期的烦恼”</h2>
<p>扒开 TIOBE 的“障眼法”，我们该如何客观看待 Rust 在 2026 年的真实处境？</p>
<p><strong>Rust 并没有“增长放缓”，它只是在经历一场必然的“出圈阵痛”。</strong></p>
<p>任何一门新技术的发展，都会经历两个阶段：</p>
<ol>
<li><strong>从 0 到 1 的“深耕期”</strong>：吸引最硬核、最狂热的一批早期用户，在特定的垂直领域里，将自己的核心优势打磨到极致。Rust 在“系统编程”领域，已经完美地完成了这个阶段。</li>
<li><strong>从 1 到 N 的“出圈期”</strong>：试图将自己的影响力，扩展到更广阔的领域，吸引更多的主流开发者。</li>
</ol>
<p>Rust 现在正处于从阶段一向阶段二过渡的关键时期。它那套为系统编程量身打造的、极致安全的内存管理哲学，在 Web 开发、数据科学、GUI 应用等场景下，确实给很多开发者带来了巨大的心智负担。</p>
<p>Rust 社区内部，关于是否应该为了“易用性”而牺牲部分“极致性”的争论，也从未停止。比如，关于异步运行时的分裂（Tokio vs async-std）、关于<a href="https://tonybai.com/2026/04/09/stop-being-small-and-beautiful-rust-petition-to-learn-from-go">标准库的精简与扩充</a>，都反映了这种“青春期的烦恼”。</p>
<p><strong>Rust 没有停滞，它只是在“成长的十字路口”，在思考自己到底想成为谁。</strong></p>
<h2>我们真正应该关注什么？</h2>
<p>作为身处一线的工程师，我们应该如何看待 TIOBE 的这份“诊断书”？</p>
<p><strong>第一，永远不要把“流行度”作为技术选型的唯一标准。</strong></p>
<p>JavaScript 很流行，但你不会用它去写操作系统内核。COBOL 极其冷门，但全球的银行系统依然跑在它上面，顶级 COBOL 程序员的薪资高得吓人。</p>
<p><strong>技术的价值，永远取决于它在特定场景下，解决了多大规模、多高难度的商业问题。</strong></p>
<p><strong>第二，警惕“易用性”的陷阱。</strong></p>
<p>Go、Python 很简单。但这种简单，可能是以牺牲“运行时安全保证”（比如Python 的动态类型、Go的Nil指针等）为代价的。</p>
<p>Rust 的“难”，恰恰是把所有可能在深夜引发线上雪崩的风险，全部前置到了编译阶段。它用“编译时的痛苦”，换取了“运行时的安宁”。</p>
<p>这种设计哲学，对于金融交易、底层基础设施、航空航天等“不容有失”的领域来说，是无价之宝。</p>
<p><strong>第三，对自己的成长负责，而不是对榜单负责。</strong></p>
<p>与其每个月焦虑地刷新 TIOBE 的排名，不如去问自己几个更本质的问题：</p>
<ul>
<li>我所处的行业，未来 3-5 年最核心的技术瓶颈是什么？</li>
<li>为了解决这些瓶颈，我需要掌握哪些不可替代的底层能力？</li>
<li>哪门语言的生态和哲学，与这个方向最契合？</li>
</ul>
<p><strong>你的技术护城河，从来不是由 TIOBE 的排名决定的，而是由你所处行业以及要解决问题的深度决定的。</strong></p>
<h2>小结：你的价值，与榜单无关</h2>
<p>TIOBE 的这份榜单，与其说是一份严肃的技术报告，不如说是一场成功的“引流狂欢”。</p>
<p>它用一个看似客观的数据，精准地挑动了每个程序员心中最敏感的那根“身份焦虑”神经。</p>
<p>但作为身处一线的工程师，我们必须保持清醒。</p>
<p><strong>衡量一门技术价值的唯一标准，从来不是它在搜索引擎上的热度，而是它在真实的商业世界里，解决了多大、多复杂、多有价值的问题。</strong></p>
<p>当你在用 Rust 构建着下一代安全操作系统，或者用它重写着公司最核心的交易引擎时，你根本无需关心 TIOBE 上的排名是 16 还是 60。</p>
<p>因为你正在创造的价值，早已不是这些过时的“声量指标”所能衡量的。</p>
<p><strong>你的技术栈没有背叛你，但你的认知，可能会。</strong></p>
<hr />
<p><strong>今日互动探讨：</strong></p>
<p>你觉得 TIOBE 对 Rust“增长放缓”的判断准确吗？你认为 Rust 陡峭的学习曲线，是它最大的优势，还是最大的障碍？</p>
<p>欢迎在评论区分享你的看法！</p>
<hr />
<p>还在为“复制粘贴喂AI”而烦恼？我的新专栏 <strong>《<a href="http://gk.link/a/12EPd">AI原生开发工作流实战</a>》</strong> 将带你：</p>
<ul>
<li>告别低效，重塑开发范式</li>
<li>驾驭AI Agent(Claude Code)，实现工作流自动化</li>
<li>从“AI使用者”进化为规范驱动开发的“工作流指挥家”</li>
</ul>
<p>扫描下方二维码，开启你的AI原生开发之旅。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2025/ai-native-dev-workflow-qr.png" alt="" /></p>
<hr />
<p><strong>原「Gopher部落」已重装升级为「Go &amp; AI 精进营」知识星球，快来加入星球，开启你的技术跃迁之旅吧！</strong></p>
<p>我们致力于打造一个高品质的 <strong>Go 语言深度学习</strong> 与 <strong>AI 应用探索</strong> 平台。在这里，你将获得：</p>
<ul>
<li><strong>体系化 Go 核心进阶内容:</strong> 深入「Go原理课」、「Go进阶课」、「Go避坑课」等独家深度专栏，夯实你的 Go 内功。</li>
<li><strong>前沿 Go+AI 实战赋能:</strong> 紧跟时代步伐，学习「Go+AI应用实战」、「Agent开发实战课」、「Agentic软件工程课」、「Claude Code开发工作流实战课」、「OpenClaw实战分享」等，掌握 AI 时代新技能。 </li>
<li><strong>星主 Tony Bai 亲自答疑:</strong> 遇到难题？星主第一时间为你深度解析，扫清学习障碍。</li>
<li><strong>高活跃 Gopher 交流圈:</strong> 与众多优秀 Gopher 分享心得、讨论技术，碰撞思想火花。</li>
<li><strong>独家资源与内容首发:</strong> 技术文章、课程更新、精选资源，第一时间触达。</li>
</ul>
<p>衷心希望「Go &amp; AI 精进营」能成为你学习、进步、交流的港湾。让我们在此相聚，享受技术精进的快乐！欢迎你的加入！</p>
<p><img src="http://image.tonybai.com/img/tonybai/gopher-and-ai-tribe-zsxq-small-card.jpg" alt="img{512x368}" /></p>
<hr />
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求，请扫描下方公众号二维码，与我私信联系。</p>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p style='text-align:left'>&copy; 2026, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2026/04/17/tiobe-ranking-and-the-decline-of-rust-hype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>离了大谱！Go 一年之内从第 7 掉到第 16</title>
		<link>https://tonybai.com/2026/01/10/go-dropped-from-7th-to-16th-in-one-year/</link>
		<comments>https://tonybai.com/2026/01/10/go-dropped-from-7th-to-16th-in-one-year/#comments</comments>
		<pubDate>Sat, 10 Jan 2026 00:19:34 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[AISearch]]></category>
		<category><![CDATA[ChatGPT]]></category>
		<category><![CDATA[Claude]]></category>
		<category><![CDATA[deepseek]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[GitHubOctoverse]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Gopher]]></category>
		<category><![CDATA[JetBrains]]></category>
		<category><![CDATA[ObjectPascal]]></category>
		<category><![CDATA[Ranking]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Stackoverflow]]></category>
		<category><![CDATA[TIOBE]]></category>
		<category><![CDATA[VisualBasic]]></category>
		<category><![CDATA[云原生]]></category>
		<category><![CDATA[内容农场]]></category>
		<category><![CDATA[分级图]]></category>
		<category><![CDATA[占比跌幅]]></category>
		<category><![CDATA[干货密度]]></category>
		<category><![CDATA[开发者调查]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[搜索结果]]></category>
		<category><![CDATA[流媒体时代]]></category>
		<category><![CDATA[流行度]]></category>
		<category><![CDATA[算法游戏]]></category>
		<category><![CDATA[编程社区]]></category>
		<category><![CDATA[编程语言排行榜]]></category>
		<category><![CDATA[语义分析]]></category>
		<category><![CDATA[遗留系统]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=5699</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2026/01/10/go-dropped-from-7th-to-16th-in-one-year 大家好，我是Tony Bai。 新年伊始，TIOBE 发布了最新的编程语言排行榜。当我满怀期待地去寻找 Go 的身影时，差点以为自己眼花了： Go 居然从去年的第 7 名，断崖式下跌到了第 16 名！ 占比跌幅高达 1.37%，在这个榜单上几乎是“崩盘”级别的表现。 这是什么概念？这意味着在 TIOBE 的统计里，Go 现在的流行度还不如 Delphi/Object Pascal（第 9 名）和 Visual Basic（第 7 名）。 这就很离谱了。任何一个在 2025 年还在写代码的人，都不会觉得 Go 的生态已经萎缩到这种地步。 是 Go真的凉了吗？还是 TIOBE 的算法“疯”了？ 平行宇宙：稳如泰山的 Go 为了验证我的认知是否出现了偏差，我特意查阅了 2025 年其他的权威榜单： GitHub Octoverse：Go 依然稳居前 10，云原生领域的统治地位不可撼动。 Stack Overflow 开发者调查：Go 在“最想学习的语言”和“薪资最高语言”中依然名列前茅。 JetBrains 生态报告：Go 开发者的数量在持续稳步增长，并登顶“最受期待”榜首，没有任何衰退迹象。 全世界都觉得 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/2026/go-dropped-from-7th-to-16th-in-one-year-1.png" alt="" /></p>
<p><a href="https://tonybai.com/2026/01/10/go-dropped-from-7th-to-16th-in-one-year">本文永久链接</a> &#8211; https://tonybai.com/2026/01/10/go-dropped-from-7th-to-16th-in-one-year</p>
<p>大家好，我是Tony Bai。</p>
<p>新年伊始，TIOBE 发布了最新的编程语言排行榜。当我满怀期待地去寻找 Go 的身影时，差点以为自己眼花了：</p>
<p><strong>Go 居然从去年的第 7 名，断崖式下跌到了第 16 名！</strong> 占比跌幅高达 1.37%，在这个榜单上几乎是“崩盘”级别的表现。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/go-dropped-from-7th-to-16th-in-one-year-2.png" alt="" /></p>
<p>这是什么概念？这意味着在 TIOBE 的统计里，Go 现在的流行度还不如 <strong>Delphi/Object Pascal</strong>（第 9 名）和 <strong>Visual Basic</strong>（第 7 名）。</p>
<p>这就很离谱了。任何一个在 2025 年还在写代码的人，都不会觉得 Go 的生态已经萎缩到这种地步。</p>
<p>是 Go真的凉了吗？还是 TIOBE 的算法“疯”了？</p>
<p><img src="https://tonybai.com/wp-content/uploads/2026/distributed-system-guide-qr.png" alt="img{512x368}" /></p>
<h2>平行宇宙：稳如泰山的 Go</h2>
<p>为了验证我的认知是否出现了偏差，我特意查阅了 2025 年其他的权威榜单：</p>
<ul>
<li>GitHub Octoverse：Go 依然稳居前 10，云原生领域的统治地位不可撼动。</li>
<li><a href="https://tonybai.com/2025/06/20/redmonk-index-2025-jan/">Stack Overflow 开发者调查</a>：Go 在“最想学习的语言”和“薪资最高语言”中依然名列前茅。</li>
<li><a href="https://tonybai.com/2025/10/23/go-language-leads-jetbrains-trends">JetBrains 生态报告</a>：Go 开发者的数量在持续稳步增长，并<a href="https://tonybai.com/2025/10/23/go-language-leads-jetbrains-trends">登顶“最受期待”榜首</a>，没有任何衰退迹象。</li>
</ul>
<p>全世界都觉得 Go 挺好，唯独 TIOBE 觉得 Go 要完。这种巨大的反差，逼得我不得不去扒一扒 TIOBE 的底裤——它的排名算法到底是怎么算的？</p>
<h2>扒皮 TIOBE：一个过时的算法游戏</h2>
<p>根据 <a href="https://www.tiobe.com/tiobe-index/programminglanguages_definition">TIOBE 官方公布的定义文档</a>，它的算法极其简单粗暴，甚至可以说——<strong>在 2026 年显得有些可笑</strong>。</p>
<p>它的核心逻辑只有一个公式：</p>
<p><strong>在 25 个主流搜索引擎中，搜索 +”<language> programming”，统计返回的页面数量。</strong></p>
<p>就是这么简单。没有什么复杂的加权，没有什么开发者活跃度分析，就是数一数搜索引擎告诉你“有多少个网页提到了这个语言”。</p>
<p>这种算法在 20 年前或许有效，但在今天，它成为了导致 Go 排名暴跌的元凶。</p>
<h3>元凶一：AI 杀死了“搜索结果页”</h3>
<p>2025 年最大的变化是什么？是 <strong>AI Search</strong>。</p>
<p>当我们遇到编程问题时，越来越多的人不再去 Google 翻阅那几百万个搜索结果页面，而是直接问 ChatGPT、Claude 或者 DeepSeek。<br />
<strong>TIOBE 明确表示：ChatGPT 等 AI 工具不被纳入统计，因为它们没有“返回结果数量”的计数器。</strong></p>
<p>这就导致了一个悖论：<strong>越是热门、现代的语言（如 Go、Python(得益于AI模型训练与应用开发)），其用户群体越年轻、越拥抱新技术，也就越倾向于用 AI 解决问题。</strong> 这直接导致了这些语言在传统搜索引擎中的“查询热度”和“新内容生成量”出现显著下降。</p>
<p>相比之下，那些老旧的语言（如 VB、Delphi），其用户群体相对固化，且维护遗留系统时更多依赖传统的文档和论坛搜索，因此受到的冲击较小，甚至在对比中显得“逆势上扬”。</p>
<blockquote>
<p>注：Python的占比相对于2025.01也下降了0.68%。</p>
</blockquote>
<h3>元凶二：Go 的名字太“吃亏”了</h3>
<p>TIOBE 的核心搜索查询是 +”<language> programming”。</p>
<p>这对于 Python、Java 这种专有名词来说问题不大。但对于 <strong>Go</strong> 来说，这就是个灾难。</p>
<ul>
<li><strong>通用词的悲剧</strong>：Go 是一个极其通用的英语单词。为了过滤掉“去（go）”的含义，TIOBE 必须强制加上 “programming” 后缀。</li>
<li><strong>搜索习惯的改变</strong>：但在 2025 年，开发者还会搜 “Go programming” 吗？不会了。大家搜的是 “Go generics”、”Golang k8s”、”Goroutine leak”。</li>
<li><strong>不成比例的过滤</strong>：随着搜索引擎算法日益智能，它开始更精准地理解用户意图，不再机械地匹配 “Go programming” 这个短语。这导致大量讨论 Go 技术的高质量页面（但没有显式包含该短语）被 TIOBE 的简单算法无情过滤。而像 “Python programming” 这种组合，因为 Python 本身的高辨识度，受到的影响要小得多。</li>
</ul>
<h3>元凶三：搜索引擎的“去水化”</h3>
<p>Google 等搜索引擎在 2025 年大幅调整了算法，致力于打击 SEO 内容农场和低质量生成的页面。</p>
<p>Go 作为一个在云原生时代极速窜红的语言，过去几年充斥着大量的入门教程、培训班广告和搬运文章。搜索引擎的这一波“清洗”，可能<strong>不成比例地删除了大量包含 “Go programming” 关键词的低质、重复页面</strong>。</p>
<p><strong>虽然页面总量少了，但生态的“干货密度”其实更高了。</strong> 然而，在 TIOBE 这种只看“数量”不看“质量”的算法眼里，这就被简单粗暴地解读为“热度暴跌”。而那些生态早已固化、鲜有新内容产生的老语言，反而躲过了这一劫。</p>
<blockquote>
<p>注：以上也是笔者的主观分析，不一定与事实相符！</p>
</blockquote>
<h2>小结：看个乐呵就行</h2>
<p>把 Go 排在 Visual Basic 后面，这本身就是一个笑话。</p>
<p>TIOBE 的这次排名暴跌，反映的不是 Go 语言的衰落，而是 <strong>TIOBE 这种基于“网页搜索量”的统计方法，在 AI 和现代互联网面前的全面崩塌。</strong></p>
<p>它就像一个依然在用“收音机收听率”来衡量流行音乐热度的老人，已经无法捕捉流媒体时代的脉搏。</p>
<p>所以，各位 Gopher，该写代码写代码，该摸鱼摸鱼。Go 好着呢，别被这个离谱的排名吓到了。</p>
<hr />
<p><strong>你的“体感”排名</strong></p>
<p>TIOBE 的数据确实让人啼笑皆非。<strong>在你心目中，Go 语言现在的真实热度应该排第几？你觉得还有哪个榜单能更客观地反映编程语言的现状？</strong></p>
<p><strong>欢迎在评论区晒出你的“心选榜单”，或者尽情吐槽这个离谱的排名！</strong></p>
<p><strong>如果这篇文章解开了你心中的疑惑，别忘了点个【赞】和【在看】，并转发给那些正在唱衰 Go 的朋友，打脸要快！</strong></p>
<hr />
<p>还在为“复制粘贴喂AI”而烦恼？我的新专栏 <strong>《<a href="http://gk.link/a/12EPd">AI原生开发工作流实战</a>》</strong> 将带你：</p>
<ul>
<li>告别低效，重塑开发范式</li>
<li>驾驭AI Agent(Claude Code)，实现工作流自动化</li>
<li>从“AI使用者”进化为规范驱动开发的“工作流指挥家”</li>
</ul>
<p>扫描下方二维码，开启你的AI原生开发之旅。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2025/ai-native-dev-workflow-qr.png" alt="" /></p>
<hr />
<p>你的Go技能，是否也卡在了“熟练”到“精通”的瓶颈期？</p>
<ul>
<li>想写出更地道、更健壮的Go代码，却总在细节上踩坑？</li>
<li>渴望提升软件设计能力，驾驭复杂Go项目却缺乏章法？</li>
<li>想打造生产级的Go服务，却在工程化实践中屡屡受挫？</li>
</ul>
<p>继《<a href="http://gk.link/a/10AVZ">Go语言第一课</a>》后，我的《<a href="http://gk.link/a/12yGY">Go语言进阶课</a>》终于在极客时间与大家见面了！</p>
<p>我的全新极客时间专栏 《<a href="http://gk.link/a/12yGY">Tony Bai·Go语言进阶课</a>》就是为这样的你量身打造！30+讲硬核内容，带你夯实语法认知，提升设计思维，锻造工程实践能力，更有实战项目串讲。</p>
<p>目标只有一个：助你完成从“Go熟练工”到“Go专家”的蜕变！ 现在就加入，让你的Go技能再上一个新台阶！</p>
<p><img src="https://tonybai.com/wp-content/uploads/course-card/iamtonybai-banner-2.gif" alt="" /></p>
<hr />
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求，请扫描下方公众号二维码，与我私信联系。</p>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p style='text-align:left'>&copy; 2026, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2026/01/10/go-dropped-from-7th-to-16th-in-one-year/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Go 跌出 TIOBE 前十？别被排名骗了，这才是它的真实地位</title>
		<link>https://tonybai.com/2025/12/11/is-golang-still-a-growing-programming-language/</link>
		<comments>https://tonybai.com/2025/12/11/is-golang-still-a-growing-programming-language/#comments</comments>
		<pubDate>Wed, 10 Dec 2025 23:19:23 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[backend]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[cli]]></category>
		<category><![CDATA[cloudnative]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[infrastructure]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JetBrains]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[machinelearning]]></category>
		<category><![CDATA[Melkey]]></category>
		<category><![CDATA[Microservices]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[PyTorch]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[Stackoverflow]]></category>
		<category><![CDATA[TensorFlow]]></category>
		<category><![CDATA[TIOBE]]></category>
		<category><![CDATA[WebServices]]></category>
		<category><![CDATA[云原生]]></category>
		<category><![CDATA[基础设施]]></category>
		<category><![CDATA[工程能力]]></category>
		<category><![CDATA[开源项目]]></category>
		<category><![CDATA[排名]]></category>
		<category><![CDATA[稳态]]></category>
		<category><![CDATA[第二语言]]></category>
		<category><![CDATA[薪资]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=5512</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2025/12/11/is-golang-still-a-growing-programming-language 大家好，我是Tony Bai。 Go 语言是否已经触到了天花板？在 Python 借力 AI 狂飙突进、Rust 备受追捧的今天，Go 的位置究竟在哪里？近日，Twitch工程师 Melkey 结合 JetBrains、Stack Overflow 以及 GitHub 的最新数据，发布了一份关于 Go 语言现状的深度分析。结论或许并不全是“好消息”，但却极其真实地反映了 Go 在工业界的稳固地位。 谁在用 Go？—— “云原生土著”的画像 JetBrains 的年度报告揭示了 Go 开发者的主要分布领域。数据显示，排名前三的应用场景分别是： Web 服务（无 GUI） 网站后端 云服务与基础设施 Melkey指出，尤其是第三点——云服务，最能代表 Go 的核心竞争力。这与行业内的普遍印象高度一致：专业的 Go 开发者往往不仅仅是在编写业务逻辑，更多时候是在与 Kubernetes 集群、微服务架构、CI/CD 管道以及各类 CLI 工具打交道。 如果说 Python 是数据科学的通用语，那么 Go 已经牢牢确立了自己作为“云时代 C 语言”的地位——它是构建现代基础设施的首选工具。 新手不再爱 Go？—— [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/2025/is-golang-still-a-growing-programming-language-1.png" alt="" /></p>
<p><a href="https://tonybai.com/2025/12/11/is-golang-still-a-growing-programming-language">本文永久链接</a> &#8211; https://tonybai.com/2025/12/11/is-golang-still-a-growing-programming-language</p>
<p>大家好，我是Tony Bai。</p>
<p>Go 语言是否已经触到了天花板？在 Python 借力 AI 狂飙突进、Rust 备受追捧的今天，Go 的位置究竟在哪里？近日，<a href="https://tonybai.com/2025/07/04/everything-i-did-to-become-an-expert-in-golang">Twitch工程师 Melkey</a> 结合 <a href="https://tonybai.com/2025/11/14/the-go-ecosystem-in-2025/">JetBrains</a>、Stack Overflow 以及 GitHub 的最新数据，发布了<a href="https://www.youtube.com/watch?v=QjGduiCFHY4">一份关于 Go 语言现状的深度分析</a>。结论或许并不全是“好消息”，但却极其真实地反映了 Go 在工业界的稳固地位。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2025/paid/api-design-pattern-and-implementation-qr.png" alt="" /></p>
<h2>谁在用 Go？—— “云原生土著”的画像</h2>
<p><a href="https://tonybai.com/2025/11/14/the-go-ecosystem-in-2025/">JetBrains 的年度报告</a>揭示了 Go 开发者的主要分布领域。数据显示，排名前三的应用场景分别是：</p>
<ol>
<li><strong>Web 服务（无 GUI）</strong></li>
<li><strong>网站后端</strong></li>
<li><strong>云服务与基础设施</strong></li>
</ol>
<p>Melkey指出，尤其是第三点——<strong>云服务</strong>，最能代表 Go 的核心竞争力。这与行业内的普遍印象高度一致：专业的 Go 开发者往往不仅仅是在编写业务逻辑，更多时候是在与 Kubernetes 集群、微服务架构、CI/CD 管道以及各类 CLI 工具打交道。</p>
<p>如果说 Python 是数据科学的通用语，那么 Go 已经牢牢确立了自己作为<strong>“<a href="https://tonybai.com/2024/08/17/go-the-c-language-of-the-internet-era-come-true/">云时代 C 语言</a>”</strong>的地位——它是构建现代基础设施的首选工具。</p>
<h2>新手不再爱 Go？—— 一个值得注意的信号</h2>
<p>在解读 Stack Overflow 2025 开发者调查时，Melkey敏锐地发现了一个略显尴尬的趋势。</p>
<p>虽然在所有受访者中，Go 的使用率约为 <strong>16.4%</strong>，但在<strong>“正在学习编程的人”</strong>（Learning to Code）这一群体中，Go 的排名出现了显著下滑。绝大多数编程新手的入门首选依然是 Python 或 JavaScript。</p>
<p>然而，这并不意味着 Go 的衰落。相反，数据显示，在<strong>“专业开发者”</strong>群体中，Go 的使用率上升到了 <strong>17%</strong>。</p>
<p>Melkey分析认为，这意味着 Go 正逐渐成为一种<strong>“第二语言”</strong>。它不再是很多人的“初恋”语言，而是开发者在掌握了编程基础后，为了追求高性能、高并发和工程化能力而进阶选择的“成熟伴侣”。</p>
<h2>薪资高，但别被“头衔”骗了</h2>
<p>分享中提到，在美国，Go 开发者的年薪上限可达 <strong>50 万美元</strong>，平均薪资也极具竞争力。</p>
<p>但Melkey对此提出了冷静的见解。他指出，如果在 LinkedIn 等招聘平台上搜索，会发现纯粹招募“Golang Developer”的岗位并没有想象中那么多。大多数高薪岗位实际上招募的是<strong>“资深后端工程师”</strong>或<strong>“云基础设施专家”</strong>。</p>
<p>这传递了一个明确的信号：市场不缺会写 if err != nil 的程序员，缺的是懂分布式系统、懂架构、能解决复杂问题，并且<strong>恰好使用 Go 作为工具</strong>的工程师。真正值钱的不是 Go 的语法，而是用 Go 解决工程问题的能力。</p>
<h2>TIOBE 排名下滑 vs GitHub 活跃度上升</h2>
<p>数据层面出现了一个有趣的“冲突”。</p>
<p>在老牌的 TIOBE 指数2025年11月份数据中，Go 从去年的第 7 名下滑至今年的 <strong>第 11 名</strong>，跌出了前十。这似乎是一个危险的信号。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2025/is-golang-still-a-growing-programming-language-2.png" alt="" /></p>
<p>但如果转向 GitHub 的数据，Go 依然是<strong>开源项目活动增长最快的前三名语言</strong>（仅次于 Python 和 TypeScript）。GitHub 的趋势图显示，Go 的生态活跃度保持着陡峭的上升曲线，没有减速迹象。</p>
<p>Melkey认为，TIOBE 可能反映了大众搜索的热度，但 GitHub 反映的是<strong>开发者用脚投票</strong>的结果。Go 的生态依然在蓬勃发展，只是不再像早期那样具有话题性和炒作度，而是进入了成熟期和深耕期。</p>
<h2>AI 时代：Go 是“铲子商”，不是“淘金者”</h2>
<p>在 AI 席卷全球的当下，Go 的位置在哪里？Melkey给出了精准的定位：<strong>“Go 在构建 AI 基础设施方面表现出色，但缺乏原生的机器学习解决方案。”</strong></p>
<p>Melkey结合自己在 Twitch 构建 ML 基础设施的经历印证了这一点：在 AI 领域，Python 用于模型训练（得益于 PyTorch, TensorFlow 等库），而 Go 则用于<strong>部署模型、构建大规模并发的推理服务</strong>以及搭建底层的 <strong>ML 基础设施</strong>。</p>
<p>Go 不会取代 Python 成为 AI 训练的语言，但在 AI 落地、服务化、工程化的“最后一公里”，Go 是绝对的主力。</p>
<h2>小结：Go 的未来是“稳态”</h2>
<p><img src="https://tonybai.com/wp-content/uploads/2025/is-golang-still-a-growing-programming-language-3.png" alt="" /></p>
<p>基于上述数据，Melkey给出了自己的最终结论：</p>
<p><strong>Go 不会消失，但也别指望它能像火箭一样再次爆发式增长。</strong></p>
<p>它不会取代 Python 或 TypeScript 成为统治一切的通用语言。它正在进入一个<strong>“稳态”</strong>。在云原生、后端服务和基础设施领域，Go 已经建立了坚不可摧的壁垒。对于追求职业发展的工程师而言，它依然是一个稳定、高效且回报丰厚的选择。</p>
<p>Go 的未来，或许不再是“无处不在”，但注定是<strong>“不可或缺”</strong>。</p>
<p>资料链接：https://www.youtube.com/watch?v=QjGduiCFHY4</p>
<hr />
<p><strong>你的体感如何？</strong></p>
<p>数据是宏观的，但体感是微观的。</p>
<p>在你所在的公司或团队，Go 语言的使用是在扩张还是收缩？你认为 Go 在 AI 时代最大的机会是什么？</p>
<p>欢迎在评论区分享你的观察，让我们一起拼凑出更真实的 Go 生态图景！</p>
<hr />
<p>还在为“复制粘贴喂AI”而烦恼？我的新专栏 <strong>《<a href="http://gk.link/a/12EPd">AI原生开发工作流实战</a>》</strong> 将带你：</p>
<ul>
<li>告别低效，重塑开发范式</li>
<li>驾驭AI Agent(Claude Code)，实现工作流自动化</li>
<li>从“AI使用者”进化为规范驱动开发的“工作流指挥家”</li>
</ul>
<p>扫描下方二维码，开启你的AI原生开发之旅。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2025/ai-native-dev-workflow-qr.png" alt="" /></p>
<hr />
<p>你的Go技能，是否也卡在了“熟练”到“精通”的瓶颈期？</p>
<ul>
<li>想写出更地道、更健壮的Go代码，却总在细节上踩坑？</li>
<li>渴望提升软件设计能力，驾驭复杂Go项目却缺乏章法？</li>
<li>想打造生产级的Go服务，却在工程化实践中屡屡受挫？</li>
</ul>
<p>继《<a href="http://gk.link/a/10AVZ">Go语言第一课</a>》后，我的《<a href="http://gk.link/a/12yGY">Go语言进阶课</a>》终于在极客时间与大家见面了！</p>
<p>我的全新极客时间专栏 《<a href="http://gk.link/a/12yGY">Tony Bai·Go语言进阶课</a>》就是为这样的你量身打造！30+讲硬核内容，带你夯实语法认知，提升设计思维，锻造工程实践能力，更有实战项目串讲。</p>
<p>目标只有一个：助你完成从“Go熟练工”到“Go专家”的蜕变！ 现在就加入，让你的Go技能再上一个新台阶！</p>
<p><img src="https://tonybai.com/wp-content/uploads/course-card/iamtonybai-banner-2.gif" alt="" /></p>
<hr />
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求，请扫描下方公众号二维码，与我私信联系。</p>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p style='text-align:left'>&copy; 2025, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2025/12/11/is-golang-still-a-growing-programming-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>从线下到线上，我的“Go语言进阶课”终于在极客时间与大家见面了！</title>
		<link>https://tonybai.com/2025/05/12/go-advanced-course/</link>
		<comments>https://tonybai.com/2025/05/12/go-advanced-course/#comments</comments>
		<pubDate>Mon, 12 May 2025 00:33:56 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Channel]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[gopherchina]]></category>
		<category><![CDATA[GopherCon]]></category>
		<category><![CDATA[goroutine]]></category>
		<category><![CDATA[Go语言进阶课]]></category>
		<category><![CDATA[Go高级工程师必修课]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[MCP]]></category>
		<category><![CDATA[Package]]></category>
		<category><![CDATA[pitfall]]></category>
		<category><![CDATA[Pointer]]></category>
		<category><![CDATA[Slice]]></category>
		<category><![CDATA[TIOBE]]></category>
		<category><![CDATA[trap]]></category>
		<category><![CDATA[TypeScript]]></category>
		<category><![CDATA[TypeSystem]]></category>
		<category><![CDATA[value]]></category>
		<category><![CDATA[云原生]]></category>
		<category><![CDATA[值]]></category>
		<category><![CDATA[切片]]></category>
		<category><![CDATA[包]]></category>
		<category><![CDATA[可观测]]></category>
		<category><![CDATA[大模型]]></category>
		<category><![CDATA[容器]]></category>
		<category><![CDATA[并发]]></category>
		<category><![CDATA[微服务]]></category>
		<category><![CDATA[性能]]></category>
		<category><![CDATA[指针]]></category>
		<category><![CDATA[接口]]></category>
		<category><![CDATA[服务]]></category>
		<category><![CDATA[极客时间]]></category>
		<category><![CDATA[类型系统]]></category>
		<category><![CDATA[组合]]></category>
		<category><![CDATA[错误处理]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=4687</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2025/05/12/go-advanced-course 大家好，我是Tony Bai。 今天，怀着一丝激动和期待，我想向大家宣布一个酝酿已久的好消息：我的新专栏“TonyBai · Go 语言进阶课” 终于在极客时间正式上架了！ 这门课程的诞生，其实有一段不短的故事。它并非一时兴起，而是源于我对 Go 语言多年实践的沉淀、对 Gopher 们进阶痛点的洞察，以及一份希望能帮助更多开发者突破瓶颈、实现精通的心愿。 缘起：从 GopherChina 的线下训练营开始 故事的起点，要追溯到 GopherChina 2023 大会前夕。当时，我应邀开设了一期名为“Go 高级工程师必修课”的线下训练营。至今还清晰记得，在滴滴的一个会议室里，我与一群对 Go 语言充满热忱的开发者们，共同探讨、深入剖析了 Go 进阶之路上的种种挑战与关键技能。 那次线下课程的反馈非常积极，也让我深刻感受到，许多 Gopher 在掌握了 Go 的基础之后，普遍面临着“如何从熟练到精通”的困惑。他们渴望写出更优雅、更高性能的代码，希望提升复杂项目的设计能力，也期盼着能掌握更硬核的工程实践经验。 同年，我还临危受命，在 GopherChina 2023 上加了一场 “The State Of Go” 的演讲，与大家分享了我对 Go 语言发展趋势的观察与思考。这些经历，都让我更加坚信，系统性地梳理和分享 Go 语言的进阶知识，是非常有价值且必要的。 打磨：从线下到线上，不变的是匠心 将线下课程的精华沉淀下来，打磨成一门更普惠、更系统的线上专栏，这个想法在 2024 年就已萌生。但由于种种原因，特别是档期的冲突，这个计划暂时搁置了。 直到 2025 年，我与极客时间的老师们再次携手，投入了大量心血，对课程内容进行了反复打磨和精心编排。我们不仅希望传递知识，更希望启发思考，帮助大家建立起真正的“Go 语言设计思维和工程思维”。 正如我在专栏开篇词中提到的，如果你也正面临这些困惑： 感觉到了瓶颈？ [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/2025/go-advanced-course-1.png" alt="" /></p>
<p><a href="https://tonybai.com/2025/05/12/go-advanced-course">本文永久链接</a> &#8211; https://tonybai.com/2025/05/12/go-advanced-course</p>
<p>大家好，我是Tony Bai。</p>
<p>今天，怀着一丝激动和期待，我想向大家宣布一个酝酿已久的好消息：我的新专栏<strong>“<a href="http://gk.link/a/12yGY">TonyBai · Go 语言进阶课</a>”</strong> 终于在极客时间正式上架了！</p>
<p><img src="https://tonybai.com/wp-content/uploads/course-card/go-advanced-course-1.jpg" alt="" /></p>
<p>这门课程的诞生，其实有一段不短的故事。它并非一时兴起，而是源于我对 Go 语言多年实践的沉淀、对 Gopher 们进阶痛点的洞察，以及一份希望能帮助更多开发者突破瓶颈、实现精通的心愿。</p>
<h2>缘起：从 GopherChina 的线下训练营开始</h2>
<p>故事的起点，要追溯到 GopherChina 2023 大会前夕。当时，我应邀开设了一期名为“Go 高级工程师必修课”的线下训练营。至今还清晰记得，在滴滴的一个会议室里，我与一群对 Go 语言充满热忱的开发者们，共同探讨、深入剖析了 Go 进阶之路上的种种挑战与关键技能。</p>
<p><img src="https://tonybai.com/wp-content/uploads/go-advanced-training-2023-2.png" alt="GopherChina 2023 “Go高级工程师必修课”线下训练营图片" /></p>
<p>那次线下课程的反馈非常积极，也让我深刻感受到，许多 Gopher 在掌握了 Go 的基础之后，普遍面临着“如何从熟练到精通”的困惑。他们渴望写出更优雅、更高性能的代码，希望提升复杂项目的设计能力，也期盼着能掌握更硬核的工程实践经验。</p>
<p>同年，我还临危受命，在 GopherChina 2023 上加了一场 “The State Of Go” 的演讲，与大家分享了我对 Go 语言发展趋势的观察与思考。这些经历，都让我更加坚信，系统性地梳理和分享 Go 语言的进阶知识，是非常有价值且必要的。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2025/go-advanced-course-2.png" alt="" /></p>
<h2>打磨：从线下到线上，不变的是匠心</h2>
<p>将线下课程的精华沉淀下来，打磨成一门更普惠、更系统的线上专栏，这个想法在 2024 年就已萌生。但由于种种原因，特别是档期的冲突，这个计划暂时搁置了。</p>
<p>直到 2025 年，我与极客时间的老师们再次携手，投入了大量心血，对课程内容进行了反复打磨和精心编排。我们不仅希望传递知识，更希望启发思考，帮助大家建立起真正的“Go 语言设计思维和工程思维”。</p>
<p><img src="https://tonybai.com/wp-content/uploads/course-card/go-advanced-course-3.jpg" alt="" /></p>
<p>正如我在专栏开篇词中提到的，如果你也正面临这些困惑：</p>
<ul>
<li><strong>感觉到了瓶颈？</strong> 写了不少 Go 代码，但总觉得离“精通”还差一口气？</li>
<li><strong>设计能力跟不上？</strong> 面对复杂的业务需求，如何进行合理的项目布局、包设计、接口设计？</li>
<li><strong>工程实践经验不足？</strong> 知道要测试、要监控、要优化，但具体到 Go 项目，如何落地？</li>
</ul>
<p>那么，这门“Go 语言进阶课”正是为你量身打造的。</p>
<h2>蜕变：从“熟练工”到“专家”，三大模块助你突破</h2>
<p>课程摒弃了简单罗列知识点的方式，聚焦于 Go 工程师能力提升的三个核心维度，精心设计了三大模块：</p>
<ul>
<li><strong>模块一：夯实基础，突破语法认知瓶颈</strong><br />
这里我们不满足于“知道”，而是追求“理解”。深入类型系统、值与指针、切片与 map 陷阱、接口与组合、泛型等核心概念的底层逻辑与设计哲学，让你写出更地道、更健壮的 Go 代码。</li>
<li><strong>模块二：设计先行，奠定高质量代码基础</strong><br />
从宏观的项目布局、包设计，到具体的并发模型选择、接口设计原则，再到实用的错误处理策略和 API 设计规范。提升你的软件设计能力，让你能驾驭更复杂的项目。</li>
<li><strong>模块三：工程实践，锻造生产级 Go 服务</strong><br />
聚焦于将 Go 代码变成可靠线上服务的关键环节。从应用骨架、核心组件、可观测性，到故障排查、性能调优、云原生部署以及与 AI 大模型集成，全是硬核干货。</li>
</ul>
<p>此外，课程还安排了<strong>实战串讲项目</strong>，带你将学到的知识融会贯通，亲手构建并完善一个真实的 Go 服务。</p>
<p>我深知，从“熟练”到“精通”，不是一蹴而就的。但这门课程，希望能成为你进阶路上的助推器和导航仪。它凝聚了我 20 多年的行业经验，特别是我在电信领域高并发网关和智能网联汽车车云平台使用 Go 语言构建大规模生产系统的实践与思考。</p>
<p>在课程中，你不仅能学到 Go 的高级特性和用法，更能体会到 Go 语言“组合优于继承”、“显式错误处理”等设计哲学的精髓，以及在大模型时代如何让 AI 赋能你的 Go 应用。</p>
<h2>现在，是时候了！</h2>
<p>正如我在开篇词中强调的，Go 语言正迎来它的黄金十年。从 TIOBE 榜单的稳步攀升（2025 年 4 月份额已突破 3%），到全球 GopherCon 的回归，再到各大主流厂商对 Go 的拥抱（比如 TypeScript 编译器向 Go 移植、Grafana 和 GitHub 用 Go 重写 MCP Server），都预示着 Go 在云原生、微服务、AI 后端等领域的强劲势头。</p>
<p><img src="https://tonybai.com/wp-content/uploads/2025/go-advanced-course-3.png" alt="" /><br />
<img src="https://tonybai.com/wp-content/uploads/2025/go-advanced-course-4.png" alt="" /></p>
<p>现在，正是学习和进阶 Go 的最佳时机！</p>
<p>如果你渴望突破瓶颈，实现从“Go 熟练工”到“Go 专家”的蜕变，那么，我在极客时间的《TonyBai · Go 语言进阶课》等你！</p>
<p><strong>扫描下方二维码或点击[阅读原文]，立即加入，开启你的 Go 语言精进之旅！</strong></p>
<p><img src="https://tonybai.com/wp-content/uploads/course-card/go-advanced-course-4.png" alt="" /></p>
<p>期待与你在课程中相遇，共同探索 Go 语言的精妙与强大！</p>
<p>最后，一个小小的请求：</p>
<p>如果你身边有正在 Go 语言进阶道路上摸索，或者渴望提升 Go 工程实践与设计能力的 Gopher 朋友、同事，<strong>请将这篇文章或课程信息分享给他们</strong>。 每一份善意的传递，都可能为他人的技术成长点亮一盏灯。</p>
<p>也欢迎大家在评论区踊跃交流，分享你对 Go 进阶的困惑、经验或对课程的期待。让我们一起，在 Go 的世界里，持续学习，共同进步！</p>
<hr />
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求，请扫描下方公众号二维码，与我私信联系。</p>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p style='text-align:left'>&copy; 2025, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2025/05/12/go-advanced-course/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Go开发者必看！JetBrains 2024报告深度解读：Go语言现状、趋势与未来机遇</title>
		<link>https://tonybai.com/2025/04/10/jetbrains-2024-go-report-analysis/</link>
		<comments>https://tonybai.com/2025/04/10/jetbrains-2024-go-report-analysis/#comments</comments>
		<pubDate>Thu, 10 Apr 2025 00:08:33 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[cloudflare]]></category>
		<category><![CDATA[cmdline]]></category>
		<category><![CDATA[GenAI]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[Gopher]]></category>
		<category><![CDATA[JetBrains]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[ollama]]></category>
		<category><![CDATA[openai]]></category>
		<category><![CDATA[RPC]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[SlashData]]></category>
		<category><![CDATA[Stackoverflow]]></category>
		<category><![CDATA[TIOBE]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[云服务]]></category>
		<category><![CDATA[命令行]]></category>
		<category><![CDATA[大模型]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=4550</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2025/04/10/jetbrains-2024-go-report-analysis 嘿，各位Gopher！ 你是否也在关心Go语言的最新动态？它还在快速增长吗？薪资水平如何？未来方向在哪？ 这是我看到的关于2024年Go语言发展趋势最全面、数据最翔实的一份报告解读。 JetBrains，这家开发者们都非常熟悉的工具公司，最近发布了《Is Golang Still Growing? Go Language Popularity Trends in 2024》的研究报告文章。如果你是Go开发者，或者正在关注Go生态，这篇文章就是为你准备的，强烈推荐阅读！ 在深入细节之前，先为你快速提炼报告的核心发现，让你高效把握重点： Go开发者规模依旧庞大且专业： 全球专业Go开发者估算超400万，且持续增长。 云原生主战场地位稳固： Web服务、云服务、IT基础设施是Go应用核心领域。 “钱景”诱人： Go开发者薪资普遍处于行业较高水平。 各大榜单表现亮眼： 在TIOBE、GitHub Octoverse等多个权威榜单中，Go排名稳定或显著上升。 与Rust互补而非替代： 两者定位不同，常被结合使用。 未来聚焦： 持续深耕云原生，并在GenAI基础设施领域崭露头角。 Go开发者画像：规模、角色与“钱景” 报告显示，全球使用Go的专业开发者规模可观。JetBrains估计近一年有410万专业人士使用Go，其中180万将其作为主要语言之一。SlashData的估算则更高，达到470万（包含学生和爱好者），而最新的Stack Overflow和SlashData数据推算更是达到了580万。 从上图中展示的开发者从事的软件类型来看： Web服务 (无GUI): 744,000 网站: 732,000 云服务: 681,000 开发者角色方面(如上图)，除了大量的软件工程师/程序员 (约160万)外，DevOps/基础设施工程师(约50万)的比例也相当高，这凸显了Go在云原生基础设施和运维领域的巨大需求。 更让Gopher们关心的是薪资。报告明确指出，Go开发者是业内薪资最高的人群之一。美国Go开发者的平均年薪约为$76,000，经验丰富者甚至可达$500,000。 Go的应用版图：核心场景与行业分布 Go最常见的两大用例依然是： API/RPC服务(75%) 命令行工具(62%) 哪些行业在重度使用Go呢？ 科技 (超过40%): Google, DataDog, K8s, HashiCorp, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/jetbrains-2024-go-report-analysis-1.jpg" alt="" /></p>
<p><a href="https://tonybai.com/2025/04/10/jetbrains-2024-go-report-analysis">本文永久链接</a> &#8211; https://tonybai.com/2025/04/10/jetbrains-2024-go-report-analysis</p>
<p>嘿，各位Gopher！</p>
<p>你是否也在关心Go语言的最新动态？它还在快速增长吗？薪资水平如何？未来方向在哪？</p>
<p><strong>这是我看到的关于2024年Go语言发展趋势最全面、数据最翔实的一份报告解读。</strong> JetBrains，这家开发者们都非常熟悉的工具公司，最近发布了《<a href="https://blog.jetbrains.com/research/2025/04/is-golang-still-growing-go-language-popularity-trends-in-2024/">Is Golang Still Growing? Go Language Popularity Trends in 2024</a>》的研究报告文章。如果你是Go开发者，或者正在关注Go生态，<strong>这篇文章就是为你准备的，强烈推荐阅读！</strong></p>
<p>在深入细节之前，先为你<strong>快速提炼报告的核心发现</strong>，让你高效把握重点：</p>
<ul>
<li><strong>Go开发者规模依旧庞大且专业：</strong> 全球专业Go开发者估算超<strong>400万</strong>，且持续增长。</li>
<li><strong>云原生主战场地位稳固：</strong> Web服务、云服务、IT基础设施是Go应用核心领域。</li>
<li><strong>“钱景”诱人：</strong> Go开发者薪资普遍处于<strong>行业较高水平</strong>。</li>
<li><strong>各大榜单表现亮眼：</strong> 在TIOBE、GitHub Octoverse等多个权威榜单中，Go排名<strong>稳定或显著上升</strong>。</li>
<li><strong>与Rust互补而非替代：</strong> 两者定位不同，常被结合使用。</li>
<li><strong>未来聚焦：</strong> 持续深耕<strong>云原生</strong>，并在<strong>GenAI基础设施</strong>领域崭露头角。</li>
</ul>
<hr />
<h2>Go开发者画像：规模、角色与“钱景”</h2>
<p>报告显示，全球使用Go的专业开发者规模可观。JetBrains估计近一年有<strong>410万</strong>专业人士使用Go，其中<strong>180万</strong>将其作为主要语言之一。<a href="https://dashboard-tool-report.cdn.prismic.io/dashboard-tool-report/ZmMmh5m069VX1jxc_-W.Kodluyoruz-Programminglanguagecommunities.pdf">SlashData的估算则更高</a>，达到<strong>470万</strong>（包含学生和爱好者），而最新的Stack Overflow和SlashData数据推算更是达到了<strong>580万</strong>。</p>
<p><img src="https://tonybai.com/wp-content/uploads/jetbrains-2024-go-report-analysis-2.jpg" alt="" /></p>
<p>从上图中展示的开发者从事的软件类型来看：</p>
<ul>
<li>Web服务 (无GUI): <strong>744,000</strong></li>
<li>网站: <strong>732,000</strong></li>
<li>云服务: <strong>681,000</strong></li>
</ul>
<p><img src="https://tonybai.com/wp-content/uploads/jetbrains-2024-go-report-analysis-3.jpg" alt="" /></p>
<p>开发者角色方面(如上图)，除了大量的<strong>软件工程师/程序员 (约160万)</strong>外，<strong>DevOps/基础设施工程师(约50万)</strong>的比例也相当高，这凸显了Go在云原生基础设施和运维领域的巨大需求。</p>
<p>更让Gopher们关心的是薪资。报告明确指出，Go开发者是<strong>业内薪资最高的人群之一</strong>。美国Go开发者的平均年薪约为<strong>$76,000</strong>，经验丰富者甚至可达<strong>$500,000</strong>。</p>
<hr />
<h2>Go的应用版图：核心场景与行业分布</h2>
<p>Go最常见的两大用例依然是：</p>
<ol>
<li><strong>API/RPC服务(75%)</strong></li>
<li><strong>命令行工具(62%)</strong></li>
</ol>
<p>哪些行业在重度使用Go呢？</p>
<ul>
<li><strong>科技 (超过40%):</strong> Google, DataDog, K8s, HashiCorp, Dropbox, Salesforce, Apple&#8230;</li>
<li><strong>金融服务 (13%):</strong> Monzo, American Express, Mercado Libre&#8230;</li>
<li><strong>交通与零售 (10%):</strong> Amazon, Uber, DeliveryHero, HelloFresh&#8230;</li>
<li><strong>媒体/游戏 (7%):</strong> Netflix, Bytedance, Tencent, Reddit, Snap&#8230;</li>
</ul>
<hr />
<h2>多维数据透视：Go在各大榜单上的表现</h2>
<p>担心Go的热度？来看看它在各大权威榜单上的表现吧：</p>
<ul>
<li><strong>JetBrains语言潜力指数:</strong> Go排名 <strong>第4</strong>，仅次于TypeScript, Rust, Python，显示出强大的增长潜力和用户粘性。</li>
<li><strong>Stack Overflow开发者调查:</strong> 在“受喜爱和期望” (Admired and Desired) 榜单中，Go从去年的第9位<strong>跃升至第7位</strong>，超过了C#和Shell。</li>
<li><strong>GitHub Octoverse:</strong> 稳定保持在 <strong>Top 10</strong> 编程语言之列，并且是 <strong>Top 3增长最快的语言之一</strong> (开源项目活跃度)。</li>
<li><strong>Cloudflare Radar (API客户端语言):</strong> Go在2024年 <strong>超越Node.js</strong>，成为自动化API请求最常用的语言，占比约<strong>12%</strong> (去年为8.4%)。</li>
<li><strong>TIOBE指数:</strong> Go从2023年的第13位<strong>大幅攀升至第7位</strong>，达到自2009年以来的最高排名！**</li>
</ul>
<p><img src="https://tonybai.com/wp-content/uploads/jetbrains-2024-go-report-analysis-4.png" alt="" /><br />
<center>TIOBE 2025.04榜单</center></p>
<p><strong>这些数据有力地证明，Go语言不仅没有衰退，反而在多个维度上保持着强劲的势头。</strong></p>
<hr />
<h2>Go vs Rust：是对手还是队友？</h2>
<p>报告特别提到了Go与同样热门的Rust的关系。结论是：<strong>它们更多是互补，而非直接竞争</strong>。</p>
<ul>
<li><strong>Go:</strong> 更易上手，开发效率高，非常适合云服务、微服务、API、CLI开发，强调 <strong>快速开发和可伸缩性</strong>。</li>
<li><strong>Rust:</strong> 性能极致，适用于性能密集型、底层嵌入式开发，但<strong>复杂性更高，开发成本和时间也更高</strong>。</li>
</ul>
<p>许多公司会同时使用这两种语言，根据场景需求选择最合适的工具。对Rust感兴趣的Go开发者增多，并不意味着Go市场份额的下降。</p>
<hr />
<h2>Go的未来之路：聚焦云原生与拥抱GenAI</h2>
<p>展望未来，Go团队将继续<strong>聚焦云原生领域</strong>，满足其对<strong>开发效率 (time to value)、可靠性和可伸缩性</strong>的核心需求。</p>
<p>一个令人兴奋的新方向是<strong>生成式AI (GenAI) 基础设施</strong>。虽然Go在传统机器学习领域不如Python，但其在性能和可伸缩性上的优势，使其成为构建<strong>AI模型服务 (model serving)</strong>等生产级AI基础设施的理想选择。</p>
<ul>
<li>主流AI平台 (OpenAI, Google AI等) 已提供<strong>Go SDK</strong>。</li>
<li>Go的GenAI生态正在成长，涌现出如<a href="https://github.com/ollama/ollama/">Ollama</a>, <a href="https://github.com/tmc/langchaingo">LangChain Go</a>, <a href="https://github.com/kserve/kserve">kserve</a>等工具。</li>
<li><strong>GenAI基础设施本身，就像云基础设施一样，正在越来越多地用Go编写。</strong></li>
</ul>
<p>报告还提到，<a href="https://tonybai.com/2024/10/10/pass-torch-to-go-new-leadership-team/">Go项目领导层虽有变动</a>（Russ Cox卸任，Austin Clements和Cherry Mui接任），但新领导层对Go的理念和目标有深刻理解，确保了项目的连续性和稳定性。<strong><a href="https://tonybai.com/2025/02/16/some-changes-in-go-1-24/">Go 1.24</a>已于2025年2月发布，未来可期。</strong></p>
<hr />
<h2>总结：黄金时代，未来可期</h2>
<p>总而言之，JetBrains这份详尽的报告描绘了一个清晰的画面：</p>
<p><strong>2024年，Go语言不仅保持了稳定发展，更在云原生领域巩固了核心地位，并在GenAI基础设施等新兴领域展现出强劲潜力。它正步入一个成熟且充满机遇的“黄金时代”</strong>。</p>
<p>对于Gopher们来说，持续深耕云原生，关注Go在AI基础设施的应用，无疑是明智的选择。</p>
<p>那么，<strong>你认为Go语言的下一个增长点会在哪里？你对Go的未来有什么看法？</strong></p>
<p><strong>欢迎在评论区留下你的真知灼见，一起交流探讨！</strong></p>
<hr />
<p><a href="https://public.zsxq.com/groups/51284458844544">Gopher部落知识星球</a>在2025年将继续致力于打造一个高品质的Go语言学习和交流平台。我们将继续提供优质的Go技术文章首发和阅读体验。并且，2025年将在星球首发“Gopher的AI原生应用开发第一课”、“Go陷阱与缺陷”和“Go原理课”专栏！此外，我们还会加强星友之间的交流和互动。欢迎大家踊跃提问，分享心得，讨论技术。我会在第一时间进行解答和交流。我衷心希望Gopher部落可以成为大家学习、进步、交流的港湾。让我相聚在Gopher部落，享受coding的快乐! 欢迎大家踊跃加入！</p>
<p><img src="http://image.tonybai.com/img/tonybai/gopher-tribe-zsxq-small-card.png" alt="img{512x368}" /><br />
<img src="http://image.tonybai.com/img/tonybai/go-programming-from-beginner-to-master-qr.png" alt="img{512x368}" /></p>
<p><img src="http://image.tonybai.com/img/tonybai/go-first-course-banner.png" alt="img{512x368}" /><br />
<img src="http://image.tonybai.com/img/tonybai/imooc-go-column-pgo-with-qr.jpg" alt="img{512x368}" /></p>
<p>著名云主机服务厂商DigitalOcean发布最新的主机计划，入门级Droplet配置升级为：1 core CPU、1G内存、25G高速SSD，价格6$/月。有使用DigitalOcean需求的朋友，可以打开这个<a href="https://m.do.co/c/bff6eed92687">链接地址</a>：https://m.do.co/c/bff6eed92687 开启你的DO主机之路。</p>
<p>Gopher Daily(Gopher每日新闻) &#8211; https://gopherdaily.tonybai.com</p>
<p>我的联系方式：</p>
<ul>
<li>微博(暂不可用)：https://weibo.com/bigwhite20xx</li>
<li>微博2：https://weibo.com/u/6484441286</li>
<li>博客：tonybai.com</li>
<li>github: https://github.com/bigwhite</li>
<li>Gopher Daily归档 &#8211; https://github.com/bigwhite/gopherdaily</li>
<li>Gopher Daily Feed订阅 &#8211; https://gopherdaily.tonybai.com/feed</li>
</ul>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。</p>
<p style='text-align:left'>&copy; 2025, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2025/04/10/jetbrains-2024-go-report-analysis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2024年Go语言盘点：排名历史新高，团队新老传承</title>
		<link>https://tonybai.com/2025/01/06/the-2024-review-of-go-programming-language/</link>
		<comments>https://tonybai.com/2025/01/06/the-2024-review-of-go-programming-language/#comments</comments>
		<pubDate>Sun, 05 Jan 2025 21:48:41 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[AustinClements]]></category>
		<category><![CDATA[Cgo]]></category>
		<category><![CDATA[Changelog]]></category>
		<category><![CDATA[CherryMui]]></category>
		<category><![CDATA[Claude]]></category>
		<category><![CDATA[devirtualize]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[for-range]]></category>
		<category><![CDATA[Gartner]]></category>
		<category><![CDATA[GC]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[go.mod]]></category>
		<category><![CDATA[go.work]]></category>
		<category><![CDATA[go1.23]]></category>
		<category><![CDATA[go1.24]]></category>
		<category><![CDATA[gobuild]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[gomodule]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[gopherchina]]></category>
		<category><![CDATA[GopherCon]]></category>
		<category><![CDATA[GopherConAfrica]]></category>
		<category><![CDATA[gotest]]></category>
		<category><![CDATA[GoTime]]></category>
		<category><![CDATA[hype-cycle]]></category>
		<category><![CDATA[IEEE]]></category>
		<category><![CDATA[Inline]]></category>
		<category><![CDATA[loopvar]]></category>
		<category><![CDATA[octoverse]]></category>
		<category><![CDATA[ollama]]></category>
		<category><![CDATA[openai]]></category>
		<category><![CDATA[oscar]]></category>
		<category><![CDATA[PGO]]></category>
		<category><![CDATA[reddit]]></category>
		<category><![CDATA[RussCox]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[structs]]></category>
		<category><![CDATA[Telemetry]]></category>
		<category><![CDATA[ticker]]></category>
		<category><![CDATA[Timer]]></category>
		<category><![CDATA[TIOBE]]></category>
		<category><![CDATA[typealias]]></category>
		<category><![CDATA[typeparameter]]></category>
		<category><![CDATA[unique]]></category>
		<category><![CDATA[vendor]]></category>
		<category><![CDATA[云原生]]></category>
		<category><![CDATA[云计算]]></category>
		<category><![CDATA[内联]]></category>
		<category><![CDATA[微服务]]></category>
		<category><![CDATA[技术成熟度曲线]]></category>
		<category><![CDATA[泛型]]></category>
		<category><![CDATA[生产成熟期]]></category>
		<category><![CDATA[类型别名]]></category>
		<category><![CDATA[类型参数]]></category>
		<category><![CDATA[编译器]]></category>
		<category><![CDATA[运行时]]></category>
		<category><![CDATA[迭代器]]></category>
		<category><![CDATA[遥测]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=4456</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2024/01/06/the-2024-review-of-go-programming-language 2024年底，由于感染了甲流，我在家卧床休息了两天，原定于2024年进行的Go语言盘点写作因此被迫推迟。不过，我始终相信：迟到但不会缺席。在2025年元旦的第一天，我终于开始了这篇博客的撰写。 时间过得真快，《2023年Go语言盘点：稳中求新，稳中求变》依然历历在目。转眼之间，一年365天过去了，发生了许多事情，甚至有些记忆已在脑海中模糊或消逝。在这里，我将带你盘点那些关于Go的重要时刻，唤起你对Go的美好回忆。 回顾整个2024年，如果非要用一句话来形容Go语言的状态，我会选择：Go完成了技术成熟度曲线中的“稳步爬升复苏期”，开始进入“生产成熟期”。这一点在Go的排名中得到了直接体现，并在Go社区的活跃度方面得到了间接的印证。而Go的年中换帅似乎也预示着这是一个新的起点！在过去一年中，得益于Go团队和社区的共同努力，Go发布了许多值得关注的新特性。 接下来，我将为大家逐一详细介绍！ 1. Go排名创历史新高 说到编程语言排名，程序员们首先想到的就是TIOBE！在2024年的TIOBE排行榜上，尽管Go语言没有像AI时代的霸主语言Python那样耀眼，但跻身前十并站稳第七名这一成绩也足以让其他语言羡慕不已！ 图：2024年12月TIOBE排名TOP 10 而从2009年开源至今，Go在TIOBE排名走势如下： 图：2010年-2024年TIOBE排行榜Go语言走势 了解Go历史的朋友都知道，Go语言真正具备生产级成熟度是从2015年的Go 1.5版本开始的。按照技术成熟度曲线的划分，2015年之前及其后的一段时间可以视为技术萌芽期。从曲线中可以看出，2017年时达到了期望膨胀期的峰值。此后，Go经历了一段“漫长”的泡沫破裂低谷期以及稳步爬升的复苏期。从2023年开始，到2024年末，Go语言复苏的速度日益加快！目前来看，如无意外，Go将进入技术成熟度曲线的下一阶段：生产成熟期！我曾提到过：绝大多数主流编程语言将在其诞生后的第15至第20年间大步前进。按照这个编程语言的一般规律，刚刚迈过开源第15个年头的Go刚刚迈进自己的黄金5-10年。 当然，单看TIOBE单一榜单似乎说服力不足，我们再来看看今年的Github octoverse报告。在这份报告中，Go依旧稳居github热门编程语言前10(如下图)，这一位置已经保持了三年多了！ 图：2024年Github最热门编程语言排行榜 此外，在2024年年中发布的“IEEE Spectrum 2024编程语言排行榜”中，Go在Spectrum排名和Trending排名中分列第8位和第7位。 除了排行榜之外，通过Reddit中编程语言论坛的活跃度也可以看出Go语言在全球的受欢迎程度和用户广度。以下是2025年1月1日Reddit上最活跃的9门编程语言子论坛的实时状态截图： 图：2025.1.1 Reddit编程语言子论坛状态对比 我们看到Go子论坛在成员数量和某一时刻的在线人数上都表现良好。此外，如果你是长期关注Reddit Go论坛的Gopher，一定注意到自2024年初以来，Go论坛的人气迅速增长，日均帖子数相比前两年显著增加，其中很多都是新加入Go阵营的初学者！ 注：Rust的人气是真高啊，online人数断崖领先！ 编程语言技术大会是衡量语言流行度和受欢迎程度的另一重要风向标。自从全球从新冠疫情中恢复后，GopherCon逐渐在各地线下恢复，到了2024年基本回到了疫情前的状态，甚至在一些地方的GopherCon还超越了以往的受欢迎程度。例如，2024年GopherCon欧洲大会破例举办了两次。此外，首届在非洲举行的GopherCon Africa也于2024年10月份在肯尼亚首都内罗毕成功举行！唯一的遗憾是GopherChina在2024年缺席，这或许与国内的经济形势有关。 Go的增长趋势来的有些快，不知道是否是得益于AI应用的快速发展！但就像Go团队前成员Jaana Dogan(Rakyll)所说的那样： Go将成为AI时代重要的AI应用开发语言！AI大模型三强：OpenAI、Claude和Google都提供了对Go SDK的官方支持： OpenAI Go SDK &#8211; https://github.com/openai/openai-go Claude GO SDK &#8211; https://github.com/anthropics/anthropic-sdk-go Google AI Go SDK &#8211; https://github.com/google/generative-ai-go 此外，提到Go和AI大模型，我们不得不提及一个重量级的开源项目——Ollama，它可以说是当前私有部署和使用开源大模型的事实标准！在2024年的用户调查报告中，Go团队还特别关注了用户对使用Go开发AI应用的需求，并将AI应用开发视为Go应用的下一个重要赛道。此外，Russ Cox也积极参与这一领域，开源了专用于开源项目运营维护的AI机器人：Oscar，同时探索Go在AI领域的应用。 如果说Go的排名再创新高让Gopher和Go社区对Go充满了更多自信，那么Go团队的换帅则向整个编程语言界展示了团队的传承与发展！ 2. Go团队换帅展示团队传承 [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/the-2024-review-of-go-programming-language-1.png" alt="" /></p>
<p><a href="https://tonybai.com/2024/01/06/the-2024-review-of-go-programming-language">本文永久链接</a> &#8211; https://tonybai.com/2024/01/06/the-2024-review-of-go-programming-language</p>
<p>2024年底，由于感染了甲流，我在家卧床休息了两天，原定于2024年进行的Go语言盘点写作因此被迫推迟。不过，我始终相信：迟到但不会缺席。在2025年元旦的第一天，我终于开始了这篇博客的撰写。</p>
<p>时间过得真快，《<a href="https://tonybai.com/2023/12/31/the-2023-review-of-go-progrmming-language/">2023年Go语言盘点：稳中求新，稳中求变</a>》依然历历在目。转眼之间，一年365天过去了，发生了许多事情，甚至有些记忆已在脑海中模糊或消逝。在这里，我将带你盘点那些关于Go的重要时刻，唤起你对Go的美好回忆。</p>
<p>回顾整个2024年，如果非要用一句话来形容Go语言的状态，我会选择：<strong>Go完成了<a href="https://www.gartner.com/cn/research/methodologies/gartner-hype-cycle">技术成熟度曲线</a>中的“稳步爬升复苏期”，开始进入“生产成熟期”</strong>。这一点在Go的排名中得到了直接体现，并在Go社区的活跃度方面得到了间接的印证。而<a href="https://tonybai.com/2024/10/10/pass-torch-to-go-new-leadership-team">Go的年中换帅</a>似乎也<strong>预示着这是一个新的起点</strong>！在过去一年中，得益于Go团队和社区的共同努力，Go发布了许多值得关注的新特性。</p>
<p>接下来，我将为大家逐一详细介绍！</p>
<h2>1. Go排名创历史新高</h2>
<p>说到编程语言排名，程序员们首先想到的就是TIOBE！在2024年的<a href="https://www.tiobe.com/tiobe-index/">TIOBE排行榜</a>上，尽管Go语言没有像<a href="https://tonybai.com/2024/10/14/programming-in-ai-era">AI时代</a>的霸主语言Python那样耀眼，但跻身前十并站稳第七名这一成绩也足以让其他语言羡慕不已！</p>
<p><img src="https://tonybai.com/wp-content/uploads/the-2024-review-of-go-programming-language-4.png" alt="" /><br />
<center>图：2024年12月TIOBE排名TOP 10</center></p>
<p>而从2009年开源至今，Go在TIOBE排名走势如下：</p>
<p><img src="https://tonybai.com/wp-content/uploads/the-2024-review-of-go-programming-language-2.png" alt="" /><br />
<center>图：2010年-2024年TIOBE排行榜Go语言走势</center></p>
<p>了解Go历史的朋友都知道，Go语言真正具备生产级成熟度是从2015年的Go 1.5版本开始的。按照技术成熟度曲线的划分，2015年之前及其后的一段时间可以视为技术萌芽期。从曲线中可以看出，2017年时达到了期望膨胀期的峰值。此后，Go经历了一段“漫长”的泡沫破裂低谷期以及稳步爬升的复苏期。从2023年开始，到2024年末，Go语言复苏的速度日益加快！目前来看，如无意外，Go将进入技术成熟度曲线的下一阶段：生产成熟期！我曾提到过：<strong>绝大多数主流编程语言将在其诞生后的第15至第20年间大步前进</strong>。按照这个编程语言的一般规律，刚刚<a href="https://tonybai.com/2024/11/12/go-turns-15">迈过开源第15个年头的Go</a>刚刚迈进自己的黄金5-10年。</p>
<p>当然，单看TIOBE单一榜单似乎说服力不足，我们再来看看<a href="https://github.blog/news-insights/octoverse/octoverse-2024/#the-most-popular-programming-languages">今年的Github octoverse报告</a>。在这份报告中，Go依旧稳居github热门编程语言前10(如下图)，这一位置已经保持了三年多了！</p>
<p><img src="https://tonybai.com/wp-content/uploads/the-2024-review-of-go-programming-language-3.png" alt="" /><br />
<center>图：2024年Github最热门编程语言排行榜</center></p>
<p>此外，在2024年年中发布的“<a href="https://mp.weixin.qq.com/s/nLgg18iG3ZIt-ojHqPuqRA">IEEE Spectrum 2024编程语言排行榜</a>”中，Go在Spectrum排名和Trending排名中分列第8位和第7位。</p>
<p>除了排行榜之外，通过Reddit中编程语言论坛的活跃度也可以看出Go语言在全球的受欢迎程度和用户广度。以下是2025年1月1日Reddit上最活跃的9门编程语言子论坛的实时状态截图：</p>
<p><img src="https://tonybai.com/wp-content/uploads/the-2024-review-of-go-programming-language-5.png" alt="" /><br />
<center>图：2025.1.1 Reddit编程语言子论坛状态对比</center></p>
<p>我们看到Go子论坛在成员数量和某一时刻的在线人数上都表现良好。此外，如果你是长期关注Reddit Go论坛的Gopher，一定注意到自2024年初以来，Go论坛的人气迅速增长，日均帖子数相比前两年显著增加，其中很多都是新加入Go阵营的初学者！</p>
<blockquote>
<p>注：<a href="https://tonybai.com/tag/rust">Rust</a>的人气是真高啊，online人数断崖领先！</p>
</blockquote>
<p>编程语言技术大会是衡量语言流行度和受欢迎程度的另一重要风向标。自从全球从新冠疫情中恢复后，GopherCon逐渐在各地线下恢复，到了2024年基本回到了疫情前的状态，甚至在一些地方的GopherCon还超越了以往的受欢迎程度。例如，2024年GopherCon欧洲大会破例举办了两次。此外，<a href="https://dev.to/johneliud/my-experience-attending-gophercon-africa-2024-171e">首届在非洲举行的GopherCon Africa</a>也于2024年10月份在肯尼亚首都内罗毕成功举行！唯一的遗憾是<strong>GopherChina在2024年缺席</strong>，这或许与国内的经济形势有关。</p>
<p>Go的增长趋势来的有些快，不知道是否是得益于AI应用的快速发展！但就像Go团队前成员<a href="https://github.com/rakyll">Jaana Dogan(Rakyll)</a>所说的那样：</p>
<p><img src="https://tonybai.com/wp-content/uploads/the-2024-review-of-go-programming-language-6.png" alt="" /></p>
<p>Go将成为AI时代重要的AI应用开发语言！AI大模型三强：OpenAI、Claude和Google都提供了对Go SDK的官方支持：</p>
<ul>
<li>OpenAI Go SDK &#8211; https://github.com/openai/openai-go</li>
<li>Claude GO SDK &#8211; https://github.com/anthropics/anthropic-sdk-go</li>
<li>Google AI Go SDK &#8211; https://github.com/google/generative-ai-go</li>
</ul>
<p>此外，提到Go和AI大模型，我们不得不提及一个重量级的开源项目——<a href="https://ollama.com/">Ollama</a>，它可以说是当前私有部署和使用开源大模型的事实标准！在<a href="https://go.dev/blog/survey2024-h1-results">2024年的用户调查报告</a>中，Go团队还特别关注了用户对使用Go开发AI应用的需求，并将AI应用开发视为Go应用的下一个重要赛道。此外，Russ Cox也积极参与这一领域，开源了专<a href="https://mp.weixin.qq.com/s/dbuR1oRavvaemUPA7uhyag">用于开源项目运营维护的AI机器人：Oscar</a>，同时探索Go在AI领域的应用。</p>
<p>如果说Go的排名再创新高让Gopher和Go社区对Go充满了更多自信，那么Go团队的换帅则向整个编程语言界展示了团队的传承与发展！</p>
<h2>2. <a href="https://mp.weixin.qq.com/s/2Sy6K_dU1j3tZZiyyfCTDQ">Go团队换帅展示团队传承</a></h2>
<p>对于Go团队来说，2024年的最大的事件不是<a href="https://tonybai.com/2024/02/18/some-changes-in-go-1-22">Go 1.22</a>或<a href="https://tonybai.com/2024/08/19/some-changes-in-go-1-23/">Go 1.23</a>的发布，而是<strong>团队换帅</strong>。</p>
<p>2024年中旬，Go团队的技术负责人Russ Cox宣布，他将于2024年9月1日起卸任Go项目的技术领导职务。自2008年参与Go项目以来，Russ于2012年成为其技术负责人。在过去的12年里，他引领Go语言从一个实验性项目成长为当今最受欢迎的编程语言之一。在他的带领下，Go凭借简洁的语法、高效的并发模型和强大的标准库赢得了众多开发者的青睐，并在云计算、微服务和DevOps等领域得到了广泛应用。</p>
<p>Russ分享了他卸任的想法，表示这一决定是经过深思熟虑的，是自然发展的结果。他认为，尽管长期稳定的领导对大型项目至关重要，但领导层的变动也能为项目注入新的活力和视角。他强调，定期更换领导者是非常重要的，这有助于引入新思想并防止项目陷入停滞。</p>
<p>接替Russ Cox的是Austin Clements，他将成为新的Go技术负责人，同时领导Google的Go团队和整个Go项目。Austin自2014年起就在Google从事与Go相关的工作，拥有丰富的经验和深厚的技术背景。同时，Cherry Mui将接手负责编译器和运行时等“Go核心”领域的工作。Cherry自2016年加入Google，在Go的核心开发领域表现出色。Russ Cox对这两位新领导给予了高度评价，称赞他们具备卓越的判断力以及对Go语言和其运行系统的广泛而深入的理解。</p>
<p>通过9月份到12月份的角色过期期的观察来看，两位“新负责人”的表现是中规中矩，沿袭了Russ Cox之前确定的Go项目管理框架，Cherry Mui在Go core领域表现的十分积极，这从”<a href="https://github.com/golang/go/issues/43930">Go compiler and runtime meeting notes</a>“的记录中可见一斑！</p>
<p>在<a href="https://changelog.com/gotime/333">第333期GoTime播客</a>中，两位新leader也初步分享了他们对后续Go演进的一些想法。</p>
<p>Austin强调，虽然Go保持着稳定和简洁，但它必须继续演进。他的首要目标之一是改善Go的可扩展性，无论是在开发过程中还是在背后的工程流程中。他希望通过提高透明度和扩大社区参与度，赋能社区，创建一个能够更好整合用户反馈的平台（可能是一个论坛），使贡献者能够开发与核心团队目标一致的工具和解决方案。在性能改进方面，Austin长期致力于优化Go的垃圾回收系统，目前正在试验一种新算法，幽默地称其为“绿茶”，旨在优化资源使用，进一步提升Go在越来越大系统上的扩展能力。</p>
<p>Cherry则指出，Go的用户基础正在快速增长，而核心团队的资源却有限。她的任务是确保Go平台能够支持这一日益增长的社区，无论是通过构建更好的API还是平台，帮助用户在Go的基础上开发更强大的工具和解决方案。在技术扩展性方面，Cherry也表达了自己的关注。随着计算能力的提升，核心数量和内存容量不断增加，Go需要适应，以高效处理更大的工作负载。Cherry表示，她非常期待与社区中的工程师合作，解决这些挑战，保持Go简单且可扩展的声誉。</p>
<p>从两位领导的想法与目标中，我们可以看到Go团队传承的文化。对于这样的“换帅”，Go社区应充满信心。</p>
<blockquote>
<p>注：<a href="https://changelog.com/gotime">GoTime博客</a>在完成其<a href="https://changelog.com/gotime">第340期内容</a>后，因平台方Changelog的变动宣布停播了！</p>
</blockquote>
<h2>3. Go Release新特性一览</h2>
<p>对于已经过了15个生日的Go来说，其演进的节奏已经非常稳定和成熟了。2024年，Go平稳地发布了两个重要版本：Go 1.22和Go 1.23。下面我们就来简单浏览一下这两个版本的主要新特性。</p>
<h3>3.1 Go 1.22主要新特性</h3>
<h4>语言特性</h4>
<ul>
<li>loopvar语义修正：for循环中通过短声明定义的循环变量，由整个循环共享一个实例变为每次迭代定义一个实例。这是 Go 语言发展历史上第一次真正的填语义层面的“坑”。</li>
<li>for range支持整型表达式：for range循环可以遍历整型范围，如for i := range 10。</li>
</ul>
<h4>编译器和运行时</h4>
<ul>
<li>PGO优化增强：基于PGO的构建可以实现更高比例的调用去虚拟化(devirtualize)，带来性能提升。</li>
<li>编译器优化：编译器可以更多地运用devirtualize和inline技术进行优化。</li>
<li>运行时优化：运行时可以使基于类型的垃圾收集的元数据更接近每个堆对象，从而降低CPU和内存开销。</li>
</ul>
<h4>工具链</h4>
<ul>
<li>go work支持vendor：go work命令可以管理vendor目录，并且支持使用go build -mod=vendor构建。</li>
<li>go mod init改进：不再尝试导入其他vendor工具(比如Gopkg)的配置文件。</li>
<li>go test -cover改进： 对于没有测试文件的包，会报告覆盖率为0.0%。</li>
</ul>
<h4>标准库</h4>
<ul>
<li>math/rand/v2: 标准库第一个V2版本包。</li>
<li>增强http.ServeMux的表达能力: 新版ServeMux支持静态路由、通配符、主机匹配和变量捕获。</li>
</ul>
<h3>3.2 Go 1.23 主要新特性</h3>
<h4>语言特性</h4>
<ul>
<li>自定义函数迭代器：for range语句支持遍历用户自定义的集合类型，需要定义满足特定签名的迭代器函数。</li>
<li>别名中增加泛型参数：支持在类型别名定义中使用类型参数，如：</li>
</ul>
<pre><code>type MySlice[T any] = []T
</code></pre>
<h4>编译器与运行时</h4>
<ul>
<li>PGO构建速度提升: 该版本优化后，PGO带来的编译开销显著降低。</li>
<li>限制对linkname的使用: Go 1.23禁止使用linkname指令引用标准库中未标记的内部符号。</li>
</ul>
<h4>工具链</h4>
<ul>
<li>Telemetry (遥测): go工具链程序收集性能和使用数据的系统，且支持go telemetry on|off|local命令。</li>
<li>go env -changed: go env子命令增加-changed选项，可以查看当前Go环境中设置的Go环境变量值与默认值有差异的项的值。</li>
<li>go mod tidy -diff: go mod tidy增加-diff选项，只打印更新信息但不做实际更新。</li>
<li>go.mod中增加godebug指示符: 可以通过该指示符设置特定的GODEBUG选项。</li>
</ul>
<h4>标准库</h4>
<ul>
<li>Timer/Ticker变化: Timer和Ticker的GC不再需要Stop方法，Stop/Reset后不再接收旧值。</li>
<li>structs包: 添加一个零size的类型HostLayout，用于控制编译器对结构体类型的布局方式。</li>
<li>unique包: 新增了unique包，用于处理唯一值的集合。</li>
<li>iter包:  新增了iter包，并增加了函数迭代器相关的实用函数到maps、slices等包中。</li>
</ul>
<p>更多更详细关于Go新特性的内容，请阅读《<a href="https://tonybai.com/2024/02/18/some-changes-in-go-1-22/">Go 1.22中值得关注的几个变化</a>》和《<a href="https://tonybai.com/2024/08/19/some-changes-in-go-1-23/">Go 1.23中值得关注的几个变化</a>》。</p>
<h2>4. 2025展望</h2>
<p>按照Go演进的一贯风格，我本不该对Go抱有过多期待^_^，但还是忍不住想说几句。</p>
<p><a href="https://tonybai.com/2024/08/17/go-the-c-language-of-the-internet-era-come-true/">Go已经稳稳地占据了云计算领域的头部后端编程语言地位</a>，在多个编程语言排行榜上名列前茅，Go社区也在健康快速地发展。然而，机遇与风险总是并存。</p>
<p>虽然Go在云原生、Web服务、微服务、API和CLI开发方面拥有明显优势，但也面临着来自Rust等语言的挑战。Go需要进一步巩固其在这些优势领域的地位，同时探索一些能够发挥自身优势的新方向，例如AI应用开发等。</p>
<p>同时，我们期待新一代Go团队领导者，尤其是来自Go编译器和运行时组的领导者们，能够<strong>深入打磨和优化Go语言的编译器、运行时性能以及语言互操作性</strong>。毕竟，谁不喜欢那种因性能自然增长而带来的愉悦感，以及借助其他语言优势生态快速完成功能的灵活性呢!</p>
<p>最后，感谢Go团队和Go社区在Go语言演进发展上做出的贡献，希望Go越走越好！</p>
<hr />
<p><a href="https://public.zsxq.com/groups/51284458844544">Gopher部落知识星球</a>在2024年将继续致力于打造一个高品质的Go语言学习和交流平台。我们将继续提供优质的Go技术文章首发和阅读体验。同时，我们也会加强代码质量和最佳实践的分享，包括如何编写简洁、可读、可测试的Go代码。此外，我们还会加强星友之间的交流和互动。欢迎大家踊跃提问，分享心得，讨论技术。我会在第一时间进行解答和交流。我衷心希望Gopher部落可以成为大家学习、进步、交流的港湾。让我相聚在Gopher部落，享受coding的快乐! 欢迎大家踊跃加入！</p>
<p><img src="http://image.tonybai.com/img/tonybai/gopher-tribe-zsxq-small-card.png" alt="img{512x368}" /><br />
<img src="http://image.tonybai.com/img/tonybai/go-programming-from-beginner-to-master-qr.png" alt="img{512x368}" /></p>
<p><img src="http://image.tonybai.com/img/tonybai/go-first-course-banner.png" alt="img{512x368}" /><br />
<img src="http://image.tonybai.com/img/tonybai/imooc-go-column-pgo-with-qr.jpg" alt="img{512x368}" /></p>
<p>著名云主机服务厂商DigitalOcean发布最新的主机计划，入门级Droplet配置升级为：1 core CPU、1G内存、25G高速SSD，价格5$/月。有使用DigitalOcean需求的朋友，可以打开这个<a href="https://m.do.co/c/bff6eed92687">链接地址</a>：https://m.do.co/c/bff6eed92687 开启你的DO主机之路。</p>
<p>Gopher Daily(Gopher每日新闻) &#8211; https://gopherdaily.tonybai.com</p>
<p>我的联系方式：</p>
<ul>
<li>微博(暂不可用)：https://weibo.com/bigwhite20xx</li>
<li>微博2：https://weibo.com/u/6484441286</li>
<li>博客：tonybai.com</li>
<li>github: https://github.com/bigwhite</li>
<li>Gopher Daily归档 &#8211; https://github.com/bigwhite/gopherdaily</li>
<li>Gopher Daily Feed订阅 &#8211; https://gopherdaily.tonybai.com/feed</li>
</ul>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。</p>
<p style='text-align:left'>&copy; 2025, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2025/01/06/the-2024-review-of-go-programming-language/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Go，15岁了[译]</title>
		<link>https://tonybai.com/2024/11/12/go-turns-15/</link>
		<comments>https://tonybai.com/2024/11/12/go-turns-15/#comments</comments>
		<pubDate>Tue, 12 Nov 2024 10:49:48 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[AustinClements]]></category>
		<category><![CDATA[bisect]]></category>
		<category><![CDATA[FIPS]]></category>
		<category><![CDATA[FIPS-140]]></category>
		<category><![CDATA[forloop]]></category>
		<category><![CDATA[GC]]></category>
		<category><![CDATA[genkit]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Go1]]></category>
		<category><![CDATA[go1.18]]></category>
		<category><![CDATA[go1.21]]></category>
		<category><![CDATA[go1.23]]></category>
		<category><![CDATA[go1.24]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[gomodule]]></category>
		<category><![CDATA[gopls]]></category>
		<category><![CDATA[gotcha]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[LangChain]]></category>
		<category><![CDATA[langchaingo]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[loopvar]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[mux]]></category>
		<category><![CDATA[ollama]]></category>
		<category><![CDATA[rand]]></category>
		<category><![CDATA[RobPike]]></category>
		<category><![CDATA[Router]]></category>
		<category><![CDATA[SIMD]]></category>
		<category><![CDATA[swisstable]]></category>
		<category><![CDATA[Telemetry]]></category>
		<category><![CDATA[TIOBE]]></category>
		<category><![CDATA[云计算]]></category>
		<category><![CDATA[优化]]></category>
		<category><![CDATA[向前兼容]]></category>
		<category><![CDATA[垃圾回收]]></category>
		<category><![CDATA[大模型]]></category>
		<category><![CDATA[模块]]></category>
		<category><![CDATA[泛型]]></category>
		<category><![CDATA[语言服务器]]></category>
		<category><![CDATA[陷阱]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=4387</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2024/11/12/go-turns-15 虽然迟到了，但绝不缺席！新任Go技术负责人Austin Clements在Go语言15岁生日后的第二天，在Go官方博客上发表了庆祝文章“Go Turns 15”。在这篇文章中，Austin回顾了过去一年Go项目和社区的变化，以及Go团队的努力工作，并对Go的未来发展进行了展望。我在此对这篇庆生文进行了翻译，供大家参考。 Go，生日快乐！ 周日，我们庆祝了Go开源15周年！ 自从Go诞生10周年以来，无论是Go语言本身还是整个世界都经历了巨大的变化。尽管如此，有些方面依然保持不变：Go始终致力于稳定性、安全性，以及支持软件工程和大规模生产。 Go语言发展势头强劲！在过去五年中，Go的用户群增加了三倍多(译注：不知道这个数据从何而来)，成为增长最快的编程语言之一。自十五年前诞生以来，Go已成为十大编程语言之一，并成为现代云计算的主要语言。 来自TIOBE 2024年11月排行榜(译者配图) 来自Github Octoverse 2024(译者配图) 随着Go 1.22版本在二月份发布和Go 1.23版本在八月份发布，这一年可被称为“for循环之年”。Go 1.22将for循环中引入变量的作用域改为每次迭代，而非整个循环，从而解决了一个长期存在的语言“陷阱”。十多年前，在Go 1发布之前，Go团队对几个语言细节做出了决策，其中就包括for循环是否应该在每次迭代中创建一个新的循环变量。有趣的是，这次讨论非常简短且没有明确的意见。Rob Pike以他一贯的风格结束了讨论，只说了一个字：“stet”（保持原样）。结果也确实如此。尽管当时看似微不足道，但多年的生产经验突显了这一决策的影响。然而，在此期间，我们还构建了强大的工具来理解对Go的变更影响，特别是在整个Google代码库中进行生态系统范围的分析和测试，并建立了与社区合作和获取反馈的流程。在经过广泛的测试、分析和社区讨论后，我们推出了这一变更，并配备了哈希二分工具，以帮助开发者在大规模代码中精确定位受影响的部分。 对for循环的变更仅是是五年演进调整的一部分。这一变更的实现得益于Go 1.21中引入的向前兼容性，而这又建立在四年半前Go 1.14发布的Go模块基础之上。 译注：Go module首次在Go 1.11版本由Russ Cox设计和实现，Go 1.14版本首次宣布Go module具备生产使用的成熟度了。 Go 1.23在此变更的基础上进一步引入了迭代器和用户定义的for-range循环。结合仅仅两年半前在Go 1.18中引入的泛型！——这为自定义集合和许多其他编程模式奠定了强大而人性化的基础。 这些版本还带来了许多生产就绪方面的改进，包括备受期待的标准库HTTP路由器增强、执行跟踪的全面重构，以及为所有Go应用程序提供更强的随机性。此外，我们的第一个v2标准库包的引入为未来的标准库演进和现代化建立了模板。 在过去的一年中，我们还谨慎地推出了Go工具的自愿使用的遥测系统。该系统将为Go开发者提供数据，以便他们做出更好的决策，同时保持完全开放和匿名。Go遥测最初出现在gopls（Go语言服务器）中，已经带来了许多改进。这项努力为使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系统的优秀语言。作为云基础设施的可靠语言，Go自然成为大型语言模型（LLM）基础设施的理想选择。针对AI应用，我们将继续在流行的AI SDK中为Go提供一流的支持，包括LangChainGo和Genkit。从一开始，Go就旨在改善端到端的软件工程过程，因此我们自然希望引入AI的最新工具和技术，以减少开发者的重复劳动，从而留出更多时间来进行更有趣的编程活动！ 感谢您！ 所有这一切的实现都离不开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每日新闻) &#8211; https://gopherdaily.tonybai.com 我的联系方式： [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/go-turns-15-1.png" alt="" /></p>
<p><a href="https://tonybai.com/2024/11/12/go-turns-15">本文永久链接</a> &#8211; https://tonybai.com/2024/11/12/go-turns-15</p>
<p>虽然迟到了，但绝不缺席！<a href="https://tonybai.com/2024/10/10/pass-torch-to-go-new-leadership-team/">新任Go技术负责人Austin Clements</a>在Go语言15岁生日后的第二天，在Go官方博客上发表了庆祝文章“<a href="https://go.dev/blog/15years">Go Turns 15</a>”。在这篇文章中，Austin回顾了过去一年Go项目和社区的变化，以及Go团队的努力工作，并对Go的未来发展进行了展望。我在此对这篇庆生文进行了翻译，供大家参考。</p>
<hr />
<p>Go，生日快乐！</p>
<p>周日，我们庆祝了<a href="https://opensource.googleblog.com/2009/11/hey-ho-lets-go.html">Go开源15周年</a>！</p>
<p>自从<a href="https://go.dev/blog/10years">Go诞生10周年</a>以来，无论是Go语言本身还是整个世界都经历了巨大的变化。尽管如此，有些方面依然保持不变：<strong>Go始终致力于稳定性、安全性，以及支持软件工程和大规模生产</strong>。</p>
<p>Go语言发展势头强劲！在过去五年中，Go的用户群增加了三倍多(译注：不知道这个数据从何而来)，成为增长最快的编程语言之一。自十五年前诞生以来，<a href="https://mp.weixin.qq.com/s?__biz=MzIyNzM0MDk0Mg==&amp;mid=2247497403&amp;idx=1&amp;sn=03bc972e38163e1539da765249d46586&amp;chksm=e860115adf17984cfe47f9680d8c0fb6370987ad45415ff2d38233d05fe6b315210ce6ada385#rd">Go已成为十大编程语言</a>之一，并<a href="https://tonybai.com/2024/08/17/go-the-c-language-of-the-internet-era-come-true/">成为现代云计算的主要语言</a>。</p>
<p><img src="https://tonybai.com/wp-content/uploads/go-turns-15-2.png" alt="" /><br />
<center>来自TIOBE 2024年11月排行榜(译者配图)</center></p>
<p><img src="https://tonybai.com/wp-content/uploads/go-turns-15-3.png" alt="" /><br />
<center>来自Github Octoverse 2024(译者配图)</center></p>
<p>随着<a href="https://tonybai.com/2024/02/18/some-changes-in-go-1-22/">Go 1.22版本</a>在二月份发布和<a href="https://tonybai.com/2024/08/19/some-changes-in-go-1-23/">Go 1.23版本</a>在八月份发布，这一年可被称为“for循环之年”。Go 1.22将for循环中引入变量的作用域<a href="https://go.dev/blog/loopvar-preview">改为每次迭代</a>，而非整个循环，从而解决了一个长期存在的语言“陷阱”。十多年前，在Go 1发布之前，Go团队对几个语言细节做出了决策，其中就包括for循环是否应该在每次迭代中创建一个新的循环变量。有趣的是，这次讨论非常简短且没有明确的意见。Rob Pike以他一贯的风格结束了讨论，只说了一个字：“stet”（保持原样）。结果也确实如此。尽管当时看似微不足道，但多年的生产经验突显了这一决策的影响。然而，在此期间，我们还构建了强大的工具来理解对Go的变更影响，特别是在整个Google代码库中进行生态系统范围的分析和测试，并建立了与社区合作和获取反馈的流程。在经过广泛的测试、分析和社区讨论后，我们推出了这一变更，并配备了<a href="https://go.googlesource.com/proposal/+/master/design/60078-loopvar.md#transition-support-tooling">哈希二分工具</a>，以帮助开发者在大规模代码中精确定位受影响的部分。</p>
<p>对for循环的变更仅是是五年演进调整的一部分。这一变更的实现得益于<a href="https://tonybai.com/2023/09/10/understand-go-forward-compatibility-and-toolchain-rule/">Go 1.21中引入的向前兼容性</a>，而这又建立在四年半前<a href="https://tonybai.com/2020/03/08/some-changes-in-go-1-14/">Go 1.14</a>发布的<a href="https://tonybai.com/tag/gomodule">Go模块</a>基础之上。</p>
<blockquote>
<p>译注：Go module首次在Go 1.11版本由Russ Cox设计和实现，Go 1.14版本首次宣布Go module具备生产使用的成熟度了。</p>
</blockquote>
<p>Go 1.23在此变更的基础上进一步引入了<a href="https://tonybai.com/2024/06/24/range-over-func-and-package-iter-in-go-1-23/">迭代器和用户定义的for-range循环</a>。结合仅仅两年半前在Go 1.18中引入的泛型！——这为自定义集合和许多其他编程模式奠定了强大而人性化的基础。</p>
<p>这些版本还带来了许多生产就绪方面的改进，包括备受期待的<a href="https://go.dev/blog/routing-enhancements">标准库HTTP路由器增强</a>、<a href="https://go.dev/blog/execution-traces-2024">执行跟踪的全面重构</a>，以及<a href="https://go.dev/blog/chacha8rand">为所有Go应用程序提供更强的随机性</a>。此外，我们的<a href="https://go.dev/blog/randv2">第一个v2标准库包</a>的引入为未来的标准库演进和现代化建立了模板。</p>
<p>在过去的一年中，我们还谨慎地推出了Go工具的<a href="https://mp.weixin.qq.com/s?__biz=MzIyNzM0MDk0Mg==&amp;mid=2247497282&amp;idx=1&amp;sn=30e10a7091c270d5dcd5e1b3c57bdf2c&amp;chksm=e86011a3df1798b57870fedccbbda20d0a334413e15c768476a18fe9446a89432e776a8fbf1c#rd">自愿使用的遥测系统</a>。该系统将为Go开发者提供数据，以便他们做出更好的决策，同时保持<a href="https://telemetry.go.dev/">完全开放</a>和匿名。Go遥测最初出现在gopls（Go语言服务器）中，已经带来了<a href="https://github.com/golang/go/issues?q=is%3Aissue+label%3Agopls%2Ftelemetry-wins">许多改进</a>。这项努力为使Go编程体验变得更加出色奠定了基础。</p>
<p>展望未来，我们正在不断演进Go，以更好地利用当前和未来硬件的能力。在过去的15年中，硬件发生了巨大的变化。为了确保Go能够在接下来的15年中继续支持高性能、大规模的生产工作负载，我们需要适应大型多核处理器、先进的指令集，以及在non-uniform内存层次结构中日益重要的局部性。其中一些改进将是透明的。Go 1.24将推出全新底层实现的map，以提高在现代CPU上的执行效率。同时，我们正在进行新的垃圾回收算法的原型设计，以适应现代硬件的能力和限制。一些改进将以新的API和工具的形式出现，以便Go开发者更好地利用现代硬件。我们正在研究如何支持最新的向量和矩阵硬件指令，以及应用程序如何构建CPU和内存的局部性。指导我们努力的一个核心原则是<strong>可组合优化(composable optimization)</strong>：优化对代码库的影响应该尽可能局部化，以确保对其余代码库开发的便捷性不受影响。</p>
<p>我们将继续确保Go的标准库在默认情况下是安全的，并在设计上也考虑到安全性。这包括不断努力将内置的、原生支持的FIPS认证加密功能纳入其中，使得需要FIPS加密的应用程序只需简单切换一个命令行标志即可使用。此外，我们还在不断改进Go的标准库包，并借鉴math/rand/v2的例子，考虑在哪里可以引入新的API，以显著提高编写安全和可靠的Go代码的便利性。</p>
<p>我们正在努力使Go在人工智能领域表现更好，同时也让人工智能更好地服务于Go，增强其在AI基础设施、应用程序和开发者辅助工具方面的能力。Go是一种非常适合构建生产系统的语言，我们希望它也能成为<a href="https://go.dev/blog/llmpowered">构建生产级AI系统</a>的优秀语言。作为云基础设施的可靠语言，Go自然成为<a href="https://ollama.com/">大型语言模型（LLM）基础设施</a>的理想选择。针对AI应用，我们将继续在流行的AI SDK中为Go提供一流的支持，包括<a href="https://pkg.go.dev/github.com/tmc/langchaingo">LangChainGo</a>和<a href="https://developers.googleblog.com/en/introducing-genkit-for-go-build-scalable-ai-powered-apps-in-go/">Genkit</a>。从一开始，Go就旨在改善端到端的软件工程过程，因此我们自然希望引入AI的最新工具和技术，以减少开发者的重复劳动，从而留出更多时间来进行更有趣的编程活动！</p>
<p>感谢您！</p>
<p>所有这一切的实现都离不开Go的杰出贡献者和蓬勃发展的社区。十五年前，我们只能憧憬Go所取得的成功以及围绕Go发展起来的社区。感谢每一位参与其中的人，无论贡献大小。我们祝愿大家在新的一年里一切顺利！</p>
<hr />
<p><a href="https://public.zsxq.com/groups/51284458844544">Gopher部落知识星球</a>在2024年将继续致力于打造一个高品质的Go语言学习和交流平台。我们将继续提供优质的Go技术文章首发和阅读体验。同时，我们也会加强代码质量和最佳实践的分享，包括如何编写简洁、可读、可测试的Go代码。此外，我们还会加强星友之间的交流和互动。欢迎大家踊跃提问，分享心得，讨论技术。我会在第一时间进行解答和交流。我衷心希望Gopher部落可以成为大家学习、进步、交流的港湾。让我相聚在Gopher部落，享受coding的快乐! 欢迎大家踊跃加入！</p>
<p><img src="http://image.tonybai.com/img/tonybai/gopher-tribe-zsxq-small-card.png" alt="img{512x368}" /><br />
<img src="http://image.tonybai.com/img/tonybai/go-programming-from-beginner-to-master-qr.png" alt="img{512x368}" /></p>
<p><img src="http://image.tonybai.com/img/tonybai/go-first-course-banner.png" alt="img{512x368}" /><br />
<img src="http://image.tonybai.com/img/tonybai/imooc-go-column-pgo-with-qr.jpg" alt="img{512x368}" /></p>
<p>著名云主机服务厂商DigitalOcean发布最新的主机计划，入门级Droplet配置升级为：1 core CPU、1G内存、25G高速SSD，价格5$/月。有使用DigitalOcean需求的朋友，可以打开这个<a href="https://m.do.co/c/bff6eed92687">链接地址</a>：https://m.do.co/c/bff6eed92687 开启你的DO主机之路。</p>
<p>Gopher Daily(Gopher每日新闻) &#8211; https://gopherdaily.tonybai.com</p>
<p>我的联系方式：</p>
<ul>
<li>微博(暂不可用)：https://weibo.com/bigwhite20xx</li>
<li>微博2：https://weibo.com/u/6484441286</li>
<li>博客：tonybai.com</li>
<li>github: https://github.com/bigwhite</li>
<li>Gopher Daily归档 &#8211; https://github.com/bigwhite/gopherdaily</li>
<li>Gopher Daily Feed订阅 &#8211; https://gopherdaily.tonybai.com/feed</li>
</ul>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。</p>
<p style='text-align:left'>&copy; 2024, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2024/11/12/go-turns-15/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>从DevOps到日常脚本：聊聊Go语言的多面性</title>
		<link>https://tonybai.com/2024/10/08/go-languages-versatility-from-devops-to-daily-scripts/</link>
		<comments>https://tonybai.com/2024/10/08/go-languages-versatility-from-devops-to-daily-scripts/#comments</comments>
		<pubDate>Mon, 07 Oct 2024 22:46:09 +0000</pubDate>
		<dc:creator>bigwhite</dc:creator>
				<category><![CDATA[技术志]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[binfmt_misc]]></category>
		<category><![CDATA[Channel]]></category>
		<category><![CDATA[chmod]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[gobuild]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[gomacro]]></category>
		<category><![CDATA[gomodule]]></category>
		<category><![CDATA[gore]]></category>
		<category><![CDATA[goroutine]]></category>
		<category><![CDATA[gorun]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PlatformEngineering]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[reddit]]></category>
		<category><![CDATA[REPL]]></category>
		<category><![CDATA[Rust]]></category>
		<category><![CDATA[SheBang]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[TIOBE]]></category>
		<category><![CDATA[yaegi]]></category>
		<category><![CDATA[平台工程]]></category>
		<category><![CDATA[并发]]></category>
		<category><![CDATA[标准库]]></category>
		<category><![CDATA[编译]]></category>
		<category><![CDATA[脚本]]></category>
		<category><![CDATA[跨平台]]></category>

		<guid isPermaLink="false">https://tonybai.com/?p=4322</guid>
		<description><![CDATA[本文永久链接 &#8211; https://tonybai.com/2024/10/08/go-languages-versatility-from-devops-to-daily-scripts 2024年初，TIOBE编程语言排行榜上，Go再次进入了前十，并在之后又成功冲高至第七名。 Go语言的排名上升，至少在Reddit Go论坛上帖子数量和在线人数上得到了体现，尽管目前与Rust热度仍有差距，但可见Go的关注度在提升： 2024年国庆节假期某天下午的实时在线数对比 随着Go语言人气的上升，论坛中的问题也变得愈发多样化。许多Gopher常常问及为何Go是DevOps语言和Go适合用作脚本语言吗等问题，这些都反映了Go语言的多面性。 从最初的系统编程语言，到如今在DevOps领域的广泛应用，再到一些场合被探索用作脚本语言，Go展现出了令人惊叹的灵活性和适应性。在本篇文章中，我们将聚焦于Go语言在DevOps领域的应用以及它作为脚本替代语言的潜力，聊聊其强大多面性如何满足这些特定场景的需求。 1. Go在DevOps中的优势 随着DevOps的发展，平台工程(Platform Engineering)这一新兴概念逐渐兴起。在自动化任务、微服务部署和系统管理中，编程语言的作用变得愈发重要。Go语言凭借其高性能、并发处理能力以及能够编译成单一二进制文件的特点，越来越受到DevOps领域开发人员的青睐，成为开发DevOps工具链的重要组成部分。 首先，Go的跨平台编译能力使得DevOps团队可以在一个平台上编译，然后在多个不同的操作系统和架构上运行，结合编译出的单一可执行文件的能力，大大简化了部署流程，这也是很多Go开发者认为Go适合DevOps的第一优势： $GOOS=linux GOARCH=amd64 go build -o myapp-linux-amd64 main.go $GOOS=linux GOARCH=arm64 go build -o myapp-linux-arm64 main.go $GOOS=darwin GOARCH=amd64 go build -o myapp-darwin-amd64 main.go $GOOS=windows GOARCH=amd64 go build -o myapp-windows-amd64.exe main.go 其次，Go的标准库仿佛“瑞士军刀”，开箱即用，为DevOps场景提供了所需的丰富的网络、加密和系统操作功能库，大幅降低对外部的依赖，即便不使用第三方包生态系统，也可以满足大部分的DevOps功能需求。 此外，Go的goroutines和channels为处理高并发任务提供了极大便利，这在DevOps中也尤为重要。例如，以下代码展示了如何使用goroutines并发检查多个服务的健康状态： func checkServices(services []string) { var wg sync.WaitGroup for _, service := [...]]]></description>
			<content:encoded><![CDATA[<p><img src="https://tonybai.com/wp-content/uploads/go-languages-versatility-from-devops-to-daily-scripts-1.png" alt="" /></p>
<p><a href="https://tonybai.com/2024/10/08/go-languages-versatility-from-devops-to-daily-scripts">本文永久链接</a> &#8211; https://tonybai.com/2024/10/08/go-languages-versatility-from-devops-to-daily-scripts</p>
<p>2024年初，TIOBE编程语言排行榜上，<a href="https://mp.weixin.qq.com/s?__biz=MzIyNzM0MDk0Mg==&amp;mid=2247497403&amp;idx=1&amp;sn=03bc972e38163e1539da765249d46586&amp;chksm=e860115adf17984cfe47f9680d8c0fb6370987ad45415ff2d38233d05fe6b315210ce6ada385#rd">Go再次进入了前十，并在之后又成功冲高至第七名</a>。</p>
<p>Go语言的排名上升，至少在<a href="https://www.reddit.com/r/golang/">Reddit Go论坛</a>上帖子数量和在线人数上得到了体现，尽管目前与<a href="https://tonybai.com/tag/rust">Rust</a>热度仍有差距，但可见Go的关注度在提升：</p>
<p><img src="https://tonybai.com/wp-content/uploads/go-languages-versatility-from-devops-to-daily-scripts-2.png" alt="" /><br />
<center>2024年国庆节假期某天下午的实时在线数对比</center></p>
<p>随着Go语言人气的上升，论坛中的问题也变得愈发多样化。许多Gopher常常问及<a href="https://www.reddit.com/r/golang/comments/1fqwbv0/why_is_golang_the_language_of_devops/">为何Go是DevOps语言</a>和<a href="https://www.reddit.com/r/golang/comments/1ftpk2m/do_you_use_go_for_scripts/">Go适合用作脚本语言吗</a>等问题，这些都反映了Go语言的多面性。</p>
<p>从最初的系统编程语言，到如今在DevOps领域的广泛应用，再到一些场合被探索用作脚本语言，Go展现出了令人惊叹的灵活性和适应性。在本篇文章中，我们将聚焦于Go语言在DevOps领域的应用以及它作为脚本替代语言的潜力，聊聊其强大多面性如何满足这些特定场景的需求。</p>
<h2>1. Go在DevOps中的优势</h2>
<p>随着DevOps的发展，<a href="https://en.wikipedia.org/wiki/Platform_engineering">平台工程(Platform Engineering)</a>这一新兴概念逐渐兴起。在自动化任务、微服务部署和系统管理中，编程语言的作用变得愈发重要。Go语言凭借其高性能、并发处理能力以及能够编译成单一二进制文件的特点，越来越受到DevOps领域开发人员的青睐，成为开发DevOps工具链的重要组成部分。</p>
<p>首先，Go的跨平台编译能力使得DevOps团队可以在一个平台上编译，然后在多个不同的操作系统和架构上运行，结合<strong>编译出的单一可执行文件</strong>的能力，大大简化了部署流程，这也是很多Go开发者认为Go适合DevOps的第一优势：</p>
<pre><code>$GOOS=linux GOARCH=amd64 go build -o myapp-linux-amd64 main.go
$GOOS=linux GOARCH=arm64 go build -o myapp-linux-arm64 main.go
$GOOS=darwin GOARCH=amd64 go build -o myapp-darwin-amd64 main.go
$GOOS=windows GOARCH=amd64 go build -o myapp-windows-amd64.exe main.go
</code></pre>
<p>其次，Go的标准库仿佛“瑞士军刀”，开箱即用，<strong>为DevOps场景提供了所需的丰富的网络、加密和系统操作功能库</strong>，大幅降低对外部的依赖，即便不使用第三方包生态系统，也可以满足大部分的DevOps功能需求。</p>
<p>此外，Go的goroutines和channels为处理高并发任务提供了极大便利，这在DevOps中也尤为重要。例如，以下代码展示了如何使用goroutines并发检查多个服务的健康状态：</p>
<pre><code>func checkServices(services []string) {
    var wg sync.WaitGroup
    for _, service := range services {
        wg.Add(1)
        go func(s string) {
            defer wg.Done()
            if err := checkHealth(s); err != nil {
                log.Printf("Service %s is unhealthy: %v", s, err)
            } else {
                log.Printf("Service %s is healthy", s)
            }
        }(service)
    }
    wg.Wait()
}
</code></pre>
<p>并且，许多知名的DevOps基础设施、中间件和工具都是用Go编写的，如Docker、Kubernetes、Prometheus等，集成起来非常丝滑。这些工具的成功进一步证明了Go在DevOps领域的适用性。</p>
<h2>2. Go作为脚本语言的潜力</h2>
<p>在传统的DevOps任务中，Python和Shell脚本长期以来都是主力军，它们(尤其是Python)以其简洁的语法和丰富的生态系统赢得了DevOps社区的广泛青睐。然而，传统主力Python和Shell脚本虽然灵活易用，但在处理大规模数据或需要高性能的场景时往往力不从心。此外，它们的动态类型系统可能导致运行时错误，增加了调试难度。</p>
<p>随着Go的普及，它的“超高性价比”逐渐被开发运维人员所接受：<strong>既有着接近于脚本语言的较低的学习曲线与较高的生产力(也得益于Go超快的编译速度)，又有着静态语言的高性能，还有单一文件在部署方面的便利性</strong>。</p>
<p>下面是一个简单的文件处理脚本，用于向大家展示Go的简单易学：</p>
<pre><code>package main

import (
    "bufio"
    "fmt"
    "os"
    "strings"
)

func main() {
    file, err := os.Open("input.txt")
    if err != nil {
        fmt.Println("Error opening file:", err)
        return
    }
    defer file.Close()

    scanner := bufio.NewScanner(file)
    for scanner.Scan() {
        line := scanner.Text()
        if strings.Contains(line, "ERROR") {
            fmt.Println(line)
        }
    }
}
</code></pre>
<p>这个示例虽然要比同等功能的Python或shell代码行数要多，但由于Go的简单和直观，多数人都很容易看懂这段代码。</p>
<p>此外，Go的静态强类型系统可以在编译时捕获更多错误，避免在运行时的调试，提高了脚本在运行时的可靠性。</p>
<p>开发运维人员眼中的脚本语言，如Shell脚本和Python脚本，通常是直接基于源代码进行解释和运行的。实际上，Go语言同样可以实现这一点，而其关键工具就是go run命令。这个命令允许开发者快速执行Go代码，从而使Go源码看起来更像是“脚本”，下面我们就来看看go run。</p>
<h2>3. go run：桥接编译型语言与脚本语言的利器</h2>
<p>我们知道go run命令实际上是编译和运行的组合，它<strong>首先编译源代码，然后立即执行生成的二进制文件</strong>。这个过程对用户来说是透明的，使得Go程序可以像脚本一样方便地运行。这一命令也大大简化了Go程序的开发流程，使Go更接近传统的脚本语言工作流。可以说，通过go run，Go语言向脚本语言的使用体验更靠近了一步。</p>
<p>此外，go run与go build在编译阶段的行为并不完全相同：</p>
<ul>
<li>
<p>go run在运行结束后，不保留编译后的二进制文件；而go build生成可执行文件并保留。</p>
</li>
<li>
<p>go run编译时<strong>默认不包含调试信息，以减少构建时间</strong>；而go build则保留完整的调试信息。</p>
</li>
<li>
<p>go run可以使用-exec标志指定运行环境，比如：</p>
</li>
</ul>
<pre><code>$go run -exec="ls" main.go
/var/folders/cz/sbj5kg2d3m3c6j650z0qfm800000gn/T/go-build1742641170/b001/exe/main
</code></pre>
<p>我们看到，如果设置了-exec标志，那么go run -exec=”prog” main.go args编译后的命令执行就变为了”prog a.out args”。go run还支持跨平台模拟执行，当GOOS或GOARCH与系统默认值不同时，如果在\$PATH路径下存在名为”go_\$GOOS_\$GOARCH_exec”的程序，那么go run就会执行：</p>
<pre><code>$go_$GOOS_$GOARCH_exec a.out args

比如：go_js_wasm_exec a.out args
</code></pre>
<ul>
<li>
<p>go run通常用于运行main包，在go module开启的情况下，go run使用的是main module的上下文。go build可以编译多个包，对于非main包时只检查构建而不生成输出</p>
</li>
<li>
<p>go run还支持运行一个指定版本号的包</p>
</li>
</ul>
<p>当指定了版本后缀（如@v1.0.0或@latest）时，go run会进入module-aware mode（模块感知模式），并忽略当前目录或上级目录中的go.mod文件。这意味着，即使你当前的项目中存在依赖管理文件go.mod，go run也不会影响或修改当前项目的依赖关系，下面这个示例展示了这一点：</p>
<pre><code>$go run golang.org/x/example/hello@latest

go: downloading golang.org/x/example v0.0.0-20240925201653-1a5e218e5455
go: downloading golang.org/x/example/hello v0.0.0-20240925201653-1a5e218e5455
Hello, world!
</code></pre>
<p>这个功能特别适合在不影响主模块依赖的情况下，临时运行某个工具或程序。例如，如果你只是想测试某个工具的特定版本，或者快速运行一个远程程序包，而不希望它干扰你正在开发的项目中的依赖项，这种方式就很实用。</p>
<p>不过有一点要注意的是：go run的退出状态并不等于编译后二进制文件的退出状态，看下面这个示例：</p>
<pre><code>// main.go成功退出
$go run main.go
Hello from myapp!
$echo $?
0

// main.go中调用os.Exit(2)退出
$go run main.go
Hello from myapp!
exit status 2
$echo $?
1
</code></pre>
<p>go run使用退出状态1来表示其运行程序的异常退出状态，但这个值和真实的exit的状态值不相等。</p>
<p>到这里我们看到，go run xxx.go可以像bash xxx.sh或python xxx.py那样，以“解释”方式运行一个Go源码文件。这使得Go语言在某种程度上具备了脚本语言的特性。然而，在脚本语言中，例如Bash或Python等，用户可以通过将源码文件设置为可执行，并在文件的首行添加适当的解释器指令，从而直接运行脚本，而无需显式调用解释器。这种灵活性使得脚本的执行变得更加简便。那么Go是否也可以做到这一点呢？我们继续往下看。</p>
<h2>4. Go脚本化的实现方式</h2>
<p>下面是通过一些技巧或第三方工具实现Go脚本化的方法。对于喜欢使用脚本的人来说，最熟悉的莫过于shebang（即解释器指令）。在许多脚本语言中，通过在文件的第一行添加指定的解释器路径，可以直接运行脚本，而无需显式调用解释器。例如，在Bash或Python脚本中，通常会看到这样的行：</p>
<pre><code>#!/usr/bin/env python3
</code></pre>
<p>那么Go语言支持shebang吗? 是否可以实现实现类似的效果呢？我们下面来看看。</p>
<h3>4.1 使用“shebang(#!)”运行Go脚本</h3>
<p>很遗憾，Go不能直接支持shebang，我们看一下这个示例main.go：</p>
<pre><code>#!/usr/bin/env go run 

package main

import (
    "fmt"
    "os"
)

func main() {
    s := "world"
    if len(os.Args) &gt; 1 {
        s = os.Args[1]
    }
    fmt.Printf("Hello, %v!\n", s)
}
</code></pre>
<p>这一示例的第一行就是一个shebang解释器指令，我们chmod u+x main.go，然后执行该Go“脚本”：</p>
<pre><code>$./main.go
main.go:1:1: illegal character U+0023 '#'
</code></pre>
<p>这个执行过程中，Shell可以正常识别shebang，然后调用go run去运行main.go，问题就在于go编译器视shebang这一行为非法语法！</p>
<p>常规的shebang写法行不通，我们就使用一些trick，下面是改进后的示例：</p>
<pre><code>//usr/bin/env go run $0 $@; exit

package main

import (
    "fmt"
    "os"
)

func main() {
    s := "world"
    if len(os.Args) &gt; 1 {
        s = os.Args[1]
    }
    fmt.Printf("Hello, %v!\n", s)
}
</code></pre>
<p>这段代码则可以chmod +x 后直接运行：</p>
<pre><code>$./main.go
Hello, world!
$./main.go gopher
Hello, gopher!
</code></pre>
<p>这是因为它巧妙地结合了shell脚本和Go代码的特性。我们来看一下第一行：</p>
<pre><code>//usr/bin/env go run $0 $@; exit
</code></pre>
<p>这一行看起来像是Go的注释，但实际上是一个shell命令。当文件被执行时，shell会解释这一行，/usr/bin/env用于寻找go命令的路径，go run \$0 \$@ 告诉go命令运行当前脚本文件(\$0)以及所有传递给脚本的参数(\$@)，当go run编译这个脚本时，又会将第一行当做注释行而忽略，这就是关键所在。最后的exit确保shell在Go程序执行完毕后退出。如果没有exit，shell会执行后续Go代码，那显然会导致报错！</p>
<p>除了上述trick外，我们还可以将Go源码文件注册为可执行格式(仅在linux上进行了测试)，下面就是具体操作步骤。</p>
<h3>4.2 在Linux系统中注册Go为可执行格式</h3>
<p>就像在Windows上双击某个文件后，系统打开特定程序处理对应的文件一样，我们也可以将Go源文件(xxx.go)注册为可执行格式，并指定用于处理该文件的程序。实现这一功能，我们需要借助binfmt_misc。binfmt_misc是Linux内核的一个功能，允许用户注册新的可执行文件格式。这使得Linux系统能够识别并执行不同类型的可执行文件，比如脚本、二进制文件等。</p>
<p>我们用下面命令将Go源文件注册到binfmt_misc中：</p>
<pre><code>echo ':golang:E::go::/usr/local/bin/gorun:OC' | sudo tee /proc/sys/fs/binfmt_misc/register
</code></pre>
<p>简单解释一下上述命令：</p>
<ul>
<li>:golang:：这是注册的格式的名称，可以自定义。</li>
<li>E::：表示执行文件的魔数（magic number），在这里为空，表示任何文件类型。</li>
<li>go::：指定用于执行的解释器，这里是go命令。</li>
<li>/usr/local/bin/gorun：指定用于执行的程序路径，这里是一个自定义的gorun脚本</li>
<li>:OC：表示这个格式是可执行的（O）并且支持在运行时创建（C）。</li>
</ul>
<p>当你执行一个Go源文件时，Linux内核会检查文件的类型。如果文件的格式与注册的格式匹配，内核会调用指定的解释器（在这个例子中是gorun）来执行该文件。</p>
<p>gorun脚本是我们自己编写的，源码如下：</p>
<pre><code>#!/bin/bash

# 检查是否提供了源文件
if [ -z "$1" ]; then
  echo "用法: gorun &lt;go源文件&gt; [参数...]"
  exit 1
fi

# 检查文件是否存在
if [ ! -f "$1" ]; then
  echo "错误: 文件 $1 不存在"
  exit 1
fi

# 将第一个参数作为源文件，剩余的参数作为执行参数
GO_FILE="$1"
shift  # 移除第一个参数，剩余的参数将会被传递

# 使用go run命令执行Go源文件，传递其余参数
go run "$GO_FILE" "$@"
</code></pre>
<p>将gorun脚本放置带/usr/local/bin下，并chmod +x使其具有可执行权限。</p>
<p>接下来，我们就可以直接执行不带有”shebang”的正常go源码了：</p>
<pre><code>// main.go
package main

import (
    "fmt"
    "os"
)

func main() {
      s := "world"
      if len(os.Args) &gt; 1 {
          s = os.Args[1]
      }
      fmt.Printf("Hello, %v!\n", s)
}
</code></pre>
<p>直接执行上述源文件：</p>
<pre><code>$ ./main.go
Hello, world!
$ ./main.go gopher
Hello, gopher!
</code></pre>
<h3>4.3 第三方工具支持</h3>
<p>Go社区也有一些将支持将Go源文件视为脚本的解释器工具，比如：<a href="https://github.com/traefik/yaegi">traefik/yaegi</a>等。</p>
<pre><code>$go install github.com/traefik/yaegi/cmd/yaegi@latest
go: downloading github.com/traefik/yaegi v0.16.1
$yaegi main.go
Hello, main.go!
</code></pre>
<p>yaegi还可以像python那样，提供Read-Eval-Print-Loop功能，我们可以与yaegi配合进行交互式“Go脚本”编码：</p>
<pre><code>$ yaegi
&gt; 1+2
: 3
&gt; import "fmt"
: 0xc0003900d0
&gt; fmt.Println("hello, golang")
hello, golang
: 14
&gt;
</code></pre>
<p>类似的提供REPL功能的第三方Go解释器还包括：<a href="https://github.com/cosmos72/gomacro">cosmos72/gomacro</a>、<a href="https://github.com/x-motemen/gore">x-motemen/gore</a>等，这里就不深入介绍了，感兴趣的童鞋可以自行研究。</p>
<h2>5. 小结</h2>
<p>在本文中，我们探讨了Go语言在DevOps和日常脚本编写中的多面性。首先，Go语言因其高性能、并发处理能力及跨平台编译特性，成为DevOps领域的重要工具，助力于自动化任务和微服务部署。其次，随着Go语言的普及，其作为脚本语言的潜力逐渐被开发运维人员认识，Go展现出了优于传统脚本语言的高效性和可靠性。</p>
<p>我们还介绍了Go脚本的实现方式，包括使用go run命令，它使得Go程序的执行更像传统脚本语言，同时也探讨了一些技巧和工具，帮助开发者将Go源码文件作为可执行脚本直接运行。通过这些探索，我们可以看到Go语言在现代开发中的灵活应用及其日益增长的吸引力。</p>
<p>随着AI能力的飞速发展，使用Go编写一个日常脚本就是分分钟的事情，但Go的特性让这样的脚本具备了传统脚本语言所不具备的并发性、可靠性和性能优势。我们有理由相信，Go在DevOps和脚本编程领域的应用将会越来越广泛，为开发者带来更多的可能性和便利。</p>
<h2>6. 参考资料</h2>
<ul>
<li><a href="https://blog.cloudflare.com/using-go-as-a-scripting-language-in-linux/">Using Go as a scripting language in Linux</a> &#8211; https://blog.cloudflare.com/using-go-as-a-scripting-language-in-linux/</li>
<li><a href="https://www.infoq.com/news/2020/04/go-scripting-language/">Go as a Scripting Language</a> &#8211; https://www.infoq.com/news/2020/04/go-scripting-language/</li>
<li><a href="https://utcc.utoronto.ca/~cks/space/blog/sysadmin/SysadminGoVsPython">Go compared to Python for small scale system administration scripts and tools</a> &#8211; https://utcc.utoronto.ca/~cks/space/blog/sysadmin/SysadminGoVsPython</li>
</ul>
<hr />
<p><a href="https://public.zsxq.com/groups/51284458844544">Gopher部落知识星球</a>在2024年将继续致力于打造一个高品质的Go语言学习和交流平台。我们将继续提供优质的Go技术文章首发和阅读体验。同时，我们也会加强代码质量和最佳实践的分享，包括如何编写简洁、可读、可测试的Go代码。此外，我们还会加强星友之间的交流和互动。欢迎大家踊跃提问，分享心得，讨论技术。我会在第一时间进行解答和交流。我衷心希望Gopher部落可以成为大家学习、进步、交流的港湾。让我相聚在Gopher部落，享受coding的快乐! 欢迎大家踊跃加入！</p>
<p><img src="http://image.tonybai.com/img/tonybai/gopher-tribe-zsxq-small-card.png" alt="img{512x368}" /><br />
<img src="http://image.tonybai.com/img/tonybai/go-programming-from-beginner-to-master-qr.png" alt="img{512x368}" /></p>
<p><img src="http://image.tonybai.com/img/tonybai/go-first-course-banner.png" alt="img{512x368}" /><br />
<img src="http://image.tonybai.com/img/tonybai/imooc-go-column-pgo-with-qr.jpg" alt="img{512x368}" /></p>
<p>著名云主机服务厂商DigitalOcean发布最新的主机计划，入门级Droplet配置升级为：1 core CPU、1G内存、25G高速SSD，价格5$/月。有使用DigitalOcean需求的朋友，可以打开这个<a href="https://m.do.co/c/bff6eed92687">链接地址</a>：https://m.do.co/c/bff6eed92687 开启你的DO主机之路。</p>
<p>Gopher Daily(Gopher每日新闻) &#8211; https://gopherdaily.tonybai.com</p>
<p>我的联系方式：</p>
<ul>
<li>微博(暂不可用)：https://weibo.com/bigwhite20xx</li>
<li>微博2：https://weibo.com/u/6484441286</li>
<li>博客：tonybai.com</li>
<li>github: https://github.com/bigwhite</li>
<li>Gopher Daily归档 &#8211; https://github.com/bigwhite/gopherdaily</li>
<li>Gopher Daily Feed订阅 &#8211; https://gopherdaily.tonybai.com/feed</li>
</ul>
<p><img src="http://image.tonybai.com/img/tonybai/iamtonybai-wechat-qr.png" alt="" /></p>
<p>商务合作方式：撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。</p>
<p style='text-align:left'>&copy; 2024, <a href='https://tonybai.com'>bigwhite</a>. 版权所有. </p>
]]></content:encoded>
			<wfw:commentRss>https://tonybai.com/2024/10/08/go-languages-versatility-from-devops-to-daily-scripts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
