Java faced an existential crisis very early in its existence, in the late '90s. Microsoft attempted to create its own version of the language, dubbed Visual J++, that integrated with its development tools, and which contained proprietary extensions and left out parts of Sun's spec. The effort ended in lawsuits and acrimony, but Sun did emerge victorious in 2001: the principle that Java would remain Java, implementing the same spec everywhere no matter the vendor, was firmly established, and this allowed Java as we know it thrive.
Read more ...