C++ is almost nowhere to be seen in modern day distributed computing and business software, outside OS, language runtimes, databases and networking stacks, also known as low level infrastructure code.
All relevant application software is written mainly in a mix of Java and .NET languages, complemented with a mix Go, Rust, Python, Ruby, and SQL dialects.
Likewise Apple, Google and Microsoft no longer have C++ based GUI frameworks, like it was common in the 1990's, and one of them ships a whole OS where Java rules the userspace.
It did to a degree but still left a sizeable amount of use cases as they were ill suited for Java. I feel like this is repeatedly happened since where each new or newly hyper language has peeled off parts of C++'s use cases but never gone for the core. I feel like Rust is the first that can do it and significantly improve on it. While it does lack specialization and some template tricks, it has memory safety, core/alloc/std, first and third party libraries focusing on `Result` rather than exceptions, etc. This is much better suited for kernel, embedded, and framework development while also being able to scale up into the use cases that went to Java and other languages previously.
Given that MSFT seemingly failed to extend-and-then-extinguish Java, what is the applicability of this analogy?
(I don't have any particular faith in MSFT. I just don't think EEE even remotely works as a strategy in cases like this, and I think MSFT is not stupid enough to think that it does.)
Just like Google did with Android, which apparently gets celebrated in FOSS circles, big bad Oracle, what they think they are playing the Sun lawsuit card.