views:

118

answers:

2

We have a project which (assumed) would be finished in 1-2 years. By then, the JDK7 (and hopefully the Java7 JCP spec) should be ready.

But, I wonder, how probable is the "danger" that Oracle will make a "stupid" decision, which would make the JDK7 a less "attractive" platform then the existing JDK6?

More specific, I'm afraid of scenarios such as:

  • halting the development of JDK7 before it is "released"
  • changing the licensing model to be more restrictive than JDK6
  • ...are there other scenarios to be aware of?

What is your opinion on the issue?

NOTE: We would use the NIO2 files API, and perhaps other JDK7-only features which were accepted for "Plan A"

+3  A: 

It depends on how many Java 7 specific features you use.

If your code can still compile on JDK 6, I'd say you're quite safe. You can run on JDK 7, since it's backwards compatible, but if there's an issue you can still deploy on 6.

If Oracle does something really stupid you'll have a bigger decision on my hands: Do I rewrite this app in C#, Python, or something else?

I'll be curious to see how well open source JDK will allow you to hedge your bet.

I'd also be curious to see which features of JDK 7 you're already using: closures?

duffymo
Closure will be in Java 8 not 7. This is part of plan B.
Thomas Jung
I think the Oracle v. Google RE: Andriod JVM will actually have a HUGE impact on Java's perceived usefulness across the world. If it suddenly becomes not as open as everyone has been led by Sun to believe, then this will be a game changer.
REW
+2  A: 

If you're concerned about risks associated with Java 7, you can mitigate them by ensuring your code will run on Java 6. The easiest way to do this is to develop atop Java 6 now, then upgrade to Java 7 once those risks have dissipated.

In addition to the risks you've noted, the set of features planned for Java 7 is in flux.

Andy Thomas-Cramer