Return to Jive Software

Currently Being Moderated
15

Backwards Compatibility or Forge Ahead?

Posted by Matt Tucker on Jun 28, 2006 8:34:38 AM

Recently, a debate has erupted on the Lucene (Open Source search library) mailing list about whether to make the next version of the library require Java 1.5 instead of Java 1.4. Predictably, opinions fall into two camps. I've done my best to summarize the arguments on both sides:

  • Move forward: "Java 1.5 has been out for about two years and making the next version of Lucene require that release is a reasonable way to move forward. Backwards compatability can't be preserved forever, and there are some nifty features to use in the newer versions of Java."

  • Backwards compatability: "There are still a ton of users on Java 1.4. Switching to 1.5 provides only incremental engineering advantages and could leave existing users in a lurch. It would be better to wait at least another year until even more users are on Java 1.5."

I've watched the passionate emails on both sides with some interest, as we went through similar discussions in the not-too-distant past. Our Jive Forums product has been locked to Java 1.4 for a long time because we have a lot of large, important customers that just can't upgrade their infrastructures very quickly. So, not much of a debate on which version of Java to use for that product, unfortunately. However, when we were going through the process of making Wildfire Open Source nearly two years ago, there was a choice -- use Java 1.5 and get all the cool stuff, or appeal to more existing users and work on more platforms by supporting 1.4? Back then, it was a pretty tough choice since Java 1.5 had just been released.

 

Progress at the expense of backwards compatability is obviously one of the core issues in software development, and I can't hope to fully address the problem in this blog entry. However, I can say that we were very happy that we picked 1.5 for Wildfire. Generics and features like the new concurrency package certainly helped our development process. But, there was something else about moving to the new platform that I wasn't expecting. If I had to distill it down to one word, using Java 1.5 simply felt "fresh". It got our engineers fired up and the community of users that developed around the project seemed only too happy to be using the latest and greatest. We also embraced a lot of other cutting edge technologies at the same time like XMPP. I truly believe that if we had gone down the "safer" path with 1.4, Wildfire just wouldn't have developed the same level of energy that it has today.

 

Maybe this is the path that all software products take as they "cross the chasm" -- start with what's new and risky (which appeals to all of us that love technology) and then gradually slow down into being more mainstream and then eventually obsolescence.  I guess we'll see what happens with Wildfire when Java 1.6 comes out later this year and we're faced with the same choice all over again. Will things be entirely different now that the Wildfire project is so much more mature?

 

Finally, what will the Lucene maintainers decide? We'll find out in the near future, but I cast my vote for the move to Java 1.5.

 

1,002 Views Tags: planet-jabber, business, eim


Add a comment Leave a comment on this blog post.
Aug 14, 2007 5:52 PM Guest Elliott Clark  says:

This is a great philsophy.  And makes for a company that is worth every penny.

 

Aug 14, 2007 5:52 PM Guest wroot  says:

I think most of Jive Community members really appreciate your involvement in OSS (me too). So thanks a lot.

 

The only thing that could confuse. It's when members' suggestions are implemented in commercial product instead of open source one.

 

Aug 14, 2007 5:52 PM Guest Simon Johnson  says:

Having just used your Linux version I can say that the GPL version is world class.

 

I installed it and it worked with minimal set-up.

 

You should put a DONATE button on your site so that people like me can show our appreciation for the product!

 

Simon.

 

Aug 14, 2007 5:52 PM Guest djhersh  says:

Thanks for the nice comments. Much appreciated.

 

Regarding community member suggestions: It's a great point and one that will probably never be completely clear. In some cases, we may have already discussed it internally (i.e. it's not a new idea), and we will try to handle that accordingly. In some cases it will be a great idea that is only relevant for enterprise-type usage -- in this situation, we would work to make sure the person who had the idea felt okay with the decision as well as thank them somehow for the contribution. Hopefully it won't come up too often, but we will definitely try to handle it responsibly.

 

Aug 14, 2007 5:52 PM Guest Slushpupie  says:

I see this a lot too.  I work in an envrionment that cannot keep current on everything, we just have too much to worry about.  From my perspective, the difference betweeen Java 1.4 and 1.5 was more about stability than features. I push back on upgrading nearly everything untill its completely needed (but before an emergency, hopfully). 

 

