4 ms·
To be fair, many (non-game dev) Rust projects I have seen/used do provide great user experience precisely because they are laser-focused on performance and have
by codethief 2y ago
To be fair, many (non-game dev) Rust projects I have seen/used do provide great user experience precisely because they are laser-focused on performance and have blown existing alternatives out of the water. (Think ripgrep, fzf, etc.)
Prototyping is certainly necessary but it shouldn't be at the cost of runtime performance – at least not too much –, because it will typically be very difficult to improve performance after the fact, which web development frameworks, and in particular shitty "web" applications like MS Teams are a testament to.
As always, it's about balance.
- IshKebab 2y ago> ripgrep, fzf I think these are great examples of where prototyping and rapid iteration are really not needed at all, and hence Rust shines here. Writing a game is completely different.
- burntsushi 2y agoThe initial version of ripgrep was absolutely a rapid prototype. I do rapid prototyping all the time. I'm not saying Rust is good for game dev, but the idea that Rust cannot be used for rapid prototyping in any context is a myth.
- OvermindDL1 2y agoIndeed, I personally find Rust to be very nice for rapid prototyping, incremental recompilation is usually a second or two even in my giant projects (mold helps on the linking step but that's less of a rust thing anyway), and I'm very curious how cranelift will change things in the future, it would be nice to hot swap function implementations on the fly at least.
- areeh 2y agoAre there any particular techniques or styles that stand out to you as useful when prototyping in Rust?
- burntsushi 2y ago`clone()` and `unwrap()` and `todo!()` without fear. Just let it loose. For me, prototyping is, IMO, about finding shortcuts to demonstrate something that is unknown to you. The idea is that shortcuts represent things you know how to do, but would otherwise take work to avoid and aren't necessary for demonstrating the thing that is unknown. `clone()` and `unwrap()` are just Rust-specific examples of that.
- croutons 2y agoFzf is written in go fwiw