Перейти до вмісту

Використання

Як ви використовуєте JavaScript

Співвідношення JavaScript/TypeScript

Достеменно настала епоха TypeScript. 67% респондентів заявили, що пишуть більше TypeScript-коду, ніж JavaScript; ще й найбільша окрема група складається з тих, хто пише лише TypeScript.

Скільки часу ви пишете JavaScript-код і скільки — TypeScript?
0%
20%
40%
60%
80%
100%
1

0% TS

915
2

|

559
3

|

446
4

|

185
5

50/50

625
6

|

352
7

|

1,245
8

|

3,172
9

100% TS

3,936
0%
20%
40%
60%
80%
100%
% від тих, хто відповів на питання

Співвідношення компільованого коду

Не дивно, що у 2024 році майже весь JavaScript-код проходить через етап компіляції чи перебудови. Хоч збирачі та інструменти для компіляції ускладнюють процес розробки, вони, ймовірно, залишаться з нами надовго.

Яка частка JavaScript-коду, який ви пишете для браузера, компілюється чи по-іншому перебудовується під час збирання?
0%
20%
40%
60%
80%
100%
1

0% компілюється

262
2

|

185
3

|

192
4

|

118
5

50%

629
6

|

233
7

|

1,020
8

|

2,449
9

100% компілюється

5,927
0%
20%
40%
60%
80%
100%
% від тих, хто відповів на питання

Генерація коду за допомогою ШІ

Незважаючи на всі розмови про програмування за допомогою ШІ, більшість із нас досі використовує ці інструменти досить рідко. Ба більше, 20% взагалі не використовують їх для написання коду.

Яку частку коду, який ви створюєте, згенеровано за допомогою ШІ?
0%
20%
40%
60%
80%
100%
1

0% ШІ

2,263
2

|

4,319
3

|

2,573
4

|

837
5

50%

751
6

|

285
7

|

270
8

|

55
9

100% ШІ

18
0%
20%
40%
60%
80%
100%
% від тих, хто відповів на питання

Використання

Завжди корисно знати, в якому контексті респонденти пишуть JavaScript-код, і переважна більшість робить це в межах своєї основної роботи.

Для чого ви переважно використовуєте JavaScript?
Множинний вибір
0%
20%
40%
60%
80%
100%
1

Професійно

10,842
2

Як хобі

4,593
3

Для навчання

1,143
0%
20%
40%
60%
80%
100%
% від тих, хто відповів на питання

Варіанти використання

Майже всі респонденти заявили, що використовують JavaScript для клієнтської розробки, що логічно з огляду на походження мови.

Для чого ви використовуєте JavaScript?
Множинний вибір
0%
20%
40%
60%
80%
100%
1

Розробка клієнтської частини

11,268
2

Розробка серверної частини

7,345
3

Застосунки для мобільних пристроїв

2,994
4

Застосунки для настільних комп'ютерів

2,072
5

Візуалізація даних

1,653
6

Графіка та анімація

1,302
7

Аналіз даних

854
8

Розробка відеоігор

651
9

Машинне навчання

263
10

Вбудовані (Embedded) застосунки

258
0%
20%
40%
60%
80%
100%
% від тих, хто відповів на питання

Сфера діяльності

Найчисленніша сфера діяльності складається з розробників, які створюють інструменти для інших розробників, але найвисокооплачуванішою виявилася реклама.

У яких галузях економіки ви працюєте?
Множинний вибір
0%
20%
40%
60%
80%
100%
1

Програмування та технічні інструменти

4,299
2

Консалтинг і послуги

3,555
3

Електронна комерція та роздрібна торгівля

2,668
4

Фінанси, банківська сфера

1,796
5

Маркетинг/Продажі/Інструменти аналітики

1,558
6

Освіта

1,494
7

Розваги

1,256
8

Охорона здоров'я

1,035
9

Новини, медіа, блогінг

939
10

Державний сектор

836
0%
20%
40%
60%
80%
100%
% від тих, хто відповів на питання

Патерни застосунків

Незважаючи на підтримання складних стратегій рендерингу сучасними JavaScript-метафреймворками, найпоширенішими патернами залишаються традиційні односторінкові застосунки та рендеринг з боку сервера.

Які з наведених патернів архітектури і рендерингу застосунків ви використовували за останній рік?
Множинний вибір
0%
20%
40%
60%
80%
100%
1

Односторінковий застосунок (SPA)

10,027
2

