Kotlin is the better Java. C# is just Microsoft Java, it fixed some of Java’s mistakes, made a few new ones, but ultimately it’s just Java for .Net. I’d say the one decision C# made that really does make it better than Java (and puts it on par with Kotlin) is making variables non-nullable by default. Implicitly nullable variables is the single dumbest decision in Java. Fix that decision and Java instantly becomes so much better.
Kotlin is the better Java. C# is just Microsoft Java, it fixed some of Java’s mistakes, made a few new ones, but ultimately it’s just Java for .Net. I’d say the one decision C# made that really does make it better than Java (and puts it on par with Kotlin) is making variables non-nullable by default. Implicitly nullable variables is the single dumbest decision in Java. Fix that decision and Java instantly becomes so much better.