In terms of re-implementing the language, I believe that C# is just as free as Rust in this regard; it can be done without fear of a lawsuit.
https://arstechnica.com/information-technology/2009/07/micro...
Java was also unique in that Sun was only charging licensing fees for mobile implementations, providing motivation for Google to build their own implementation of the language. With mobile devices being as high powered as they are, I don't think that model makes sense anymore.
B. What about Scala? Would you say Scala is a "good fit" for people leaving Java because it's also built on top of the JVM? Or would it be a "bad fit" because the idioms and functional-nature of Scala are vastly different than Java? Or how about Kotlin?
I'm not thinking about "successor" in terms of "Java-specific" design patterns. I'm thinking successor in terms of - can Rust, with concurrency as a first-class-citizen and C-like perf with a safer programming model, replace Java for many of the "higher-level" applications that would've typically been written in Java?
A Java programmer would be so confused by Rust.
My current project has me working primarily in a mix of C++ and Java, and I would love nothing more than to rewrite the whole thing in Rust. Sadly, I did my job too well the first time around, and it's hard to justify a full rewrite of a codebase that already works.
(Or I guess you could write Scala in a non-functional, Java-y way, but that would defeat the purpose of using Scala...).