Hacker News new | ask | show | jobs
by Dinux 2507 days ago
The team has some experience with C# and Java which makes it easier to go with C++, an then there is a little knowledge of C++17. I think from this perspective its clear that C++ would be the better choice in our case.

I may be misinformed but from what I've seen so far is that Rust crates can be super beneficial and speedup development (where there is an obvious lack of a well-established package manager for C++), but neither Google nor any of the other major C++ shops do provide a Rust <-> C++ lib bridge. For example there does not seem to be official Google support for the v8 engine/leveldb under Rust forcing me to thrust a single Crates maintainer doing some porting in his free time.

2 comments

The problem I've run into (YMMV) with C++ is that a lot of documentation/information is outdated (dangerously so).

C++ isn't a single language, it is three major revisions (98, 11, and 17) of a similar-ish language. If someone used C++ continuously throughout its evolution this is a non-problem. Because they were able to slowly adapt their knowledge, while still having the ability to mix and contextualize.

For new people entering the language "just use C++17" is largely a fiction. Because the first time you look at stackoverflow, a tutorial, or GitHub code all bets are off. And a lot of developers end up in interop hell because they're trying to get to C++98/11 structures to work with C++17 ideas.

I don't actually agree that C#/Java gives an advantage to C++17. In fact I think the reverse. The syntax is similar, but syntax is relatively minor in the grand scheme. Rust, once you get past syntax, is much more similar to high level language because you aren't wandering through the memory management minefield.

Just my 2c.

PS - I don't "hate" C++. But you cannot just jump straight to C++17 while pretending C++ 98/11 don't exist. You have to learn all three, and then learn not to use the first two, otherwise you wouldn't understand most of the information available to you (and most libraries you're interopping with are writing in a dialect you don't understand). Learning C++ for real is a huge under-taking.

Why would that make C++ easier?

If anything, Rust generics are more familiar vs. templates