Skip to main content

What's Number One?

Posted by editor on November 16, 2005 at 6:12 AM PST


Will maintainability hinder Java's dominance?

If you don't like seeing Java criticized in this blog, then I'll bet you don't care for Wednesdays, which is when we've been rolling out news chapters of Beyond Java in the book club discussion. But don't go there yet. Today's weblogs bring up a completely new concern about Java and its long-term viability.

In Is Java the wrong language for business programming?, John Reynolds relates an argument that Java is less maintainable than one might think, a concept summed up in a colleague's statement that "COBOL programmers are interchangeable, Java programmers aren't." Elaborating, John says:

Jim is not a luddite, but he is tenaciously pragmatic. In his experience in managing large projects, he has found that any competent COBOL developer can maintain another programmer's code, but Java modules are often inextricably tied to their authors. Despite coding practices and design reviews, the Java modules take on the personalities of their owners. The nuance of each Java programmer seeps into the code that they produce.

John thinks that the difference in language maintainability -- if there is one, and that's hardly proven -- is that COBOL discourages abstraction while Java encourages it. This may give rise to Java code that makes sense to its original developer because it represents his or her world-view, values, sense of life, etc, and that another person with radically different values and ideas may not be able to work with that code particularly well.

Do you buy this? I'm somewhat inclined to agree... I've inherited code with obtuse abstractions that I couldn't get behind (e.g., a scheduling program whose point of contact was a Secretary that took Appointments). But on the other hand, when Java is self-documenting (Javadoc) and when we've been repeatedly encouraged to use design patterns, so that we can share in commonly-accepted good answers to common problems, is competant but unmaintainable code really a widespread problem, and is it specific to the language? John's blog is getting some thoughtul comments, and if you have some thoughts on the matter, please join in.


Also in today's Weblogs,
Aloïs Cochard advocates JXTA in

Stopping use of socket: Advantage of using JXTA Technology:
"For a long time, the internet protocol was the only solution to transport information through internet networks. But this protocol has limitations and developers need a new protocol to communicate, JXTA is the answer."

A question from Zarar Siddiqi: "There is no API in Java that tells you the current line of code being executed. So how does Log4J do it?" The answer is in his blog entry,
Sneaky, sneaky Log4J.


The Book Club discussion of Beyond Java continues in today's Forums. The thread
Chapter 4: Glass Breaking kicks off:
"Chapter 4 begins laying out the case against Java: "I've developed a good instinct for trouble on the river, and at work. In this profession, I generally know when a technology smells wrong, or dangerous, and I guide my customers away. I'm sensing that danger around Java right now. It's getting too difficult to manage, and both evolutionary and revolutionary steps to remedy the problem are failing us. In this chapter, I'll introduce some of the basic problems."

In the Mustang Snapshots: Project Feedback discussion, ylzhao has some questions about
Hardware Acceleration in Mustang:
"Recently, I have read some materials about the OpenGL-based Java2D pipeline hardware acceleration improvement in Mustang, and this feature is available in Tiger also, though it is disabled by default. On Windows platform, DirectX is the core rendering engine and supports hardware acceleration, and this factor is more important in the next Windows verion - Vista. So I have a question: What API does the windows version of JDK use to rendering graphics and images? Does it support hardware acceleration by default or only use soft rendering?"


In Projects and
Communities
,
the results of the JCP 2005 Elections are in. Four new Executive Committee (EC) members have been selected. For the Standard/Enterprise EC, the top two vote-getters are Intel Corporation and Hani Suleiman, and for the Micro Edition EC, the winners are Sony Ericsson Mobile Communications AB and Symbian Ltd.

Apple has released J2SE 5.0 Release 3 for Mac OS X 10.4.2 or later. The new version is a 42 MB installer that can be downloaded from Apple's web site. The release notes list the many bugs fixed with this release. Note that as was the case with previous J2SE 5.0 releases for Mac OS X, Java 1.4.2 remains the default version of Java.


In Also in
Java Today
,
the Sun Developer Network Channel launches today (November 16) at noon PST (20:00 UTC). The pre-launch announcement asks: "wondering how to use your college degree to break into the lucrative software development market, or do you just want some free posters, T-shirts and other stuff for your dorm room? Come hear from Chris Melissinos, Chief Gaming Officer, Sun Microsystems; Walter Hardy, President of W. Hardy Interactive; and Tor Norbye, Senior Staff Engineer on the Sun Java Studio Creator Team on how they got started in software development and the tools they used."

So, you want to write a super-slick MP3 player in Java, but you can't support crazy "skins" with arbitrarily shaped windows, because all Java windows are rectangles... or can you? In an excerpt from Swing Hacks entitled Hacking Swing: Translucent Windows, you'll see how to use the AWT Robot's screenshot facility and some custom imaging to offer translucent and/or arbitrarily shaped windows, even on platforms that don't actually support them.


In today's java.net
News Headlines
:

Registered users can submit news items for the href="http://today.java.net/today/news/">java.net News Page using our
news submission
form
. All submissions go through an editorial review before being
posted to the site. You can also subscribe to the href="http://today.java.net/pub/q/news_rss?x-ver=1.0">java.net News RSS
feed.


Current and upcoming Java
Events
:

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
site.


Archives and Subscriptions: This blog is delivered weekdays as
the Java
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.

Will maintainability hinder Java's dominance?