Everything eclipse based got hit with that when Oracle rightly changed the vendor property of the Sun jvm to oracle, afaik checking that did not even make sense since both version and name of the jvm have their own properties . Sadly no programming language can protect you against stupid programmers, any attempt will be dwarfed by the world producing better idiots.
Speaking as someone who is an Eclipse committer, your representation of the situation is not accurate.
Sun's JVM has different proprietary options than other JVMs. It also has this notion of PermGen space that other VMs don't have, where various classloader stuff and other things can be stored. Run out of space there, and the JVM blows up.
When you have a Java application like Eclipse that is really big, it's not hard to run out of PermGen, especially because the default size is so paltry. So, the Eclipse launcher needs to be able to modify this size of the PermGen. However, the special command line option to do this is proprietary to the Sun JVM, and if you pass it to someone else's JVM it's common for that JVM to refuse to run because you gave it an option it didn't recognize.
So, Eclipse has to:
- Check which JVM it is launching with.
- Is it the Sun JVM?
- If it is, pass PermGen options
How do you propose checking #2 without checking the vendor name of the JVM?
Maybe you should look into things more before you call a bunch of experienced, professional, open source programmers stupid idiots.