Posted by editor
on October 2, 2006 at 7:35 AM PDT
The upside of bad news... also:
Weblogs: Calling out Java doom-sayers, debugging PermGen OutOfMemoryError, and Kirill incorporates Romain's suggestions
Spotlight: Timing Framework
Java Today: Joys and perils of mass-market Java games, JavaTools Newsletter #96, and GELC buzz
Forum messages: Timing transition effects and thread-safety in JAXB
The upside of bad news
Cooper was seriously psyched when he finally got his SavaJe phone , which you might remember was that red phone hawked in some of the JavaOne 2006 keynotes because it had a much more substantial Java runtime on the phone than you find on most mobiles. Most phones, after all, don't have Swing. Or 3D, crypto, reflection, etc.
Unfortunately, I was scanning that site that has the blurbs about troubled companies -- you know the one with the obscene name, which I'm not going to link to it from the day job -- and they reported last week that "Rumor has it the VC funding fell through for SavaJe, and that all employees are now on forced vacation."
So, cue someone to write another "Java is doomed" blog. Or, if they have a little more depth, they'll write something like "first Java lost the desktop, and now they're losing mobile."
And then after that, we'll have the "why would java.net ever have negative stories about Java" complaint too. Well, that one I can handle. There are a couple reasons I'll occasionally pick a story about Java not doing well. The first, frankly, is that we should all have a realistic understanding of how Java is doing in our field: it wins a lot of battles, but it loses some. Reality is what it is, and wishing otherwise won't make it so. A is A.
For example, sometimes you'll see developers decide not to use Java for their next project and blog about it. One of the Java Today stories on the page is from a developer who worked on Swing-based games for two years and, looking back, thinks he might choose Flash next time. Responding to blogs like this with a whole bunch of evangelism is not nearly as useful as understanding why some developers might choose not to use Java again. Maybe they've discovered genuine problems with the platform that should be addressed, maybe they're in a field that just isn't a strength or priority for Java right now, and maybe they're just plain wrong. But let's take the time to hear them out and decide for ourselves.
The other reason is to spur discussion amongst ourselves as Java developers. Frankly, many of those who would throw dirt on Java's grave reveal themselves to not know what they're talking about -- for example, taking the failure of applets as proof that enterprise Java is doomed -- and it's valuable in these cases to call out the nonsense for what it is. Fernando Lozano steps up in this case with The real motives why industry analysts love to predict Java fall... and why they will spend another 10+ years being proven wrong. Replying to the commentary Java's Momentum Is Running Low , he writes "I wonder why, after so many years of failed predictions, the so-called 'industry experts' still insist that Java is doomed. My conclusion is that they are being mislead by parallels with technologies that are from both a marketing and from a technology point of view radically different from Java."
So what do you think? Do you see criticism of Java and immediately rush to pack your resume with wishful-thinking references to Ruby, Python, or .NET, do you flame the author, or do you take it in, think about it, and consider it on its merits or lack thereof?
Also in today's Weblogs , Rich Unger works a scary bug in debugging PermGen OutOfMemoryError problems in windows .
"Recently, a bug showed up in my stack: 'java.lang.OutOfMemoryError: PermGen space'. I loathe these kinds of bugs. They're notoriously difficult to reproduce, and tough to isolate.Coincidentally, around that time Gregg Sporar posted about this very type of memory leak...
Listening to the users part II - pixel pushing , Kirill Grouchnikov reports, "Romain's feedback following my previous entries was invaluable. See inside for details."
In Java Today ,
after a few years in the industry, Gojko Adzic sums up The Joys and Perils of Mass-Market Java Games : "From summer of 2004 to summer of 2006 I worked on an on-line casino with a Swing-based GUI. The project was a great development adventure -- filled both with incredible joy of creation and terrible agony of support. Here is a list of my positive and negative experiences from using Java/Swing for on-line games"
The ninety-sixth issue of the JavaTools Community Newsletter is online, featuring tool news from around the web, congratulating the Sorcerer and Jets3t projects on their graduation from the incubator, and offering a Tool Tip on redirecting issue tracker e-mails to another mailing list.
GELC Executive Director Barbara Kurshan asks GELC - Are we ready for the buzz? : "GELC has been getting a significant share of attention. It is really exciting to hear the conversations around the mission and vision for GELC. Check out the following events where GELC was discussed."
This week's Spotlight is on
the Timing Framework project, a library to simplify Java animation and timing-based control. Introduced by the articles Timing is Everything and Time Again , it offers fundamental timing classes, interpolation facilities, and a set of trigger classes to facilitate starting and stopping animation based on events.
In today's Forums ,
malm has a JAXB question:
Are client side objects thread safe?
"I am using wsimport to generate client side code from WSDL and am wondering if the client side service and port objects are thread safe and can therefore be cached and used concurrently? I am especially interested in the port object as that seems to be very expensive to create. That is can I do
private static MyPort port = new MyService().getMyPort(); and then use the port static variable concurrently?"
Re: TransitionEffects , Romain Guy says that profiling your application when it starts up and depending on that performance for timing decisions is a bad idea.
"It cannot work in this case because we would like the animations to degrade gracefully whenever the CPU gets busy (for instance another app kicks in and eats up many CPU cycles.) Games don't need to do that realtime, just at startup indeed."
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
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
Current and upcoming Java
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
The upside of bad news