Every software application which has version 2 is itself proof that version 1 was not good enough; e.g. Zend Framework 1, Symfony 1, Doctrine 1. And usually it’s also the acknowledgement of its developers that they got it wrong after many years. What frustrates me is that they rewrite the whole thing from scratch and there is no room for backwards compatibility:

Backward compatibility

I’m not a Java developer but it looks like they have been responsibly improving it and there is good planning; the current version is 1.7 after 18 years:
Java version history

Every developer should know this before writing a single line of code:
Software versioning

You need to look at the version history to understand why I didn’t choose .NET after getting some training over 10 years ago: if M$ doesn’t know what it is doing, how can I depend my career on it?!

.NET Framework

And here is a joke to finish the subject:
Timeline of web browsers