RE: [ecf-dev] Changing DocShare requirements to Java 1.5 and up - any objections?
> Turn it around. The reason embedded devices, desktops, ski lifts,
> military devices, BMW 5 series still run on Java 1.4 is because they
> still can. If frameworks linger on old technology, so will the
> applications using it. Forever.
Turn it around again, if Java 5+ would offer any convincing advantage over
plain old J2SE which would really go beyond syntactic sugar, and that would
thus justify the breaking of backwards compatibility, every device would run
it. The problem here is the ongoing fragmentation of Java as such. Write
once runs everywhere has always been a lie of the marketing people but it is
getting more and more absurd. CLDC, CDC, J2SE, Java 5, Java 6, Java 7, ...
If Java itself would accept the concept of modularity (and remember what the
"x" in "javax" was once for), you could actually run the same JVM on todays
devices. However, since every desktop VM has to come with 300 different ways
of parsing XML and rarely used (but highly political) features like CORBA
binding, etc., you don't even want it on your embedded device.
> I know I'm rambling, just want to share another perspective. I'm old
> enough to still remember the pain from being forced to write K&R C and
> not upgrade to ANSI with proper function prototypes just because some
> obscure platform didn't have the compilers to support it. I'll write a
> blog-post on the topic someday and we can continue the discussion there
With the difference that, when ANSI C was appearing, most people already
knew that these platforms would eventually die out. Today, there are already
more mobile phones around in the world than personal computers. So to be a
goofy, CDC 1.1 is the future and not Java 7 :-)
I would love the JVM to be like an OSGi framework so that I can decide what
I want to have in my classpath.
But seriously, I have spent most of my life writing programs and have seen a
lot of things rise and fall. To me, there seems to be a point where concepts
collapse because they reached a critical point. This point is often when
what the designers want you as a programmer to find useful is getting an
order of magnitude more than what you actually want. Sometimes due to
overengineering, sometimes things are getting too dogmatic, sometime they
add stuff just to make it harder for other implementers to follow. Then
comes the shiny new thing that starts with cool new ideas and a strong
dedication to simplicity, people jump onto the new train, the new thing
grows... Da capo al fine.