| I'd say expressiveness of C++ with productivity of Java.
Rust is indeed not easy to learn. A little example. Yesterday I was making changes to our C++ client library and I wanted to improve the example in our documentation. We use a dedicated protocol called ILP for streaming data ingestion and each of the inserted rows has a designated timestamp. In the Rust example, I using added support for chrono::DateTime and it was trivially easy for me to add a timestamp for a specific example date and time: Utc.with_ymd_and_hms(1997, 7, 4, 4, 56, 55). Our C++ library instead takes an std::chrono::time_point. I wanted to use the same datetime. As far as I can tell it requires first going through the old C "struct tm" type (which is local and not UTC), then converting to "time_t" then converting to utc via gmtime and then constructing a time_point from that.
After 10 minutes the code got too long and complicated so I just substituted it a timestamp specified as an int64_t in nanoseconds. Don't get me wrong, the C++ time_point is a work of art in how flexible it is, but unnecessarily complicated in most cases. I should add that I also spent 45 minutes yesterday debugging a CMake issue. Rust is not easy to learn, but it's just more modern and productive. C++ is still great if you've got a massive team, but at our scale I don't think it makes any sense. |