views:

70

answers:

2

I'm not sure how to phrase this question, but considering the differences in .NET listed below, is there any comparison to Java and all it's deployments?

Platform

  • The same version of .NET can run on either a server or workstatation
  • Since the full version of .NET may be too much for some deployments, there is a client profile only version
  • Silverlight and .NET are not binary-compatible.
  • There are additional versions of .NET that are meant for other platforms. They are not binary compatible, and may have different API's available: (.NET Micro, Mobile, CE, Embedded, Mono)

Changes between versions

  • The CLR is version "1.x" in .NET versions 1.0 and 1.1
  • The CLR is version "2.x" in .NET versions 2, 3.0, and 3.5
  • .NET 3.0 adds WF and WCF
  • .NET 3.5 is mostly a feature pack on top of the .NET 2.0 "base"
  • A .NET 2.0 application will run if only .NET 3.x is installed, but what may appear as a version mismatch doesn't apply to any other assembly/.NET build combination

Given all the different versions of Java SE EE and all the acronyms, I'm sure there may be more under the hood I need to learn besides the spelling difference between each implementation.

Can you tell me what I need to know regarding the various versions that exist and when is one more appropriate than the other. http://www.oracle.com/technetwork/java/index.html

+2  A: 

Until now if a program ran under any release of Java SE - Java 1.1, Java 1.2, Java 1.3, Java 1.4, Java 5, Java 6 - it runs under any later release too (except for unintentional bugs, but these has been very few).

Sun has given this extreme attention, and it has meant that upgrading has been a non-issue. You just do it. With the advances achieved in the JVM this has also been highly desirable.

Hence, unless you have very good reason not to, your users should use Java 6. The Sun Java 6 gives very good performance but at the cost of memory to do so.

I have only worked with the "web application" part of Java EE, but here the Servlet API has been very stable and well supported. A given WAR file can be deployed on any web container, plus some configuration glue. This includes web containers much newer than the specification the web application was written against.

Thorbjørn Ravn Andersen
+1 thanks, this is the direction I'm interested in
MakerOfThings7
If you are to write new code, I would suggest developing with Java 6, but be Java 5 compliant. This will give you the most flexibility in terms of where to deploy the results.
Thorbjørn Ravn Andersen
A: 

I think all you need to know is that Java JDK 6 is the only one that's currently supported by Oracle. The other earlier versions have all passed their useful support life.

There's no good reason on earth for anybody to be running a JDK or JRE version 1.4 or earlier. It doesn't even have generics, and it's missing a number of important improvements to the memory model.

JDK 5 is defensible, but I believe it's already reached the end of its support life as well.

duffymo
@duffymo - I'm looking for technical differences akin to .NET listed above... something with more depth than what's supported by the vendor. Sometimes it's the clients who mandate and drag along old versions, that I need to understand.
MakerOfThings7
Note that the "Java for Business" subscription program provides support for even Java 1.4 for those who need it until 2013. http://www.sun.com/software/javaforbusiness/getit_download.jsp
Thorbjørn Ravn Andersen