Valuable insights
1.年度调查揭示行业趋势: 通过运行 State of JS、State of CSS 等年度开放调查,可以系统地了解全球网络开发者的工具使用偏好和技术采纳情况。
2.Solid 框架满意度领先: Solid 框架在最新的 State of JS 调查中表现出色,连续四年蝉联满意度榜首,表明开发者对该工具的积极评价极高。
3.TypeScript 成为默认标准: 调查数据显示,使用纯 TypeScript 的开发者群体已成为最大组成部分,标志着 TypeScript 正逐步成为现代 Web 开发的默认编码方式。
4.CSS :has() 受欢迎度高: :has() 选择器被评为过去一年中最受欢迎的新 CSS 特性,因为它开创了基于元素内容而非其父级进行定位的新可能性。
5.浏览器互操作性标准建立: 浏览器基线指标(Baseline Indicator)帮助开发者判断新特性是否安全使用,例如 CSS :has() 已在所有主流浏览器中实现支持。
6.AI 代码生成普及度有限: 尽管存在广泛讨论,但仅有 22% 的受访者表示他们大部分代码由人工智能生成,多数开发者仍以手动编码为主。
7.工程师头衔与高收入相关: 在最新的 State of Devs 调查中,拥有“工程师”(Engineer)头衔的开发者群体,其中位数收入往往高于“开发者”(Developer)群体。
8.体育运动是开发者爱好: 尽管存在刻板印象,但体育运动是开发者最常从事的爱好之一,甚至超越了电子游戏等其他常见选项。
9.调查数据对行业影响: 浏览器厂商会参考 State of CSS 等调查数据来确定 Interop 计划的未来焦点,社区反馈直接影响技术路线图的制定。
10.开发者对 JS 仍持积极态度: 出乎意料的是,开发者对 JavaScript 生态的整体满意度很高,这与几年前普遍存在的“JavaScript 疲劳”现象形成对比。
Sasha Grief 谈网络现状
本次分享由 Sasha Grief 主讲,主题聚焦于网络开发的现状。演讲者明确指出,讨论范围并非笼统的 Web 状态,而是基于其每年组织的一系列开放式网络开发调查所获得的见解,例如 State of JS、State of CSS 和 State of HTML 等。这些调查允许任何开发者参与,旨在收集广泛的用户数据。为了使分享更具互动性,演讲者设计了一个现场互动问答环节,参与者需通过数手指的方式来记录自己的生命值,共有三条初始生命,答错一次则失去一条,以测试知识掌握程度。
前端库使用情况与测试开始
互动环节首先考察了最新 State of JS 调查中三大最常用的前端框架。选项 A 提到了 Svelte、Solid 和 HTMX,选项 B 则是 Backbone、Knockout 和 Mood Tools,而选项 C 包含 React、Vue 和 Angular。对于未曾听闻选项 B 的年轻开发者无需担忧,因为这些是较早期的技术。最终答案揭晓为选项 C,即 React、Vue 和 Angular 依然是最广泛使用的框架。
框架满意度排名揭晓
调查不仅询问了使用情况,还深入了解了开发者对所用框架的感受。在满意度方面,有一个框架获得了压倒性的积极评价并名列第一。数据显示,Solid 框架(图表中黄色/橙色线)已连续四届调查中位居满意度榜首,表现非常抢眼。紧随其后的是绿色线条代表的框架,第三名则是 Vue.js,显示出其正在稳步回升。值得注意的是,大多数框架的满意度绝对值都保持在 70% 以上,这表明开发者在很大程度上享受使用当前这些框架的过程,是对维护者日常工作的肯定。
GitNation 会议体验
演讲者对本次会议的场地表示赞赏,提到能站在一个童年时非常喜欢的场馆里进行演讲是一种荣幸。该会议的一个显著优点是,在演讲结束后会设有专门的讨论室,与会者可以立即就演讲主题与其他参会者进行深入交流。演讲者从业余到专业演讲的十五到二十年间,认为本次会议的场地是所经历过的最优质的场地之一。
JavaScript 调查结果与 TypeScript
接下来的问题聚焦于 TypeScript 的使用情况。在受访者中,是仅使用 JavaScript、使用五五开的混合模式,还是仅使用 TypeScript 的开发者占多数?结果显示,最大的群体是选项 C,即完全只使用 TypeScript 的开发者。图表清晰地展示了 100% 使用 TypeScript 的群体占据了最大的比例。这强有力地证明了 TypeScript 不仅已经进入主流,而且正在成为编写 Web 代码的首选和默认方式。
“这表明如今 TypeScript 不仅已成为主流,而且实际上正成为编写 Web 代码的默认方式。”
TC39 委员会的未来提案
TC39 委员会负责决定 JavaScript 语言未来将采纳的新特性。每年该委员会会审议大量提案,但其中一个选项并非真实提案。问题在于,以下哪个选项不是真实的提案:A. 显式资源管理 (Explicit Resource Management),B. Temporal,C. 反向线程 (Reverse Threading),或 D. 装饰器 (Decorators)。
- 最受期待的提案之一是 Temporal,它将提供处理日期和时间的新方式,有望减少对 Moment.js 等第三方库的依赖。
- 显式资源管理 (Explicit Resource Management) 和装饰器 (Decorators) 也是真实且重要的提案。
- 反向线程 (Reverse Threading) 并非一个真实存在的提案,它实际上与螺栓和螺丝有关。
CSS 特性采纳与浏览器支持
尽管这不是 CSS 专场,但调查中仍包含关于 CSS 特性的问题。受访者被问及过去一年中最享受使用的特性是哪一个,选项包括 :has、子网格 (subgrid) 或 float right。最终的赢家是 CSS 的 :has 选择器。这是一个非常出色的新特性,它允许开发者根据元素包含的内容(子元素)来定位该元素,而不是像传统 CSS 那样仅基于其父元素进行定位,这为 CSS 带来了许多新的可能性。
CSS :has 选择器的浏览器支持
拥有新特性固然重要,但如果浏览器不支持,其实用性就会大打折扣。因此,调查询问了截至 2025 年 6 月,四大主流浏览器对 CSS :has 选择器的支持情况。答案是 D,即所有四个浏览器均支持。这得益于浏览器厂商共同制定的“基线指标”(Baseline Indicator)标准,它告知开发者哪些功能是安全的。:has 选择器已被标记为“新近可用”(newly available),意味着自 2023 年 12 月起,所有四大浏览器均已支持该特性。
- 在浏览调查结果时,可以点击任何特性以获取额外信息。
- 这些信息包括基线状态以及指向 MDN 和 Can I Use 等资源的链接。
基线指标的“广泛可用”定义
在 State of HTML 调查中,继续探讨了基线指标。当基线指标显示某特性处于“广泛可用”(widely available)阶段时,即基线的最终阶段,这表示该特性得到了主要浏览器长达 30 个月以上的支持。例如,像 `aspect-ratio` 这样的 CSS 属性,虽然感觉上是新的,但其实际上已经超过两年多时间处于良好支持状态。
浏览器互操作性与 AI 使用情况
浏览器互操作性问题是调查中经常被问及的重点。State of HTML 调查曾询问开发者因互操作性差而无法使用的特性,排名前三的是 Popover API、锚点定位(Anchor Positioning)和视图转换 API(View Transition API)。值得关注的是,浏览器厂商有一个名为 Interop 的倡议,每年聚集在一起决定重点修复的领域。2025 年的重点领域包括锚点定位、背景滤镜(Backdrop Filter)和核心 Web 指标(Core Web Vitals)。
- State of HTML 调查数据。
- State of CSS 调查数据。
- 社区反馈,表明厂商对开发者意见持开放态度。
Web 开发中 AI 的实际应用
接下来讨论了 State of WebDev AI 调查的结果,该调查侧重于普通 Web 开发者如何使用或未使用 AI 工具。一个关键问题是:受访者中有多少比例的开发者通过 AI 生成了其代码的大部分(超过一半)?令人惊讶的是,只有 22% 的受访者属于这一类。图表显示,不使用 AI 的开发者比例最高,而使用 AI 完成所有工作的开发者比例仅为 11%。
- 大部分开发者处于中间地带,或者更倾向于不使用 AI。
- 演讲者本人仅偶尔使用 ChatGPT 生成辅助函数或样式,并未像社交媒体上看到的那样使用 AI 编写整个应用。
- 认为自己仍以手动方式编码的开发者不必感到“错失恐惧症”(FOMO)。
State of Devs 调查洞察
State of Devs 调查于 2025 年 4 月进行,数据非常新近,甚至尚未完全发布,因此分享的是独家预览结果。该调查的独特之处在于,它不关注代码,而是关注构成开发者的其他方面,包括职业、工作场所、健康和个人爱好。其中一个问题是关于工作头衔与收入的关联性。
头衔与收入的关联性分析
数据显示,特定工作头衔与更高的中位数收入存在关联。在“开发者”(developer)、“工程师”(engineer)、“网站管理员”(web master)和“顾问”(consultant)中,答案是“工程师”。查看数据可以发现,所有工程师相关的职位往往排在收入排名的前列,而开发者职位则相对靠后。因此,在不将相关性等同于因果关系的前提下,建议开发者可以在简历上将“前端开发者”更新为“前端工程师”,如果条件允许的话。
开发者的热门爱好揭晓
最后一个问题是关于开发者最喜欢的爱好。选项包括电子游戏、电影、阅读或体育运动。演讲者提到自己喜欢攀岩(bouldering),并邀请感兴趣的人稍后结伴前往。不幸的是,关于体育运动的刻板印象在数据中得到了证实,体育运动是开发者最受欢迎的爱好。
- 在 2025 年的调查中,最受欢迎的具体电子游戏是《博德之门 3》(Baldur's Gate 3)。
- 第二名是《Valatro》,演讲者表示自己因沉迷而不得不很快停止游玩。
调查结果总结与挑战
本次分享总结了几个关键学习点。首先,开发者可以比想象中更多地使用新的 CSS 特性,这得益于像 Can I Use 这样的工具和基线指标的普及。其次,TypeScript 已经成为事实上的默认标准,生态系统正朝着这个方向发展。第三,大多数开发者目前对 AI 的使用频率并不高,关于 AI 取代人类编码员的担忧可能被夸大了,因为仍需要有人手动编写代码供 AI 学习。
网络变化速度与调查作用
网络变化迅速,而调查可以帮助人们跟上步伐。参与调查不仅能使人接触到许多可能不了解的新特性和新库,同时回顾调查结果也能了解即将到来的趋势,这些结果本身就是探索其他资源的良好起点。演讲者特别提到,State of CSS 2025 调查当前正在开放征集中,鼓励大家在活动结束后参与。
调查覆盖范围与偏差控制
在问及最大的挑战时,演讲者指出了双重挑战:一是如何触达尽可能多的人群,例如通过播客等渠道传播信息;二是如何确保受众群体不产生单向的偏见。例如,如果特定社区(如 fujs)在主页上发布链接,那么该社区的成员将在调查中过度代表。这在性别、国家和种族多样性方面尤为突出,需要更审慎地进行外联以确保样本的广泛代表性。
JavaScript 数据与 AI 采纳情况
关于调查数据中最令人惊讶的发现,演讲者表示,总体的积极性令人意外,开发者对 JavaScript 的厌恶程度并不像人们想象的那么高。与八九年前普遍讨论的“JavaScript 疲劳”相比,现在情况已有所改善。React 和 Vue 等框架已存在近十年,生态系统变化速度在框架选择方面已趋于稳定,且开发者对现有工具的认可度很高。
AI 工具使用中的滞后现象
针对低 AI 使用率的疑问,演讲者认为这不是因为限制,而是因为习惯的养成需要时间。调查显示,ChatGPT 等工具的使用率很高,但像 Cursor 或代码生成器 Bolt/V0 这样的更专业化工具的使用率则远低于前者。这表明 ChatGPT 正在成为主流,但更专业的工具存在一定的滞后期,预计这种滞后会逐渐缩小,但整体 AI 采纳速度可能仍会慢于倡导者所预测的速率。
数据收集的挑战与处理
关于数据收集,参与人数的多少极不稳定,有时一个知名 YouTuber(如 Fireship)的提及就能带来数千份回复。对于最大的调查,通常能获得约 10,000 份回复,较小的调查约 5,000 份。另一个关键工作是数据标准化,因为调查包含大量自由文本输入的问题。需要大量人工工作将这些文本转化为可用数据,尽管演讲者正尝试使用正则表达式和 ChatGPT 等大型语言模型(LLMs)进行自动化,但目前仍需人工逐一审核和批准建议。
调查问题的选择流程
问题选择过程是一个多阶段的社区驱动流程。在每份调查的结尾,都会有一个特定问题询问参与者希望下一届调查如何演进。此外,还会开设一个 GitHub Issue,供人们提出新想法,该 Issue 会开放长达一年时间。基于这两项输入,演讲者会创建一个包含新问题的调查预览版,开放约一个月供社区建议新问题或评论现有问题,最终确定并发布正式调查。
- 在当前调查结束时提出新问题建议。
- 在专门的 GitHub Issue 中提供反馈。
- 在预览期内对草案问题进行评论和建议。
因此,最终的问题选择是演讲者个人主观判断与社区输入相结合的结果。当被问及 22% 使用 AI 超过一半代码的比例是否过高,暗示可能存在倾向于技术爱好者的选择偏差时,演讲者回应称,在邮件列表中特意邀请了那些不使用 AI 的人参与,以期减轻这种偏差,但完全消除偏差仍然是一个挑战。
调查动机与技术转型
关于启动这些调查的初衷,演讲者回忆道,当时正在使用一个名为 Meteor.js 的全栈框架。Meteor.js 的核心理念是提供一体化的解决方案,涵盖服务器、客户端和模板等。然而,当演讲者离开这个高度自洽的生态系统,开始接触更广泛的 JavaScript 生态时,感到了极大的困惑。最初启动调查的冲动,正是为了帮助自己弄清楚在投入了大量时间于一个封闭系统后,应该将时间投资于哪种技术。
- 感谢听众参与了这场互动问答。
- 希望听众能利用调查结果来跟上技术发展步伐。
Useful links
These links were generated based on the content of the video to help you deepen your knowledge about the topics discussed.