Skip to main content

History Never Repeats

Posted by editor on April 25, 2008 at 8:20 AM PDT

Wave goodbye to languages without garbage collection

It's not news to us -- we noted Java displacing C++ as the top language on Sourceforge a couple years ago, to say nothing of thousands of projects here on But Slashdot took the hint yesterday, asking Are C and C++ Losing Ground? They link to a Dr. Dobb's interview with TIOBE's Paul Jansen about the Programming Community Index, which "measures the popularity of programming languages by monitoring their web presence." This also shows Java on top, trailed by C, Basic / Visual Basic (which is trending upwards), PHP, and the falling C++.

Paul says the story behind the overall trends is that one of Java's defining traits, automated memory management, is increasingly being considered a neccessity:

C and C++ are definitely losing ground. There is a simple explanation for this. Languages without automated garbage collection are getting out of fashion. The chance of running into all kinds of memory problems is gradually outweighing the performance penalty you have to pay for garbage collection.

It wasn't all that long ago that Java's use of garbage collection was considered a ridiculous liability, a sop to bad programmers that would destroy performance and render Java totally non-competitive. It hasn't quite turned out like the critics say, and even if some naysayers still won't embrace Java, you don't exactly see Ruby or Python making developers malloc and free their memory.

And come to think of it, could you go without garbage collection at this point? I was poking around in C the other day, and found myself unwilling to even attempt to figure out where to match my mallocs and frees, figuring I'd get the damn thing working first and then figure out how to deal with the memory leaks I was creating. Not a real sound approach, admittedly.

So, on the topic of garbage collection, the latest Poll asks "Could you work with a non-garbage-collected language?" Cast your vote on the front page, then check the results page for current tallies and discussion.

In Java Today,

Joe Darcy continues a recent run of blogs discussing the specifics of what it means for changes to be "compatible" with a case study: Compatibly Evolving BigDecimal. "Back in JDK 5, JSR 13 added true floating-point arithmetic to BigDecimal, which involved many new methods and constructors along with new supporting classes in the java.math package. I was actively involved in the JSR 13 expert group and integrated the code into the JDK. These changes had some surprising compatibility impacts which can be classified according to their source, binary, and behavioral effects."

The article New Features in EJB 3.1, Part 3 is the latest installment of an ongoing series on TheServerSide by Reza Rahman, who writes, " In this third article, I'll cover two more features that have been discussed in detail--asynchronous Session Bean invocation and EJB Lite. Remember, none of this has been finalized yet. All of this is really just a peek into the inner workings of the JCP so that you have a chance to provide feedback."

JavaWorld takes an in-depth look at the Wizard project in Open source Java projects: The Wizard API. "If you're faced with creating a Swing-based wizard from scratch, you'll want to know about Tim Boudreau's Wizard project. This installment of Jeff Friesen's Open source Java projects series gets you started with the Wizard API and concludes with a hands-on installation wizard that is sure to please users and impress the boss."

We've updated this week's Spotlight on
Collabnet's tutorial and Q&A for new project owners. The tutorial, held on Thursday, is now available as an WebEx recording. To learn more about setting up and managing projects (including branding of left nav, project membership, roles and permissions, setting up mailing lists, etc.), check out the stream or download the entire session.

ME for Windows Mobile? Still there, as Terrence Barr reports in today's Weblogs. In
Alive and kickin': Java on Windows Mobile, he writes,
"recently on the Java Champions alias some people were surprised to learn that Java has been available on WIndows Mobile for some time now. Obviously we aren't publicizing that fact enough, so here we go..."

GlassFish Vee(gri)zzly(v3): Unofficial benchmarks results, Jean-Francois Arcand writes,
"we are still working hard on GlassFish v3 and soon we will release a new technology preview. We have a lot to do but still, I did some basic benchmarks to see where we are right now."

David Herron's
OpenJDK 6, tastes great, less filling! discusses progress made in clearing the last encumbrances from OpenJDK.
"I just think that with the opportunity now for any open source operating system to pick up the OpenJDK, that Java has a bright future in the open source world."

In today's Forums,
oskarcarlstedt wonders
How to move glassfish.
"Is there a simple way to move glassfish from one directory to another. A question to glassfish developers. Is it possible to fix the install-script to not "hard code" all path as absolute paths. There is a config file, why not use that? Right now I just edited all scripts in the bin folder and the files in the config folder. But is this all I have to do? Are there any more places that I have to update?"

Vladimir Sizikov clarifies questions about JTHarness dependencies, in
Re: Questions related to JTHarness & cqME framework for OSGi & eRCP/eSWT apps..
"There is no hard dependencies on NetBeans or any other IDE in either JTHarness or ME Framework. Both projects are buildable via stand-alone ant, completely independent from the IDE. And they don't use any IDE specific code at runtime too. JTHarness is a generic test harness/infrastructure (originally created when there were no Java IDEs at all, to test the Java SE itself), and ME Framework is an extension of JTHarness to Java ME world."

kirillcool wonders about
Nimbus and JXPanel.setAlpha.
"So, the main question would be - is Nimbus planned to play well with SwingX in general and with JXPanel in particular? If the answer is yes and yes, i would be interested to hear Richard's thoughts on the subject of performance and code complexity due to the current implementation of JXPanel.paint."

Finally, sendtopms wants to know
How to make Comet Extensible.
"I did not find any extension point in com.sun.grizzly.cometd.servlet.CometdServlet! Is there any other way which I missed? I read through most comet related blogs but not able to find an answer for the above question. Basically I am looking for integration point using which I can hook messages from other entity componets which detect the data to be pushed to the client."

Current and upcoming Java

Registered users can submit event listings for the href=""> Events Page using our href="">events submission form.
All submissions go through an editorial review before being posted to the

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 it will be
archived along with other past issues in the href=""> Archive.

Wave goodbye to languages without garbage collection