2007 Java Predictions
jg21 writes "Java Developer's Journal has published the results of its end-of-year poll of various Internet technology players, from its own internal editors to industry high-ups like the founder of Apress, Gary Cornell, and including too the thoughts of professor Tony Wasserman of Carnegie Mellon West. Participants were asked to foretell what they saw happening in 2007. Among the predictions — Cornell: 'The open-sourcing of Java will have no effect whatsoever on Java's slow decline in favor of dynamic languages (Ruby, Python) and C#'; Wasserman: 'The use of the GPL 2 for open-sourcing Java will inhibit the completion and acceptance of the GPL 3 proposal'; and Rails creator David Heinemeier Hansson: 'The stigma of being a Web programmer still using Windows will increase.'"
OK, we all know how useful and accurate these predictions tend to be, but since it's that time of year...
The open-sourcing of Java will have no effect whatsoever on Java's slow decline in favor of dynamic languages (Ruby, Python) and C#.
That depends on what market we are talking about. Open sourcing Java will make a MASSIVE difference in terms of Java's appeal to the open source development community. Whether this translates to more Java software or not I don't know, but there are already some very good programs in Java that are open source (Jedit http://jedit.sourceforge.net/, Jabref http://jabref.sourceforge.net/ and JaxoDraw http://jaxodraw.sourceforge.net/ come readily to mind). Seamless integration with Linux distributions has the potential to make it a much more popular language, and may also result in usability improvements to the environment itself.
Other languages will grow of course, but I would personally be surprised if Java fades too much except perhaps as the "new toy". There is a LOT of Java code out there, and it is doing important work.
The use of the GPL 2 for open-sourcing Java will inhibit the completion and acceptance of the GPL 3 proposal.
I don't understand this. GPL3 will go forward as it is going forward now, with much discussion - I can't imagine any issues Java would raise that aren't already being raised. Anybody with more knowledge of the process and Java know what he's saying here?
Now, just to get into the swing of things, my predictions:
a) Every major Linux distribution will deploy Sun's JRE as a core system component soon after a full open source release is made. Allow six months to replace any pieces that could not be released due to copyright/license issues. The Sun JDK will also see large scale integration.
b) Open source software written in Java that already exists will get a boost in interest and visibility, as it is no longer using a language that is non-free.
c) Graphics performance and native appearance of widgets will be a major focus of interest and effort, possibly resulting in Java applications becoming better integrated visually with the desktop. This may actually cost Java a bit in terms of name recognition, as end users will see less visual evidence of the difference between Java and other languages (I know, I know - that's not what makes Java different, but it's what can be SEEN that counts.)
d) As Linux distributions integrate and include Java by default, it will increase the appeal of both Java and Linux on the server side.
And one that I would like to see proven wrong:
e) No major OEM computer maker will add the Sun JRE as a default part of their desktop, despite it being released as GPL.
"I object to doing things that computers can do." -- Olin Shivers, lispers.org
I've never been a fan of the language. Performance is terrible, and moving an app from one VM to another often causes serious problems. The cross platform claims have consistently been exaggerated.
I work for a large .com that serves up tens of millions of hits per day, and we are a Java shop.
You don't know what you're talking about.
re: cross-plaform compatibility. I do my development on OS X, but most of our developers use Windows. Our dev and staging environments are Linux, and our production boxes are Solaris, although we've recently introduced Linux into that mix as well.
There have been several times where I have taken a jar file built on my machine, and deployed it to other developer's machines or our staging environment with absolutely no problems. The same jar runs on every OS we deploy to.
Nor has performance ever been a problem. VM technology has seen amazing improvements over the past ten years, and is now such that for most non-trivial applications it is more performant than the compiled C/C++/Obj C equivalent. The success that Java has seen would not have been so tremendous if this were not true.
Back in the days when JDK levels 1.2.2 and 1.3.1 were the bleeding edge of commercial application servers, it was actually quite easy to find 100% Pure Java code that would barf on one JVM/platform combo but work quite well elsewhere. Off the top of my head, here are some examples:
1. Rendering double-byte character sets on AIX and Solaris crashed the JVM for various combinations of language (ja and ko were notoriously fragile), JVM, and OS level.
2. Code that spawned processes worked correctly in Windows, AIX 4.3.3, and Linux, but failed under AIX 5L and Solaris.
3. Solaris would throw an erroneous OutOfMemoryError when lots of EJBs were loaded, but it worked fine under AIX 4.3.3, AIX 5L, Linux, and Windows.
Our project was a relatively simple and classic J2EE webapp with a few EJBs for adminstration, some JDBC for large dataset handling, and JSPs for the frontend. It had an "InstallShield Multi-Platform"(tm) Java-based installer. We generally found JVM errors at the rate of once a month. Most could be worked around, but a few had to be documented to the user, and some (such as running the installer in a particular double-byte character set) could not be solved at all given the existing necessary workarounds for other JVM bugs.
Perhaps the JVMs have improved in reliability and work now as you say they do. I moved away from Java after that project and I doubt I'll ever switch back now.