Skip to main content

You Might Think

Posted by editor on January 29, 2007 at 7:22 AM PST

Debunking widely-held programming beliefs

Light a candle or curse the darkness? The internet seems highly optimized for the latter, with the further spread of ignorance always just a single Digg away. Java programmers have long been on the bad end of some of the most popular misbeliefs: "Java is slow" and "Swing is ugly" have an entrenched truthiness that's well suited to mindless repetition in forums and blogs.

Of course, does the truth matter? Because if it does, then a lot of us believe some fundamentally wrong things.

Take recursion. It's widely assumed to be inefficient to keep piling states onto the stack to permit subsequent calls back into a method / function / procedure, whatever. There's something of an attitude that recursion is fine for academics, but real-world development requires less formal, less attractive approaches. In other words, recursion is assumed to be slow: fine for Professor Genius and his LISP project, impractical for you and me. We need to unravel our recursion into iterative method calls.

But what if it's not true? What if recursion is faster? The article Quantifying Recursion on the Java Platform, featured in the Java Today section, offers five algorithms (two recursive and three iterative) and assesses their relative performance. The results? "Most surprising is that recursive performance blows iterative performance out of the water. The fast recursive solution is roughly 3 times faster than the fast iterative one."

While we're all in a debunking mood, Artima blogger Arash Barirani reconsiders one of OO's most cherished beliefs in Software Reusability: Myth Or Reality? "Every Java project is designed for reusability. Yet when time comes to do a new project in the same domain we always opt for building from scratch. Is software reusability, especially in the J2EE realm, just a myth?"

Also in Java Today,

John O'Conner's new tutorial on SDN teaches you how to Improve Application Performance With SwingWorker in Java SE 6: "This article describes how to avoid slow, sluggish, or unresponsive UIs by using the SwingWorker class to create and manage worker threads in a demo application called Image Search. This application demonstrates how to correctly use the SwingWorker application programming interface (API) by interacting with the popular Flickr web site to search and download images. "

You might have seen the story in Slashdot, and Cay Horstmann relates Microsoft's outrageous co-opting of BlueJ in today's Weblogs. In

Microsoft Copies, then Patents Java Education Tool:
"BlueJ is a tool for teaching OO programming in Java that is very well regarded in the CS education community. Microsoft added a similar feature to Visual Studio, didn't give credit to the BlueJ inventors, and filed a patent application. Not the way to win the hearts and minds of the education community."

Lorenzo Puccetti wonders
Why is javaspaces technology not as successful as it should be?
"Having Worked with javaspaces for almost a year I wonder why this technology is not as successful as it should be."

Finally, in Wiki Madness,
David Van Couvering asks
"Why is it that every Wiki engine has its own, slightly different syntax? Argh!"

In today's Forums,
terrencebarr discusses the appropriateness of phoneME as a starting point in
Re: KVM porting to Nucleus Plus OS
"Interesting platform! You might be right that there is no Java ME implemention for radios ... I've never heard of one. [...] phoneME should be a perfect match for your purpose. phoneME is really two stacks, phoneME Feature and phoneME Advanced. phoneME Feature is a full CDLC/MIDP/MSA compliant Java ME stack whereas phoneME Advanced is a CDC/FP/PBP/PP compliant stack. Both are tested against commercial quality levels, support multiple platforms and are designed for portability, and are continuously evolved and improved in the community. I recommend you take a look at the detailed information we have on the project site."

terry19781013 has
a question about JSR 91: OSS Trouble Ticket API:
"Which project is using the protocol (JSR 91: OSS Trouble Ticket API)? I want to build a trouble ticket system using java that implements the JSR 91 interfaces. I don't know if there is a open source project working for the protocol. Can you get me some suggestion?"

stegam wants to know
How do I turn on file logging in Java Web Start on Java 6?
"It's been a while since I've used Java Web Start, but I remember that in versions before Java 6 it was possible to log Java Web Start output to a file. I can't find that option anywhere in either the Java control panel or the Java Web Start control panel. Does anybody know how I can enable file logging in Java Web Start when using Java 6?"

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.

Debunking widely-held programming beliefs