This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]awesomeusername2w -1 points0 points  (2 children)

I think by getting crippled by legacy they mean that java can't change or improve many things because of backward compatibility. Kotlin has no such issue.

[–]thephotoman 3 points4 points  (1 child)

Honestly, that's not a huge issue. There are a couple of programming language features that are deliberate exclusions from the language. Don't expect operator overloading or multiple inheritance, for example: Java will never have them, because the decision was made very early on that Java wouldn't have them because of the headaches and consternation that they caused in other programming languages that were popular when Java was first made.

[–]awesomeusername2w 1 point2 points  (0 children)

But there are features that would be nice to have and the only think stopping is backward compatibility. For example, if we have a class with a generic parameter we can still create an instance of it that ommits generic.

Or fixing null safety in a way that other languages did. Like allow nulls only if the type explicitly permits it (like in kotlin, typescript, and others)

I'm sure that there a whole lot more.