Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is something I have been reading more and more lately - "Rust is complex". In the past, people usually brushed it off saying that it's much simpler than C++. But that always felt like saying that a mountain is not very high because it's smaller than the Everest


Rust's philosophy is "frontload the problems", thus complex problems are complex right away. It means it takes a lot of thinking about design, fiddling with data structures, types, looking for elegant design optimizations, but then it works as "intended", compared to a lot of other tools/langs.

Here the author states that the hard (error prone) part is not the coding, but the transliteration from the manufacturer's data sheets. So Rust seems to be adding complexity for no gain at all. (Which is completely fair for a hobbyist project for a keyboard firmware.)

Does this mean Rust should only be used for big systems where that mandatory explicitness about complexity pays off? Does this mean Rust perhaps would benefit from a mode where certain modules/functions are type checked in a different way? (Or that would just make the language even more complex for no significant gain during programming?)


It has essentially become the very thing it sought to destroy. Choosing Rust over C++ is now mostly about the vastly superior package ecosystem, thanks to Cargo.


Rust's tools are better for common cases, but C++ has the vastly superior set of libraries: GPU, embedded, robotics, desktop, mobile, etc.

I recommend watching CppCon and being amazed at how much work is going into the C++ ecosystem right now. Rust is popular in some circles but the programming world is extremely big.


> Rust is popular in some circles but the programming world is extremely big.

And HN only represents a tiny viewpoint of the programming world.


These nonsense hyperbolic comments are crazy. The complexity of Rust is nowhere on par with that of C++


I mean, the author could have removed most of the complexity by using Rust HALs.

They just decided to reimplement from scratch their own different solution. That’s completely fair, but doesn’t allow you to make the complexity argument.

It would be like deciding to start a C++ project without using the C++ std library and arguing that C++ is hard because you had to reimplement std::Tuple...


> I mean, the author could have removed most of the complexity by using Rust HALs.

What are the "nrfXXXXX-hal" crates they use that provide the Port/Pin types then? What do the HALs provide in addition that would have helped?




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: