I'm seeking a programming language (i.e.: compiler and IDE software package) that introduces modern convenience concepts like implicit conversions, assignment/call fungibility, mix-ins, extension methods, function culling, pattern matching from Kotlin and Scala, BUT is fully backward-source-compatible with Java.
Meaning of "backward-source-compatible": I can take legacy Java code and work with at as-is in the new language, and ONLY add advanced features in specific spots where I want it.
Historic parallel: when people decided to add object-oriented features to the C Language, they took two different approaches. One (C++) emphasized backward compatibility. Another (Objective C) did not. In my mind, Objective C is to C as Kotlin and Scala are to Java; and C++ is to C as Unknown language X is to Java.
As an additional nitpicky requirement, this should look like a real language, not annotation soup like Project Lombok.
One gripe that I have with languages like Kotlin and Scala, is that they introduced gratuitous changes such as changing declarations from
Type name to
name: Type. I say gratuitous because they are functionally equivalent and ergonomically inferior (one extra character at every declaration). They break compatibility, without providing any additional benefit.
I am very knowledgeable of the Java ecosystem. I expect, if a language meeting my requirements exists, it is probably a very obscure project by one brilliant person somewhere out there. Does it exist?