C++11 features a plethora of changes to take down frustration levels, including the addition of lambda functions and initialiser lists. Possibly the biggest change, however, is the inclusion of a standardised memory model, something Gosling’s Java actually adopted in 2005.
The memory model means that the C++ spec has a standardised library that devs can adhere to, and that apps can call, regardless of who made the compiler and what platform it is running on.
Sun tried and failed to get Java approved as an ISO standard back in the day. While it remains to be seen what difference the new memory model in C++ will really make in real-world development, its inclusion can be considered a bow to the primary criticism Java’s inventors had of C++. Now that it has been addressed one wonders if C++ may get another look by developers now toiling away with Oracle’s language.