I am trying to understand the goals of Java EE specification.

I suppose Sun could just build a software package offering all those functionalities? Kind of like Spring. Instead they thought it was better to build a specification and allow other vendors to implement it. Why did they think so and what exactly is achieved by this approach?

I am not asking why people need to create specifications before writing software. Those specifications are about understanding requirements and creating a plan. To me, Java EE specification seems to be different. It was created with the explicit goal to be implemented by other vendors.

  • 2
    Possible duplicate of Why bother with detailed specs? – Ben Cottrell May 6 '17 at 6:36
  • 1
    @Ben Cottrell No, I am not asking about specifications in general. I edited my question to explain. – Escape Velocity May 6 '17 at 7:13
  • 1
    Does "competition is good" answer your question? Or, put it another way: what are you looking for in an answer? They also created a Java Language Specification that allows other vendors to implement the Java language, the Java Virtual Machine Specification that allows other vendors to implement the JVM bytecode language, and various library specifications that allow other vendors to implement the JRE. What makes Java EE different? – Jörg W Mittag May 6 '17 at 18:17
  • 1
    Because Sun is a CPU and OS vendor, not a middleware vendor. In fact, they really aren't a language vendor either, they sort-of accidentally became one. IBM, Oracle, BEA, etc. are middleware vendors. Compatibility is good, competition is good, middleware is important, Sun itself is not in the middleware business, ergo, the natural thing to do is to create a specification which ensures that the competing implementations are compatbile. – Jörg W Mittag May 8 '17 at 0:17
  • 1
    Note that this actually worked out somewhat differently: IBM and BEA actually both developed their own Java and JVM implementation (IBM J9 and BEA JRockit) in addition to their JavaEE implementations. Oracle then first bought JRockit and later Sun, so in the end most middleware vendors also ended up being Java/JVM vendors as well. – Jörg W Mittag May 8 '17 at 0:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.