Hacker News new | ask | show | jobs
by cyber_kinetist 810 days ago
If you want to create any real-time graphics application (video games, game engines, CAD software, visualization, etc.), or do any sort of scientific computing / HPC. The graphics ecosystem in Rust is still too undeveloped to see adoption (for the graphics API people are converging towards WebGPU, but it's still no match to Vulkan / DX12 / Metal), same goes for any GPGPU computing. Rust is also currently lacking in desktop GUI development (though nowadays Slint is trying to catch up with Qt!)

And in the case of apps where objects can have very dynamic lifetimes (like game engines or CAD), the borrow checker wouldn't really help with you that much since you would have to manage these with reference counting or some other way anyway (ex. arena allocation + generational indices).

What Rust excels over C++ at this point is just sane defaults / less footguns (no uninitialized memory, bounds checking even in release mode) as well as some language niceties, but Rust has its own issues for pragmatic usage (slow compilation, lackluster libraries, cumbersome to interface with C APIs, ...)

2 comments

A note: EGUI is nice for GUI dev in Rust. I agree on WGPU being limiting for 3D graphics. For GPGPU, you can use a CUDA binding, where you write the shaders in C++, and call that from Rust.
There are BGFX crates for Rust, by the way.