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

As the definition says, the C++ standard is a formal technical document.

Rust doesn’t have a standard, it has a book, so you should refer to the initialization section from Stroustrup’s C++ book to keep things fair.



Rust doesn't need a formal document so badly, because (in safe code) the punishment for not following the rules is much more clear and small. It's either a logic bug that doesn't lead to memory-related vulnerabilities, or a readable compiler error. Of course, if your compiler doesn't catch and explain your errors to you, you need a separate book to help you with that!


To be fair, the formal document isn't for language users, it's for compiler implementors. Rust doesn't have a formal document for other reasons, mainly that there is one main Rust compiler, as opposed to C or C++ where there are dozens that all need to agree on behavior.


People over-index on "formal" here, the Rust reference and Ferrocene (which will end up being adopted as the official spec) is just as "formal" as the C++ specification.

There are other compilers in development, and they're able to coordinate with these documents. There is of course always more work to do, but it's really not as far away as some people believe.


It’s not even close to as formal as the C++ specification because only one of them is an ISO standard, or more generally, an international standard.

US corporations have massive influence over Rust since they bought seats on the board. Speaking of the board, it seems to me it’s all US based.

The company working on the official spec is a Berlin LLC.


International standards have nothing to do with formality in the computer science sense.

US corporations also have massive influence on the C and C++ specifications, just look at the brouhaha around Bloomberg and contracts for C++, for example.

And the Rust Foundation does not author the specification, the Rust Project does. So in many ways, companies on the Foundation board have less direct influence than the companies who send their employees as representative to WG21 or similar.


My use of formal was from: “The standard is not intended to teach how to use C++. Rather, it is an international treaty – a formal, legal, and sometimes mind-numbingly detailed technical document intended primarily for people writing C++ compilers and standard library implementations.”

https://isocpp.org/wiki/faq/wg21 is still very US skewed, but much more diverse than both https://www.rust-lang.org/governance/teams/lang and and the foundation. The latter does influence the direction of the language: https://rustfoundation.org/safety-critical-rust-consortium/


Sure, and that’s the same as the Rust version, regarding formality.

And sure, corporate influence is worth talking about, but the point is C++ isn’t free of it either.


Yeah, the historical reason for standardizing C is the reason to "reconcile" a bunch of already existing compiler implementations




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

Search: