3 ms·
I love C++ (though it often frustrates me), and I think Rust is doing some awesome things (though I don’t work in it). A few clarifications: Your point about i
by tomnj 8y ago
I love C++ (though it often frustrates me), and I think Rust is doing some awesome things (though I don’t work in it). A few clarifications:
Your point about iterators and composability: you’re right, the STL suffers a bit here, but Eric Neibler’s ranges library (which is partially approved for C++20) addresses this.
> Compile time programming ... aren’t in a standard yet.
There compile time programming story in C++ has been getting better and better, and has made great strides with recent standards (check out constexpr, which arrived in C++11).
> template meta programming is an agony to use.
Many people would agree with you, but it’s a matter of taste :). It’s “just functional programming” (with an arguably terrible syntax).
I’m very jealous of many rust features, like built in algebraic data types, pattern matching, but most of all their build and package stories.
- ilovecaching 8y agoI'm curious, what would it take to get you to completely ditch C++ in favor of Rust?
- tomnj 8y agoCompletely? I’m not sure. I need to try more Rust. But not having to write another CMakeList sounds pretty good for starters :)
- marcosdumay 8y agoNo, constexpr is in no way similar to the compile-time programing available on Rust. It's not on the same ballpark, it mostly does not have similar goals. > It’s “just functional programming” Well, yes, it's just functional programming where all the data is text, you don't get to query or debug intermediate values, and functions aren't even first class. That's to say, it's a pure language, and lacks all the other features of modern FP languages.
- twic 8y agoConstexpr is not bad, but not macros. Macros can do things like generate new types, and add methods existing types. That's crucial for things like custom derive. C++ will get that sort of thing from the metaclasses proposal, which slouches towards WG21 to be born: https://www.fluentcpp.com/2017/08/04/metaclasses-cpp-summary/ https://www.fluentcpp.com/2017/08/04/metaclasses-cpp-summary...