-
Notifications
You must be signed in to change notification settings - Fork 4
/
js2024.yml
452 lines (336 loc) · 22.6 KB
/
js2024.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
locale: zh-Hans
translations:
###########################################################################
# General
###########################################################################
- key: general.results.description
t: 2024 年度 JavaScript 生态系统最新趋势调查报告。
###########################################################################
# Survey Intro
###########################################################################
# JS 2024
- key: general.js2024.survey_intro
t: >
在我们忙于决定下一个前端库的选择时,JavaScript 本身也在经历着自身的演变。
新的 TC39 提案正在社区中引起轰动,而其他提案已经处于即将在各大浏览器中实施的边缘。同时,TypeScript 的流行使得未来某个时候原生类型支持的可能性变得真实。
可以肯定的是——尽管 2024 年的 JavaScript 仍然感觉很熟悉,但我们无法保证五年后我们还能对所写的语言有同样的感受。
在此之前,您可以通过参与今年的 JavaScript 现状调查来帮助我们绘制未来的路径!
###########################################################################
# Survey FAQ
###########################################################################
- key: faq.how_long_will_survey_take_js2024
t: 完成调查需要多长时间?
- key: faq.how_long_will_survey_take_js2024.description
t: >
根据您回答的问题数量(所有问题均可跳过),填写调查大约需要 15-20 分钟。
- key: faq.survey_design_js2024
t: 这项调查是如何设计的?
- key: faq.survey_design_js2024.description
t: >
这项调查是通过一个[开放式设计过程](https://github.com/Devographics/surveys/issues/252)设计的,涉及浏览器供应商和 Web 开发社区。
- key: faq.results_released_js2024
t: 结果什么时候发布?
- key: faq.results_released_js2024.description
t: 调查将从 2024 年 11 月 13 日持续到 2024 年 12 月 3 日,调查结果将在之后不久发布。
###########################################################################
# Introduction
###########################################################################
- key: introduction.js2024
t: |
<span class="first-letter">现</span>在应该很清楚了,无论是好是坏,JavaScript 并没有放慢脚步。
在服务器组件、服务器操作、信号、编译器等方面,我们正在看到新的创新出现得比我们大多数人能处理的速度还要快。
避免可怕的 JavaScript 疲劳的诀窍是记住你可以选择自己的道路:当然,你可以与早期采用者一起生活在最前沿;但你也可以保持较慢的步伐,专注于稳定、成熟的技术——并在几年后新技术冷却下来时再接触它。
说到放慢脚步,你可能会想知道为什么这些 2024 年的调查结果在 2024 年已经过去了六个月才发布。事实上,在推出新的 [State of HTML](https://2024.stateofhtml.com/) 调查、创新新的问题格式、收集比以往更多的自由形式数据,以及重写大量数据可视化代码库之间,我们最终的工作量可能有点过于雄心勃勃,至少可以说。
希望所有这些额外的努力都是值得的。而且我们确实计划在未来更快地完成这些工作。
在这一切之后,让我们来发现 JavaScript 最近都在忙些什么吧!
<span class="conclusion__byline">– Sacha Greif</span>
###########################################################################
# Tshirt
###########################################################################
- key: sections.tshirt.title
t: T 恤
- key: sections.tshirt.description
t: |
## 通过购买 JavaScript 现状 T 恤支持本次调查
在糟糕的视频质量、笨重的录像带和需要倒带之间,VHS 时代并没有太多值得怀念的地方。但我们确实怀念那些曾经装饰空白 VHS 录像带的令人惊叹的 90 年代视觉效果。
但现在,多亏了才华横溢的 Christopher Kirk-Nielsen,你可以在享受所有这些复古的酷炫风格的同时,也庆祝你对 JavaScript 的热爱!
- key: tshirt.about
t: 关于这件 T 恤
- key: tshirt.description
t: |
我们使用高品质、超柔软的三混纺面料制作修身款式,由我们的合作伙伴 Cotton Bureau 负责印制。
- key: tshirt.getit
t: 立即购买
- key: tshirt.price
t: 32 美元 + 运费
- key: tshirt.designer.heading
t: 关于设计师
- key: tshirt.designer.name
t: Christopher Kirk-Nielsen
- key: tshirt.designer.bio
t: |
Chris 原籍法国,现居美国,他不仅是一位出色的前端开发者,还是一位才华横溢的插画师,专注于复古风格的视觉设计。事实上,我们强烈建议您也去看看他的[其他 T 恤设计](https://chriskirknielsen.com/designs)!
###########################################################################
# Sections
###########################################################################
- key: sections.user_info.description
t: |
今年,**23,540** 名受访者参与了调查。为了帮助突出不同的声音并深入挖掘更深层次的见解,我们特别努力提供了新的方式来分解我们的数据。
- key: sections.features.description
t: |
今年,我们特别强调识别开发者在 JavaScript 中遇到的问题。正如所料,**缺乏原生类型支持**和**浏览器不一致性**分别占据了各自图表的首位,几乎影响了三分之一的开发者。
- key: sections.libraries.description
t: |
我们重新设计了图表,不仅突出了开发者体验,还突出了*感受*。请务必探索这些新的分组和排序选项,以找出哪些库最受喜爱……或最不受喜爱!
- key: sections.other_tools.description
t: |
尽管 JavaScript 的讨论往往集中在选择哪个框架上,但值得记住的是,除了这些框架之外,还有一整个星系的工具、服务和平台可以探索!
- key: sections.usage.description
t: |
再次看来,TypeScript 似乎已经确立了自己作为默认选择的地位,至少在调查受访者中是如此。但除此之外,JavaScript 的使用仍然像以往一样多样化!
- key: sections.resources.description
t: |
我们决定不再提供预定义的选项列表供调查受访者选择,而是简单地提供原始文本字段。这导致今年的资源部分出现了相当多的新条目!
- key: sections.awards.description
t: |
今年的奖项被一个非常特定的项目所主导……你能多快猜到它是什么?
###########################################################################
# Charts
###########################################################################
- key: options.features_categories.language
aliasFor: sections.language.title
- key: options.features_categories.browser_apis
aliasFor: sections.browser_apis.title
- key: options.features_categories.other_features
aliasFor: sections.other_features.title
###########################################################################
# Notes
###########################################################################
- key: blocks.gender.note
t: |
如果你有兴趣了解更多,我们[写了一篇博客文章](https://dev.to/sachagreif/is-our-survey-biased-against-women-49oj),讨论了调查中的性别动态。
- key: blocks.source.note
t: >
此图表汇总了各种推荐来源、URL 参数和自由形式答案。
- State of JS: [State of JS](https://stateofjs.com) 邮件列表。
- State of CSS: State of CSS 邮件列表;也匹配 `email`, `by email` 等。
- Work: 匹配 `work`, `colleagues`, `coworkers` 等。
###########################################################################
# Awards
###########################################################################
- key: award.feature_adoption_delta_award.comment
t: 在 2022 年,**顶层 await** 的采用率增加了 **{value}**,迅速成为 JavaScript 的重要组成部分。
- key: award.tool_usage_delta_award.comment
t: |
**Vite** 继续成为增长最快的库,使用量同比增长 **{value}**!
- key: award.tool_satisfaction_award.comment
t: Vite 再次位居榜首,**{value}** 的开发者愿意再次使用它!
- key: award.tool_interest_award.comment
t: 你猜到 Vite 了吗?接近了,但今年 **Vitest** 是开发者最感兴趣的技术,兴趣比率为 **{value}**。
- key: award.most_write_ins_award.comment
t: 在自由形式问题中,**Bun** 被提及了 **{value}** 次,成为整体上被提及最多的技术。
- key: award.most_commented_tool_award.comment
t: 有 **{value}** 条评论,React 再次证明它是讨论最多的库。
- key: award.most_loved_tool_award.comment
t: 有 **{value}** 的开发者对其持有积极看法,Vite 凭借其最受欢迎的技术地位,再次横扫这些奖项!
###########################################################################
# Conclusion
###########################################################################
- key: conclusion.js2024.cassidy_williams
t: |
<span class="first-line">各位,这是一个多么酷的互联网年份啊。</span>
有这么多有趣和令人兴奋的变化正在发生,我边建边看,键盘旁边放着爆米花!
像 Preact、Solid 和 htmx 这样的“小”库在积极情绪上超过了像 Next.js 这样的庞然大物,这非常有趣。我们开始看到 Angular 有所回升,明年我们会看看这个趋势是否继续。我们看到人们对一些行业宠儿失去了爱。我们看到非常 Rusty 的系统在增长。Astro 在开发者支持方面感觉像是在冲刺。
在实际的浏览器功能方面,几乎感觉我们走得太快,世界跟不上。这并不总是坏事,不一定!但我完全同意浏览器支持是我对所有新酷事物的首要关注。
话虽如此,我个人很喜欢使用一些新的数组功能,并且越来越多的人支持 PWA。
明年,让我们提高响应的多样性,让更多人参与开发,并希望所有新的和令人兴奋的变化都偏向于有趣,而不是令人望而生畏!感谢 Sacha 和团队在这里包括我,并再次运行这个精彩而有价值的调查。
网上见!
- key: conclusion.js2024.cassidy_williams.bio
t: 开发者倡导者,工程师,开源贡献者,以及表情包创作者
- key: conclusion.js2024.theo_browne
t: |
<span class="first-line">Javascript 正在转向服务器端,而我们对此感到不安。</span>
在去年调查中,我们看到了像 Next、Nuxt、Remix 和 SvelteKit 这样的服务器渲染框架的快速采用。今年,我们转向了服务器优先的模式,如部分水合和岛屿架构,其采用率翻了一番。
像 htmx 这样的框架表明,利用服务器的不仅仅是 Web 开发者。SPA(单页应用)并没有消失(看看 [Inertia](https://inertiajs.com/) 作为证明),但随着这些新模式继续改进,市场似乎也在跟随。
这一转变并没有得到一致的喜爱。React 继续增长,但 React 开发者对其方向越来越担忧。走到这一步的过程是……艰难的,但每天都在取得进展。
我们还看到 React 生态系统之外出现了更多选择。从 [Nuxt](https://roe.dev/blog/nuxt-server-components) 到 [SolidStart](https://docs.solidjs.com/solid-start/reference/server/use-server) 再到 [Astro](https://astro.build/blog/astro-480/#experimental-astro-actions),所有最好的 React 服务器组件功能都在向每个开发者推出。
当然,Vite 继续占据主导地位,是应用开发者和框架作者的首选。很难想象如果没有它,我们现在会是什么样子!
- key: conclusion.js2024.theo_browne.bio
t: Ping、uploadthing、create-t3-app 的创建者,以及视频创作者
###########################################################################
# Picks
###########################################################################
- key: picks.my_pick
t: "我的 2024 选择: "
- key: picks.intro
t: 我们询问了 JavaScript 社区的成员,分享他们的“年度选择”
# https://leaddev.com/personal-development/how-build-trust-new-engineering-manager
- key: picks.emma_bostian.name
t: 作为新开发经理如何建立信任
- key: picks.emma_bostian.bio
t: 开发经理,讲师,以及 Ladybug Podcast 的联合主持人。
- key: picks.emma_bostian.description
t: |
我发现 LeadDev 上关于新经理技能的博客文章对于作为新工程经理的我来说非常宝贵。它们为任何希望扩展其工程领导和管理技能的人提供了极好的资源!
# https://pocketbase.io
- key: picks.fireship.name
t: Pocketbase
- key: picks.fireship.bio
t: Google 开发者专家,数据爱好者,以及 YouTuber
- key: picks.fireship.description
t: |
我的年度选择是 Pocketbase 项目——一个开源的 SQLite 驱动的后端。它的 JavaScript SDK 为 Web 开发者提供了构建一个严肃应用程序所需的一切,而且令人惊讶的是,它可以作为一个单一的二进制文件部署到任何 $5 服务器上。
# https://www.localfirst.fm/
- key: picks.rich_harris.name
t: localfirst.fm
- key: picks.rich_harris.bio
t: Vercel 的开源捣蛋鬼。Rollup 和 Svelte 的创建者
- key: picks.rich_harris.description
t: |
如果你对软件的发展方向感兴趣,这个播客是必听的。它会重新点燃你对未来 Web 开发的乐观情绪。
# https://tldraw.com
- key: picks.david_khourshid.name
t: tldraw
- key: picks.david_khourshid.bio
t: XState 的创建者和 [http://stately.ai](Stately) 的创始人
- key: picks.david_khourshid.description
t: |
远不止是一个无限画布,tldraw 重新设想了用户界面可能实现的功能,从其令人印象深刻的 AI 实验到对绘图细节的关注。其源代码也是公开的,我欣赏其中的状态机和可扩展的 API,可以进行无尽的调整。
# https://replicache.dev/
- key: picks.dax_raad.name
t: Replicache
- key: picks.dax_raad.bio
t: 构建 [SST](https://sst.dev/) 和 [terminal](https://www.terminal.shop/)
- key: picks.dax_raad.description
t: |
没有技术对我多年来交付的质量产生过更大的影响。我认为他们在推动 Web 能做的事情上扛起了火炬。
# https://lexical.dev/
- key: picks.german_jablonski.name
t: Lexical
- key: picks.german_jablonski.bio
t: CEO 和 [Fluski](https://fluski.com/) 的创建者,笔记和电子表格管理器
- key: picks.german_jablonski.description
t: |
这是 Meta 文本编辑器非常出色的一年。其巧妙的数据模型和生命周期极大地影响了我的编程方式。
# https://marvinh.dev/blog/speeding-up-javascript-ecosystem/
- key: picks.alina_listunova.name
t: Speeding up the JavaScript ecosystem
- key: picks.alina_listunova.bio
t: 前端开发者,技术翻译 🇺🇦
- key: picks.alina_listunova.description
t: |
从 2022 年末开始,Preact 开发者 Marvin Hagemeister 的这一系列持续文章揭示了现代 JavaScript 项目中时间效率低下的元素和方法。对于注重性能的专业人士来说,这确实是一篇引人入胜的文章。
# https://www.rspack.dev/
- key: picks.shadowingszy.name
t: Rspack
- key: picks.shadowingszy.bio
t: Datawhale 架构师,字节跳动高级前端研发工程师
- key: picks.shadowingszy.description
t: |
Rspack 是一个基于 Rust 的 Web 打包工具,具有极其出色的性能。通过使用 Rust,它解决了 JS 打包工具中的大量性能瓶颈。并且它可以兼容 webpack 的生态系统。
# https://unjs.io/
- key: picks.quarkstuff.name
t: UnJS
- key: picks.quarkstuff.bio
t: Web 和游戏开发极客
- key: picks.quarkstuff.description
t: |
UnJS 生态系统就像一个开发者的玩具箱。从 ofetch 和 consola 到 citty 和 nitro,那里很可能有适合你下一个大项目的东西。
# https://www.npmjs.com/package/tess2
- key: picks.martin_heidegger.name
t: tess2.js
- key: picks.martin_heidegger.bio
t: Web 开发者,活动组织者
- key: picks.martin_heidegger.description
t: |
去年我没有做太多 JavaScript 开发,但我对 tess2 算法印象深刻,这是一个 10 年前的 npm 库,至今仍然表现出色!
# https://auto-animate.formkit.com/
- key: picks.sacha_greif.name
t: AutoAnimate
- key: picks.sacha_greif.bio
t: State of JS 创始人
- key: picks.sacha_greif.description
t: |
Formkit 的 AutoAnimate 库,你可以在本网站上看到它的实际应用,正如其名,它只需一行代码就能为你的应用添加动画效果!
# https://nuxt.com/
- key: picks.rexhent.name
t: Nuxt
- key: picks.rexhent.bio
t: Aspiring Linux and web developer
- key: picks.rexhent.description
t: |
Nuxt 专注于开发体验和用户体验。它稳定且持续改进。它是所有框架中拥有最佳开发者工具的框架,并且创建了 UnJS 和其他工具,这些工具为新的框架如 Nitro 提供了支持。他们是开源社区的支柱。
# https://medium.com/@devgustavovasquez/the-future-of-web-development-embracing-interoperable-runtimes-bd2006e9b9d7
- key: picks.gustavo_vasquez.name
t: Web Interoperable Runtimes
- key: picks.gustavo_vasquez.bio
t: Software Engineer 🇧🇷
- key: picks.gustavo_vasquez.description
t: |
Web 互操作运行时是允许代码在多个平台和环境中一致运行的执行环境。我相信,使用这样的标准让我们接触到了 Web 开发的未来。
# https://x.com/wunderacle
- key: picks.augustin_mauroy.name
t: Claudio Wunder
- key: picks.augustin_mauroy.bio
t: Web 开发者和开源软件爱好者
- key: picks.augustin_mauroy.description
t: |
Claudio 是一个非常出色的人。他帮助我成长为一名开发者,还凭借他的领导能力,让我有机会重新设计 Node 网站。他继续推动 Node 项目向前发展。
# https://www.electronjs.org/
- key: picks.kilian_valkhof.name
t: Electron
- key: picks.kilian_valkhof.bio
t: Polypane Browser for Developers 的创建者
- key: picks.kilian_valkhof.description
t: |
像 VS Code、Figma、Discord、Slack 和 1Password 这样的日常应用都运行在 Electron 上,它仍然是 JS 和开发者生态系统的重要组成部分。许多我们日常使用的工具如果没有 Electron 就不会存在,而且当正确使用时,它确实是一个强大的平台。
# https://x.com/dawntraoz
- key: picks.arisa_fukuzaki.name
t: Alba Silvente Fuentes
- key: picks.arisa_fukuzaki.bio
t: Senior DevRel Engineer & Docs at Storyblok
- key: picks.arisa_fukuzaki.description
t: |
Alba 撰写关于前端开发、Web 架构和 Web 性能的文章,曾在许多会议上发表演讲,并拥有一个名为 "No me da la vida" 的播客。她激励了许多开发者,而我也是其中之一!
# - key: picks.xxxx.name
# t:
# - key: picks.xxxx.bio
# t:
# - key: picks.xxxx.description
# t: |
###########################################################################
# Sponsors
###########################################################################
- key: sponsors.frontendmasters.description
t: 通过深入的现代前端工程课程提升您的技能。
- key: sponsors.google_chrome.description
t: 感谢 Google Chrome 团队对我们工作的支持。
- key: sponsors.tokyodev.description
t: 今天找到您在日本梦想的开发者工作。
- key: sponsors.renderatl.description
t: 专注于 Web 技术的科技会议。
###########################################################################
# FAQ/About
###########################################################################
- key: about.content
t: |
2024 年 JavaScript 现状调查从 2024 年 11 月 22 日持续到 12 月 12 日,共收集了 23,540 份回复。结果于 2024 年 6 月 20 日发布。该调查由 [Devographics](https://devographics.com/) 组织,这是一个由我([Sacha Greif](https://sachagreif.com/))和 [Eric Burel](https://www.lbke.fr/) 以及受邀专家和开源贡献者组成的集体。
JavaScript 现状的标志和 T 恤由 [Christopher Kirk-Nielsen](http://chriskirknielsen.com/) 设计。
### 调查目标
本调查旨在识别 Web 开发生态系统中的新兴趋势,以帮助开发者做出技术选择。
因此,调查侧重于预测未来几年即将到来的趋势,而不是分析当前流行的内容,这就是为什么某些功能或技术有时会被忽略,即使它们目前非常普遍。
此外,调查结果应被视为**特定开发者群体的快照**,并不代表整个生态系统。
### 调查设计
该调查部分基于去年的调查设计,并在 [GitHub](https://github.com/Devographics/surveys/issues?q=is%3Aissue+is%3Aopen+label%3A%22State+of+JS+2024%22) 上进行了开放反馈期,讨论了调查大纲。
所有调查问题都是可选的。
### 调查受众
该调查在网上公开访问,受访者没有经过任何过滤或选择。受访者主要是过去调查的受访者(通过专门的邮件列表提醒)和社交媒体流量的混合体。
请注意,框架、库等可以鼓励他们的受众参与调查,其中一些确实通过横幅、推文等方式利用了这一点。详细的流量来源细分包含在“来源”图表中。
### 项目资金
该项目资金来自多种来源:
- **T 恤销售**。
- **赞助链接**:每个页面底部的推荐资源链接由我们的合作伙伴 [Frontend Masters](https://frontendmasters.com/) 和 [RenderATL](https://www.renderatl.com/) 提供。
- **直接资助**:今年,[Google](https://www.google.com/) 资助了我在调查方面的工作。
任何贡献或赞助都非常感谢。我们特别希望与更多的浏览器供应商密切合作,因为他们在 Web 生态系统中扮演着如此核心的角色。
### 技术概述
您可以在 [这里](https://dev.to/sachagreif/how-the-devographics-surveys-are-run-2024-edition-1p6a) 找到关于如何运行调查的更深入技术概述。