Some final words about distribution divergence...and a request for Java Gotchas..
A few weeks ago, I wrote about distribution divergence and that spawned what I thought was a pretty terrific comment stream, so thanks. I wanted to talk just a smidgen more about this, something I consider very important.
I think that divergence is a tempest in a teapot.. if you look over just the last 5 years of Linux and open source development, the greatest periods of chaos were not brought about by a distribution divergence problem. In fact, I wouldn't even put distribution divergence in the top 5. The times when Linux had its most severe bumps wasn't even when kernel stable versions changed, although I think accommodating new kernels is an interesting , if not all that dangerous, time.
The one that really sticks with my is when there are wholesale, non-backward compatible, changes to glibc or any really large , extremely popular library set. You saw it whenever glibc advances, or when you have a popular library like expat that is used in such a way as to conflict with other instances of expat.
That said, I really see this as just another facet of that long running deployment problem that you can solve only by developing only the most trivial of programs. Windows users call this dll-hell, but we aren't immune. Linux upgrading and repository systems are okay at dealing with this, so it isn't as bad as the windows common dialog or visual basic runtime problems of years past.
What I'm trying to say here is that while distribution divergence is an issue worth thinking about when deploying, I don't see it as big an obstacle as others might. And at the risk of sounding like a complete rube, wasn't WORA supposed to fix this issue for Java developers anyhow?
BOF at OSCON!
For those of you attending the O'Reilly Open Source Convention, I'll be throwing a Java on Linux/Java Newbies birds of a feather session. on Wednesday, July 28th at 9pm. It'll be late, so I might relocate it to a bar if enough people want it to happen that way.
I'll also be taking part in a developer community BOF on Thursday night.(We think, it has not become finalized yet). Either way, I look forward to meeting anyone I happen to at OSCON next week.
Now I'd like to leave this article with a question that might strike some as a troll, but a friend of mine inherited some C++ code that he is considering porting to Java, quote: "I've only personally worked with java once many years ago implementing a simple network game and I found it incredibly easy to implement fairly non-trivial systems (eg. async network io + synchronization + threads) and that was 6 years ago."
What's the hardest thing about developing Java applications? He wanted some thoughts on what to worry about when porting an application from C++ "which is
heavily templated, poorly commented, but thoroughly unit tested" and I thought, where better to ask then here. What gotchas would you pass on about java development?