We now sit on the verge of Java 1.6, and its the same debate, but my perspective has changed a little.  Since I am mandated to use newer encryption (AES-256, a good thing), only Java 1.6 can work with it, as older versions dont even have support for it. 

 

I think this reflects the ideas behind many envrionments.  We sit back, and wait for the features to hit some sort of critical mass before upgrading. How big that cirtical mass must be can only be guessed at.  Sounds like Lucene is getting to that point.

 

Aug 14, 2007 5:52 PM Guest hopeshared  says:

Hi,Matt.

I am developing user profile as a plugin for wildfire. The good news is that I've finished the IQ set & get of the user profile.

The next step is to realize pub/sub of it.

I find that the module of pub/sub is written by you, so I think you are the right person who can help me.

 

The test of "create" node has been done successfully, but errors occured when publish something to server. The error code is 404.

 

In my opinion, pub/sub cannot recognize the namespace of "http://jabber.org/protocol/profile" and I donot know how to solve it.

 

Please see this thread: http://www.jivesoftware.org/community/thread.jspa?threadID=20503&tstart=25

 

Thank you!

 

Aug 14, 2007 5:52 PM Guest Jay  says:

Hey Matt,

 

I work for one of those big companies still locked in at 1.4 and was really pleased that Wildfire used 1.5 - it was my only chance to do real work with 1.5.  So, you made the right choice!

 

Thanks,

Jay

 

Aug 14, 2007 5:52 PM Guest Otis Gospodnetic  says:

He Matt,

 

Pro 1.5, ha?  Voice your opinion on java-dev@lucene.

 

Aug 14, 2007 5:52 PM Guest tim  says:

I totally agree about the feel of 1.5. The new features are not simply a set of mutually exclusive additions, but rather mix in well together and combine to be worth more than the sum of their parts.

 

Aug 14, 2007 5:52 PM Guest Tom Toy  says:

Your goal to create the de-facto standard for open, real-time communications sounds somewhat familiar to another local company called Immunix, Inc. (purchased by Novell in May 2005).

 

From my understanding they took a slightly different route that was very well accepted by the OS community.  To promote acceptance they submitted a new Immunix core host-based Linux security API.

 

Their API leveled the playing field for all security vendors wanting to supply security solutions to the Linux OS.   Immunix was ahead of much bigger competitors. 

 

Their OS product, AppArmor, was a big success and led to the Novell acquisition.  AppArmor Linux application security has no licensing feels. Novell makes money on services surrounding AppArmor. 

 

Of course Immunix made money being acquired by Novell but details of the actual transaction were not made public.

 

Aug 14, 2007 5:52 PM Guest Jon Chase  says:

Sorry for the cross post, Matt, but about this comment you left: http://erik.jteam.nl/?p=7#comment-1519 

 

I'd love to see that code!  Mind sending it to jchase3 > gmail dot com?

 

Aug 14, 2007 5:52 PM Guest Patrick Lightbody  says:

Tools like Retroweaver and Retrotranslator can make this issue a lot less contentious. Is anyone thinking about doing that?

 

Aug 14, 2007 5:52 PM Guest matt  says:

Jon,

 

Ack! It appears there's another Matt Tucker in the Java world. That's definitely not me that posted that comment.

 

Regards,

Matt

 

Aug 14, 2007 5:52 PM Guest Nathan Palmer  says:

I'm a big fan of the Open Source movement because the resulting software is free and at a very distant second is that I'm a developer and I can modify the source.  But what I'm really interested to hear is if a commerical company can be built around and sustained with an open source product.  It seems interesting to me and almost "unproven" as many open source companies have gone under.  The baffling concept is that how can you make money when your product is free.  Of course eventhough I would rather set things up on my phone and figure it out.. many companies would pay to have it done and I'm sure you get some business that way. 

 

I assume that it is working out ok financially for your company?

 

One thing I do admire about Jive Software is the friendlyness of the employees.  When I submitted a couple of patches to Wildfire Matt and Gaston were extremely helpful.

 

Aug 14, 2007 5:52 PM Guest djhersh  says:

Thanks. Wildfire hasn't been successful financially on its own, but with the release of Enterprise, we hope to get there quickly. I think OSS projects that focus on larger parts of the stack may be able to succeed without commercial offerings (through services, etc.), but it's extremely difficult to pull of at the application level....unless you keep it to a few people working at night :).