Today on OnJava, there are two articles. The first, by OnJava’s Editor, Chris Adamson, is a good article - “What is Java?”. Basic, to the point, meeting a need that continues to exist as people continue to adopt Java. Contrary to what you might have been led to believe by recent high-profile blog posts. People continue to adopt Java for new systems, and there is a need to continually refresh introductory material.
The second article is innapropriate and misleading. It is titled “Storing an XML Document in Apache Xindice” by Deepak Vohra. Every once in a whlie, an article slips thorugh the “Radar”, and you’ll see an article that just doesn’t cut it. To publish a article about Xindice at this point is criminal negligence, it is like publishing an article about Apache JServ in 2006 and calling it new. Once upon a time, “Xindice” was considered “new” and “promising”, now the only appropriate term is “dead”. Want more convincing? Read more in this entry.
Criticizing O’Reilly Articles on O’Reilly Blog, eh?
Let’s take a step back. I don’t relish having to write this blog entry. Nor do I take any joy from the fact that I’m publically criticizing the content of OnJava or a fellow author. Most of the time, I find the content on OnJava interesting, but every once in a while something makes me cringe. I wonder what the motivation is behind some of the articles, and for this one, I can only say that while the author has good intentions, the affect of this article is going to be to attract some users to a project that lacks any developer community. When you encourage people to use a project that has no active community and a host of known bugs without informing them of the risks, you are essentially leading people over a cliff. The title of the article should really be “Xindice, follow me over a cliff”.
I also don’t have a personal vendetta againt Xindice. If you know about Xindice, if you’ve bothered to follow along, you know what happened to Xindice. the project lost some Brilliant Minds way way back. I think they all got together to form a company behind xmldb. But, the real focus is on a product called eXist. I just don’t want people to get caught spending a week integrating a technology that they will probably have to abandon thanks to an article from a trusted website like OnJava.
Xindice’s Dead: Prove it
Exhibit A: Low Volume User List
Here’s a typical email from the last two years of xindice. This is one of many, you can find the email here: http://marc.theaimsgroup.com/?l=xindice-users&m=113147595229681&w=2. I’ve highlighted the conversation which starts in the middle.
User mail list traffic has been waning ever since 07/2004. That was the last month that Xindice’s user mailing list volume exceeded 63. Since 7/2004 the list has averaged something like 25-30 messages on the user list per month, and in the last 6 months, the average is closer to around 20-22 messages per month. And, it isn’t because the product “just works”. Apache Ant just works, and it has solid user mailling list traffic. So, few are using this database. See for yourself.
Exhibit B: Lower Volume Developer List
Take a look at the volume on the developer list, and looks like those lists have the same value. 14 messages last month, 6 messages the previous month, 20, 25, 33. if you look back to the date at which traffic started dying off. The list seemed to be choppy from 03/2003 to 04/2004, when it looks to have suffered a mortal blow. 01/2004 through 04/2004 saw dev volume in the hundreds, since then we’ve seen a constant volume between 4 and 38. But, it gets a little worse. Take 11/2005 volume as an example - 25 messages - 24 of which were GUMP related.
Correcting for automatic GUMP volume, the developer list volume in terms of real human discussion is more like one to four messages a month for the past few months. So the conclusion from this is that (maybe) one or two people a month care enough to post to a essentially silent development list. (Again, I’m not relishing this, just pointing to the facts.) This project is dormant, it has no community. Why write an article about it?
I think at last count there was one person making surface-level commits to Xindice, and even those were mostly bug fixes and little things like updating the LICENSE to say 2005. There was a VOTE thread about a new commiter started by one of the old committers (Kimbro Staken), but there weren’t enough people to hold a vote thread.
Exhibit C: No News is not good news
Last news predates the drop in interest and traffic: http://xml.apache.org/xindice/news.html
At least do some homework before you write an article…
Let me make more enemies in this blog post. What if I was writing about an article that focused on OJB. Consider OJB in the context of other communities, like Hibernate. The adoption difference between the two doesn’t follow the power law the distribution is much more dramatic - of 100 projects considering the two projects - 99 will adopt hibernate and 1 might adopt OJB (not scientific). The project that adopts OJB is, most-likely, not investigating the community before it does so. An objective assessment of the OJB project, the eco-system of documentation both internal to the project and external to the project, and the mailing list shouldn’t inspire too much confidence relative to other projects. While the discussions on the email list are regular, they don’t inspire too much confidence that enough people are paying enough attention. The questions for someone thinking about adopting a library or a components should be: “Is the community user-focused? Do they answer questions from user?” and “is there a healthy discussion and debate on the developers list?” From my own experience while OJB continues to work, it doesn’t get a quarter of the attention that Hibernate gets. In my opinion, OJB lost that battle years ago; I think it had everything to do with community and the fact that when OJB split from Jakarta to a db.apache.org, it fell off the radar and lost more than a few eyeballs.
rhetorical question, what does OJB have to do with Xindice? Much. I wouldn’t consider OJB dead, but I would say that it has a smallish user and development community. There’s nothing to say that it couldn’t close ranks and catch up, but at this point, I wouldn’t suggest it as a primary option to a client. I’d say go Hibernate or go iBatis. If I wrote an article on OJB (which I’m not going to), I’d probably go the effort of joining the user and dev list for a few weeks or at least perusing the Nabble feed to get a sense of project activity. Having done that, I’d probably put in a little note toward the beginning of the piece warning people that the project’s community. “Note: This article is about OJB, but before you adopt OJB, you should know that in terms of Object Relational Mapping (ORM) tools, it is probably in third, fourth, or even fifth place behind tools like Hibernate or iBatis.”
New Rule: Don’t integrate a project until you’ve taken a look at the community that is creating it. If you write an article about an open source project, only do so if you have a sense of the community. Ideally, you’d know names of three committers and a sense of the user community.
O’Reilly and Java
Seems like I’m constantly reading about how stagnant the “Java space” is over and over again. Books like Beyond Java talk about Java facing a crisis. A few months ago one of Chris’ OnJava Newsletters was focused on blog entries talking about how Java faces “a crisis”. I don’t deny the changing landscape, but I also don’t think that OnJava helps the situation by emphasizing content like “Xindice” or even “Integrating Ant with Eclipse” (which BTW is not a bad article in the least). It just isn’t very exciting.
Problem is that there is exciting stuff going on in Java land. It just isn’t as easy to find as it used to be. Jakarta used to be a central focus of innovation, and the Java community today is fragmented. Java.net is valuable, but it is less of a community and more of a sourceforge.net for Java. Because of this, we’re forced to go discover the interesting bits and pieces ourselves. If anything Java is more interesting than it was a few years back, but the Realm is far-flung and disconnected. So, I propose that OnJava get with it, go find the interesting stuff. Someone write an article about Rife, and what the heck is a continuation? Someone write an article about Commons SCXML? ( :-) ). I guess I’m just sick of the wallowing in self-pity approach the Java community takes because it takes longer than 15 minutes to create a web site.
Rant. Next…. “Maven is like an Information Superhighway”