Remix.run Logo
bigfishrunning 7 hours ago

Honestly, the only domains that I think rust isn't suitable for are:

* rapid-prototyping, where javascript and python are still top-tier

* adding scriptability to existing programs, where lua and scheme (and python) are popular

* Server-side API implementation (rust is usable here, but I think Go fits the slot better)

vablings 7 hours ago | parent | next [-]

Rapid prototyping is almost a meme at this point. If you are hand rolling code old school, you will waste more time shoehorning JavaScript and python semantics into rust code and end up with worse quality that takes more time rather than writing it from rust.

People did this a lot when rust was not as popular but there are plenty of very good rust programmers now who understand the language and can make programs that are significantly more performance for a marginal development cost.

Script ability can also be done in rust, Notably Zed (rust ide/vscode whatevers) is written in rust, and all the plugins are compiled to WASM, sandboxed and loaded.

Go is pretty nice for server-side API but if your application share types between boundries then rust is better

germandiago 6 hours ago | parent | next [-]

> Rapid prototyping is almost a meme at this point

> People did this a lot when rust was not as popular but there are plenty of very good rust programmers now who understand the language and can make programs that are significantly more performance for a marginal development cost.

Why isn't the game industry moving to it then? Bc it just cannot compete at volubility with C++, among other things. Yes, you can have skilled people, but the borrow checker is still there and that is an anti-change-me-fast fact of life. I think things like sending batches of info to the GPU in casted ways, alignment, etc. all go against safety naturally but this is fundamentally what needs to be done anyway when transfering data to the GPU, so adding a layer of safety for the sake of doing it to notice that your data-oriented pipeline has to suddenly change its shape would mean repeating work...

Namely, Rust is just not good at this. Rust is good if you can replicate a safe layer that is very reusable every time (when interacting with unsafe) or when you do not need unsafe at all or hardly, where you can take advantage of its safety fully.

Also, there are certain very tweaked data structures such as Boost.MultiIndex or linked lists with intrusive hooks and others that are not easy at all in Rust and they do have value in some situations. I had some of this in some telecommunication systems before.

gregw2 5 hours ago | parent | next [-]

Why isn't the game industry moving to rust?

Someone in that industry can perhaps speak to it, but I have two cents of perspective...

I have helped a young person with gamedev interests try to learn rust (on Windows). They've learned some rust, but the graphics+Windows libraries and primitives to work with are not very good nor straightforward, even with AI assistance. Besides weakness in the gaming/rendering domain, there seemed to be some very real versioning/dependency hell that also didn't help.

It's massively easier to make progress on even just a 2D game with something like GDScript-based Godot (or Unity or...).

bigfishrunning 4 hours ago | parent [-]

It seems like you're comparing "start from scratch in rust" to "start with an existing game engine in some other language". That's not really a fair comparison. there are popular game engines in rust (although i think they're mostly smaller/more niche then something like unity or godot), bevy comes to mind.

tredre3 5 hours ago | parent | prev | next [-]

> Why isn't the game industry moving to it then? Bc it just cannot compete at volubility with C++, among other things.

I have no opinion regarding rust suitability as a game language, but your answer doesn't sound right.

The actual reason is much simpler. The industry is built on a handful of game engines. Those engines are extended or scripted in C++ or C#. Thus the vast, vast majority of the work force will only have experience with those languages and the entirety of game studios' tooling is built around those. The end.

SleepyMyroslav 5 hours ago | parent | prev | next [-]

I work in gamedev. Here is a simple answer: proprietary gaming platforms have no plans to support Rust.

mrec 6 hours ago | parent | prev [-]

I don't think "volubility" means what you think it means. The usual meaning of "voluble" is "talkative" (gesprächig if your username is accurate). I'm not quite sure what you're going for here or in an earlier comment, but suspect it's something more like "ergonomic", i.e. the language being easy/natural to write and not getting in your way.

Pannoniae 5 hours ago | parent | prev [-]

No, rapid development is essential when you're making games. It's not a "solved science", sure you can code something up and slap some programmer art on it then ship it but you very well know that won't be usable. You need to iterate on the gameplay and gamefeel a lot if you want something more than slop.

One way is sure the native language + embedded scripting language combo but that's got the trap of impedance mismatch i.e. you spend all your time making engine not game then it overruns. But in any case having a way to iterate fast is a hidden productivity superpower, look at how many game studios have Live++ licences on their webpage;)

bryanlarsen 7 hours ago | parent | prev | next [-]

Rust is great for rapid protoyping, IMO. Or, at least the subset of rapid prototyping that involves massive rewrites to try out different approaches. Rust has a saying "if it compiles, it works", the compiler really ensures that you don't miss something when doing that rewrite.

germandiago 6 hours ago | parent [-]

> Rust is great for rapid protoyping, IMO

If you have to iterate a lot the shape of your code... no, it is not any good at this...

edukite 7 hours ago | parent | prev | next [-]

My employer company go through JavaScript, Java, Golang and at the end landed on Rust for srver side and don't want to change anything. Everything is Rust now, regardless of traffic.

I don't know why you think it's only usable but this is your right.

bigfishrunning 6 hours ago | parent [-]

I do think rust works there (as you clearly know), i just like Go's ergonomics for that exact task better, that's all.

larme 6 hours ago | parent | prev [-]

GPU programming?

the__alchemist 6 hours ago | parent | next [-]

Rust is great for GPU programming, or at least for writing the Host (CPU) side without friction. WGPU or FFI-based Vulkan etc bindings for graphics. Cudarc + normal Cuda kernels for general purpose compute. I bring these up as they're easy-to-use and mature.

bigfishrunning 6 hours ago | parent | prev [-]

Yeah, you're still stuck with DSL's there, but not for lack of trying https://github.com/NVlabs/cuda-oxide