З появою життєздатних веб-фреймворків на основі WebAssembly для розробників Rust варто подивитися, як часто Rust зараз використовується для веб-розробки, які інструменти використовують ці розробники та відповідні варіанти використання Rust і Wasm у майбутньому.
У звіті JetBrains про стан екосистеми розробників за 2024 рік 35% розробників Rust заявили, що вони вже виконують веб-розробку за допомогою Rust. Це друге місце серед системного програмування (також 35%) і поступається лише інструментам CLI (44%) — обидва проекти частіше вважаються придатними для Rust, оскільки вони також придатні для розробників на C++ (мова програмування, яка найбільше розповсюджується). загроза від Rust).
В іншому місці звіту JetBrains 19% веб-розробників кажуть, що розгортають WebAssembly, у порівнянні з 77% у Linux, 43% у Windows і 36% у MacOS. Отже, незважаючи на те, що Wasm для веб-розробки досить добре використовується, у нього все ще є багато можливостей для розвитку. Варто також згадати, що Rust має кілька найкращих інструментів для компіляції у Wasm, наприклад:
- Wasm-bindgen: Bridges Rust і JavaScript.
- Wasm-pack: спрощує пакування Rust для npm.
- Cargo-generate: описується як «інструмент розробника, який допоможе вам швидко розпочати роботу з новим проектом Rust, використовуючи вже існуюче сховище git як шаблон».
Rust IDE
Згідно з останнім опитуванням Stack Overflow, інтегроване середовище розробки (IDE), яке найімовірніше використовувалося всіма професійними розробниками протягом останніх 12 місяців, було Visual Studio Code, нею користувалися 74% респондентів. Цей відсоток залишається приблизно таким же (75%), якщо дивитися на професійних розробників хто використовував Rust за останні 12 місяців. Тож VS Code — це найкраща IDE для розробників Rust.
Тим не менш, існує IDE, яка здається особливо популярною серед розробників Rust — тому що вона не є використовується іншими розробниками. 36% професійних розробників Rust заявили, що використовують Neovim, у порівнянні з лише 13% професійних розробників, які не використовують Rust. Це означає, що Neovim є другою за популярністю IDE для розробників Rust, поступаючись лише VS Code.
Цікаво відзначити, що одним із спонсорів Neovim є Warp, термінал на базі Rust, який Девід Істман з The New Stack описав як «тип IDE у вашому командному рядку, який ви часто припускали, що у вас є, але ви ніколи насправді не мали».
Розробники Rust мають багато іншого вибору, коли справа доходить до IDE. JetBrains пропонує спеціальну Rust IDE під назвою RustRover, а також плагіни Rust для IntelliJ IDEA та CLion. Інші популярні IDE також підтримують Rust; наприклад Emacs і відносно новий Zed.
RustRover було випущено лише у вересні 2023 року, і JetBrains бачить райдужне майбутнє для розробників Rust. У лютому минулого року прихильник розробників JetBrains Віталій Брагілевський зазначив, що Rust використовується не просто як заміна «небезпечних для пам’яті» мов, таких як C++ і C.
…багато людей приходять до Rust з інших мов програмування.
– Віталій Брагілевський, адвокат розробників JetBrains
«Насправді ми бачимо, що багато людей приходять до Rust з інших мов програмування, — сказав він, — і вони також приносять цілий новий всесвіт ідей для реалізації чогось у Rust». Такі ідеї, як веб-додатки.
У попередньому інтерв’ю The New Stack Брагілевський сказав, що багато розробників прийшли в Rust зі спільнот JavaScript і Python. «Ці люди можуть бути трохи незадоволені своїми попередніми мовами програмування», — сказав він. «Можливо, їм недостатньо продуктивності, і вони можуть отримати цю продуктивність за допомогою Rust. Іноді їм не вистачає безпеки. І Rust це точно забезпечує».
Щодо того, чого хочуть розробники Rust у своїх IDE, згідно з опитуванням розробників JetBrains, 12% сказали, що хочуть більше підтримки веб-фреймворку. Тож це можливість як для існуючих Rust IDE, так і для нових інструментів для розробників.
Які типи програм найкраще підходять для Rust і Wasm?
У листопаді минулого року інженер-програміст Тревор І. Ласн написав, що «WebAssembly блищить у створенні перевірених бібліотек C/C++ або Rust у мережі». Як приклад він використав генерацію PDF. «Замість того, щоб заново винаходити складні алгоритми відтворення шрифтів і компонування в JavaScript, ми можемо використовувати перевірені в боях бібліотеки C++», — пояснив він.
Rust все частіше розглядається як мова для складної обробки даних.
Той самий принцип застосовується до бібліотек Rust — хоча вони можуть бути менш «випробуваними в боях», ніж бібліотеки C++, Rust все частіше розглядається як мова для складної обробки даних. А оскільки Rust ефективно компілюється до WebAssembly, це означає, що високоефективну обробку даних можна виконувати безпосередньо у веб-браузерах або периферійних середовищах.
Інші випадки використання Rust у веб-розробці включають візуалізацію даних у реальному часі, обробку зображень і відео та ігрові движки.
Зрештою, Rust найближчим часом не замінить JavaScript — бізнес-логіка у веб-програмі все ще найкраще обробляється за допомогою JS, а можливості маніпулювання DOM у Wasm обмежені. Крім того, Wasm може швидко надто ускладнити справу, якщо ви не будете обережні. Як зауважує Ласн: «Якщо ви не займаєтеся важкими обчисленнями чи не використовуєте існуючі бібліотеки з інших мов, WebAssembly може лише додати непотрібної складності».
Незважаючи на це, розробники Rust все частіше використовують веб-розробку. Тож ми можемо очікувати, що екосистема інструментів для розробників навколо Rust розвиватиметься відповідно.
Примітка: Дані дослідження та графіки надані Лоуренсом Е. Хехтом.
YOUTUBE.COM/THENEWSTACK
Технологія розвивається швидко, не пропустіть жодної серії. Підпишіться на наш канал YouTube, щоб транслювати всі наші подкасти, інтерв’ю, демонстрації тощо.
ПІДПИСАТИСЯ