5 ms·
Yes? Half of those are classes of bugs that would probably still exist with the usage of Rust, that is, they're simply a diversion from what you expected and wh
by R0b0t1 6y ago
Yes? Half of those are classes of bugs that would probably still exist with the usage of Rust, that is, they're simply a diversion from what you expected and what actually happens that the borrow checker can't save you from. You need to separate all bugs from the bugs Rust can't introduce.
It's safer, in theory, to just do it in Rust first, but it is also important to consider the amount of time it actually takes to implement either.
Why is this garnering downvotes...?
- Foober223 6y agoWelcome to the Rust world order domination brigade. /s
- alfalfasprout 6y agoIt's garnering downvotes because a lot of HN readers have never worked with a very large and mature codebase before and understand just how crazy a migration is. They seem to think that writing in Rust magically eliminates most bugs. No... it eliminates certain classes of bugs but instead you get plenty of logical bugs. The number of new bugs introduced in a migration would be enormous. It's not just "translating" the C into Rust-- you ideally need to write "idiomatic" Rust. Rust is a fantastic language but what I despise about its community is how they seem to think every C/C++ codebase should be rewritten in Rust. Either it's a monumental effort or it would decrease the developer base in many cases. In the case of C++ template libraries then it's in some cases even impossible to replicate functionality.
- zozbot234 6y ago> In the case of C++ template libraries then it's in some cases even impossible to replicate functionality. Rust has procedural macros that can replicate anything C++ templates can do, often more cleanly. And C/C++ are hardly immune from logical bugs.
- ncmncm 6y ago> "Rust has procedural macros that can replicate anything C++ templates can do" This is an entirely false statement. Wishful thinking makes a poor substitute for knowledge. Promoting wishful thinking against facts does all readers a disservice.
- tedmielczarek 6y agoHaving been significantly involved in the work to integrate Rust into Firefox I can say that while it's definitely nontrivial it's absolutely worthwhile. Every C++ developer I knew at Mozilla that took the time to learn Rust wound up being impressed with it and preferring to write Rust over C++.
- staticassertion 6y agoFirst off, I upvoted you, and I wish people wouldn't just downvote. That said, > Half of those are classes of bugs that would probably still exist with the usage of Rust, that is, they're simply a diversion from what you expected and what actually happens that the borrow checker can't save you from. It's unclear what you're referring to. The linked article is talking about vulnerabilities in QEMU drivers, which are almost exclusively memory safety issues from my own experience and memory. The post you're replying to is just about tools and techniques for avoiding them. > but it is also important to consider the amount of time it actually takes to implement either. No one has said otherwise and the article even explicitly addresses this. So I find your point really unclear.
- R0b0t1 6y ago>>> but it is also important to consider the amount of time it actually takes to implement either. >No one has said otherwise and the article even explicitly addresses this. What do you mean by this? The article might reference it (I don't see any reference to this), but if it does it doesn't actually explore what factors would influence costs and their magnitude. That's what I'm looking for.
- staticassertion 6y agoI mean that your statement implies that people are advising to perform expensive work without considering the cost, specifically the cost in terms of time, and that's not true. No one has said that. The article addresses cost in a number of places - maybe not explicitly the cost of time, but it seems weird to focus on that. The article explicitly addresses that it's not so simple to just rewrite a codebase: > Moving a large codebase to a new programming language is extremely difficult. If people want to convert QEMU to Rust that would be great, but I personally don't have the appetite to do it because I think the integration will be messy, result in a lot of duplication, and there is too much un(der)maintained code that is hard to convert.
- R0b0t1 6y agoThat's just a token mention of it instead of actually evaluating whether it will be problematic or not. I bring this up as he is probably one of the best people to evaluate this in detail and he didn't; lots of people here are acting like he did.