Wait, now Java does too much?
The forum section of the front page gets four items today: one more than usual, but two less than I had been considering. There are a bunch of really good discussions going on. Well, there's also a new spam trick -- spammer posts a "hey, does anyone have bulk e-mailing software" message from one account, and then the SEO-targeted link-tacular followup from another -- but I caught those and deleted the messages (the users will be deleted in a few hours once the U.S. West Coast wakes up).
Anyways, back to the legitimate discussions,
alexj33 posted a provocative message in the JavaTools forum -- probably should have been in JDK feedback, but again I digress -- to ask Has Java lost its way?
I used to be a Java developer back in the late 90s. Java has always been a frustrating enigma for me. Allow me to explain.
Several times I've browsed in and out of the latest Java books and forums, and I cannot believe how *complex* it has all become. Quite simply, does there have to be a new API and a new 3rd party framework for every little thing a developer wants to do?
My understanding is that Java was meant to take the complexity out of previous development platforms, yet in my eyes it has become exactly what it was meant to replace, albeit in different ways.
Who can keep up with this dizzying array of acronyms and libraries? Who has the time to? Is it even worth it to do so? Who has time to research the frameworks to find out even what is worthwhile to invest more time in?
Is this a valid criticism? We've heard a lot over recent years about Java "using up its complexity budget", but some of that is aimed at language features like generics (and possibly closures). This complaint has to do with the breadth and depth of the libraries available to the Java developer. On the one hand, there are a lot. A quick word-count of the JDK 6 Javadocs shows that Java SE has over 3700 public classes, and that's before you bring in libraries like Java EE.
But on the other hand, does anyone really try to keep up with it all? Java is large enough to have specialization, and it's likely the server-side programmer never looks at anything in Swing, just as the desktop developer neither knows nor cares how servlets work. By this argument, Java's no different than any other large platform: do you suppose there are a lot of MSDN developers who excel both at Direct X graphics and .NET web services?
alexj33finishes up with some interesting questions that are worth keeping in mind as we approach Java 7 and, no doubt, a new set of APIs:
OK, rant over. Now onto the real question. My question to you all is threefold:
1. What do you think the original purpose of Java was?
2. Is Java on the right path today? Can it continue in its current direction?
3. Is Java itself embracing or alienating the developer community?
Also in today's Forums,
terrencebarr posts a reminder of Java ME's value in
Re: Why not get rid of the JVM and JIT for mobile device? "Sure, Java ME fragmentation is a source of extra effort and frustration but one of the key reasons is because the underlying native platforms are so radically different (not really Java's fault). Deploying native apps not only requires developers to deal with the native differences but adds a new layer of complexity with different processors, executable formats, operating systems, libraries, security mechanisms, etc, etc. It grows the problem space by two or three dimensions."
Over in the Project Wonderland forum,
nicoley posts a
New Proposal for Voice Calling in 0.5. "I have just added to the wiki the first draft of a proposal for Voice Calls in Wonderland version 0.5: http://wiki.java.net/bin/view/Javadesktop/WonderlandInWorldPhone. The general concept of this design is to unify "voice chat" and telephone integration. The proposal suggests a single user interface for making VoIP calls and PBX calls. It also includes the design of an in-world personal virtual phone. This phone can be used by each Wonderland user to both place and receive voice calls."
ingridy clarifies a timeline question in the followup
Re: "Next Generation" Plug-In Support for AMD64?, saying "64bit plug-in will not be ready for 6u10 final release."
In Java Today,
the ME Framework 1.2.1 release is now available on the project's download page. "This release went through an extensive QA cycle and is ready to be used for test suite development. If you downloaded the ME Framework 1.2.1 development releases, please switch to this final milestone release." The ME Framework is a set of JT harness plugins that supports the Java ME platform. TCK architects use the JT harness and the ME Framework to construct TCK test suites for Java ME technologies.
Kirill Grouchnikov has started a new series of blogs in which he talks about the specific tasks involved in taking a UI definition from your designer and turning it into a working application. Step 1 is analyzing the original design or more specifically, identifying the application's decoration areas and functional areas. Step 2 is mapping design to UI toolkit, which means "map[ping] the application functional areas to Swing container hierarchy and the application decoration areas to Substance decoration areas."
Sathish K. Palaniappan and Pramod B. Nagaraja's article Efficient data transfer through zero copy explains how you can improve the performance of I/O-intensive Java applications running on Linux and UNIX platforms through a technique called zero copy. "Zero copy lets you avoid redundant data copies between intermediate buffers and reduces the number of context switches between user space and kernel space."
In today's Weblogs, Fabrizio Giudici begins with a story about Remote profiling with NetBeans. "Varun Nischal, one of the fresh new members of the NetBeans Dream Team, is hosting some friends on his blog. I've just published a small story about the NetBeans Profiler used in remote mode."
In Add resetValue() to EditableValueHolder?, Ed Burns "polls the community about whether to break backwards compatibility in one small interface in JSF 2.0."
Finally, Marina Sum promotes a Join OpenSSO and Single Sign-On Presentation in Second Life. "Registration is now open for the September 30 session."
Current and upcoming Java
- September 1-24 - O&B's Enterprise Architect's Boot Camp - September 2008
- September 12-14 - New England Software Symposium 2008: Fall Edition
- September 15-19 - Java Training Philippines
- September 19-21 - Pacific Northwest Software Symposium 2008: Fall Edition
- September 22-24 - O&B's Agile Training - September 2008
- September 22-24 - O&B's Test Driven Development Training - September 2008
- September 23-26 - Java Power Tools Bootcamp in Melbourne
- September 29-October 1 - The Ajax Experience
- September 29-October 2 - Java Power Tools Bootcamp in Sydney
- September 29-October 3 - JavaEE Training Philippines
Registered users can submit event listings for the
href="http://www.java.net/events">java.net Events Page using our
href="http://today.java.net/cs/user/create/e">events submission form.
All submissions go through an editorial review before being posted to the
Archives and Subscriptions: This blog is delivered weekdays as
Today RSS feed. Also, once this page is no longer featured as the
front page of java.net it will be
archived along with other past issues in the href="http://today.java.net/today/archive/">java.net Archive.
Wait, now Java does too much?