Рендеринг з боку сервера (SSR)

6,559
3

Генерація статичних сайтів (SSG)

5,072
4

Багатосторінковий застосунок (MPA)

4,399
5

Часткова гідрація

2,320
6

Архітектура островів

1,573
7

Поступове покращення (Progressive Enhancement)

1,480
8

Статична генерація з доповненням (incremental)

1,053
9

Потоковий SSR

956
10

Частковий попередній рендеринг

906
0%
20%
40%
60%
80%
100%
% від тих, хто відповів на питання

Проблеми JavaScript

Щойно кодова база перевищує певний розмір, архітектура коду — це завжди клопіт, тому цілком логічно, що вона очолила рейтинг основних проблем JavaScript; за нею йдуть управління станом та залежностями.

Від яких аспектів JavaScript вам найтяжче?
Множинний вибір
0%
20%
40%
60%
80%
100%
1

Архітектура коду

3,719
2

Управління станом

3,290
3

Управління залежностями

3,053
4

Інструменти для збирання коду

2,925
5

Швидкодія

2,538
6

Налагодження

2,355
7

Управління датами

2,338
8

Типізація

2,338
9

Асинхронний код

1,151
10

Пошук пакетів

1,102
0%
20%
40%
60%
80%
100%
% від тих, хто відповів на питання

Нові пропозиції

Наразі існує досить багато пропозицій TC39, які ось-ось стануть реальністю. Цього року респонденти найбільше очікують Temporal і декоратори.

Які з-поміж цих активних пропозицій змін до JavaScript цікавлять вас найбільше?
Множинний вибір
0%
20%
40%
60%
80%
100%
1

6,637
2

3,392
3

1,312
4

1,259
5

978
6

888
7

750
8

695
9

669
10

462
0%
20%
40%
60%
80%
100%
% від тих, хто відповів на питання

Відсутні функції

Хоч спільнота давно відчуває нестачу нативної статичної типізації, цікаво бачити, що сигнали посіли третє місце в цьому списку, незважаючи на те, що вони не є частиною найпопулярнішого клієнтського фреймворку.

На вашу думку, чого наразі не вистачає у JavaScript?
Множинний вибір
0%
20%
40%
60%
80%
100%
1

Статична типізація

5,403
2

Стандартна бібліотека

4,378
3

3,985
4

2,362
5

1,919
6

1,905
7

1,889
8

1,366
9

928
10

701
11

356
12

307
13

Інші відповіді

169
0%
20%
40%
60%
80%
100%
% від тих, хто відповів на питання

Очевидно, що респонденти опитування чекають на нативні типи та сподіваються, що вони будуть реалізовані подібно до синтаксису TypeScript.

Цьогорічне формулювання запитання, на жаль, не надало чіткого розмежування між типами у середовищі виконання (runtime types) та типами-анотаціями у стилі TypeScript, тому ще треба з'ясувати, який із цих підходів підтримає спільнота.

Якою ви вбачаєте імплементацію нативних типів у JavaScript?
0%
20%
40%
60%
80%
100%
1

Максимально схоже до TypeScript

8,362
2

За допомогою коментарів, схоже до JSDoc

1,037
3

НЕ бажаю їхньої імплементації зовсім

1,000
4

Типи-анотації

5

Similar to Java

6

Similar to Rust

7

Similar to TypeScript

8

Similar to Python

9

Інші відповіді

225
0%
20%
40%
60%
80%
100%
% від тих, хто відповів на питання

Задоволення вебтехнологіями

Наскільки ви задоволені станом вебтехнологій загалом?
1
2
3
4
5
2020
2021
2022
2023
2024
1
2
3
4
5
Середнє

Задоволення JavaScript?

Наскільки ви задоволені станом JavaScript загалом?
1
2
3
4
5
2020
2021
2022
2023
2024
1
2
3
4
5
Середнє

Рекомендовані джерела

Your Path to Becoming a Senior Web Developer!
Will Sentance
Codesmith

Your Path to Becoming a Senior Web Developer!

Deep dive into JavaScript, the most popular framework React, Web performance, CSS, deploying websites, TypeScript, and functional JavaScript to become a professional web developer today.
Expand Your Abilities to the Server and Master the Fullstack
Jem Young
Netflix

Expand Your Abilities to the Server and Master the Fullstack

Set up servers, create APIs, and deploy your code to the world by learning the full stack.
Спонсорований вміст від наших партнерів. Детальніше.