Java RSS Aggregators

There's yet another RSS Aggregator out there: JNN (Juicy News Network) by none other than James Gosling. It's very basic right now but such is to be expected for, as he calls it, a "weekend hack".

In releasing this aggregator as open source, he brought the wrath of John Munsch upon him though. John has been working on another Java based open source aggregator (hotsheet) and is upset that, instead of joining his project, Gosling started a new one. Gosling of course had never even heard of John's aggregator and quite frankly, neither had I.

Looking at both aggregators, I noticed the following:

  • Java WebStart works pretty well- Being a server-side Java developer, I'd never seen this in action before, and it sure beats the hell out of downloading jars, setting up classpaths, etc.
  • Gosling implemented subscribing to a feed by accepting drag-n-drops of links from a browser (similar to what SharpReader does). I was unaware this was even possible using Java.
  • Neither project looks quite ready for prime-time yet.

I'm sure John would've loved to have his project validated by having someone of Gosling's caliber work on it, but I hardly think Gosling (or anyone else for that matter) can be blamed for starting from scratch instead of first perusing sourceforge or freshmeat for existing Java open source aggregators. Sure, there are already a lot of aggregators out there, but competition is a good thing. It keeps you on your toes and forces you to keep updating and improving upon your code if you don't want to be part of the masses of aggregators with only a handful of users. Also, with both HotSheet and JNN being open-source, they can freely take code from each other if they want to. If John wants to add JNN's drag-n-drop functionality to HotSheet, he can just go into Gosling's code and copy the implementation. Besides, this isn't like Eclipse vs Netbeans or anything. It's two basic Java Swing aggregators, both in fairly early stages of development. Big deal.

Personally, being a Java developer (albeit server-side) I'd love to see a good client-side Java aggregator emerge, if only to show that it can be done. Contrary to popular belief, it is possible to create good GUI applications in Java. Just look at apps like IDEA or TogetherJ, or check out jgoodies.

I think the main problem in creating a good Java aggregator is the fact that it will need to render HTML, and Java's native HTML rendering is not even close to being good enough for this task. For a real client-side aggregator, you'll have to embed a real browser like IE or Mozilla, and this is not an easy task in Java Swing. I did see some potential options in this thread, but am unaware of how stable any of these solutions are.

Either way, if I were to create a Java aggregator (don't get your hopes up Java zealots, I have no plans to do so) I would probably start from scratch too as opposed to basing it off either JNN or HotSheet. Call me a control-freak, but I like setting up my API's the way I see fit, as opposed to learning someone else's. Besides, parsing RSS or Atom isn't that hard. As Brent Simmons noted, most of the work in implementing an aggregator goes into the UI code. And if you want your aggregator to stand out, you surely have to do that part yourself.

TrackBack URL for this entry:

I'm personally all in favour of any use of client-side Java that encourages people to go beyond Wobbly Text and Hey, Look, I Can Make All These Letters Follow The Cursor Around.
On the matter of open source aggregators, I don't see any reason for anyone to get shirty about someone else doing their own thing - surely it's a matter of free choice?
And the more different implementations there are of anything, the more people find themselves saying "I like this feaure from A, but it doesn't have such-and-such that B does...", which leads to cross-fertilisation and an evolutionary process that ultimately leads to better software all round.
If there is only one project, there is only one vision, a "project monopoly" if you will, and that inevitably leads to many good ideas being missed or excluded.

Posted by Kevin Daly at March 28, 2004 12:58 AM

Another example of a good Java GUI is Azureus, It's hard to tell the difference between it and a .NET GUI. A poor example is Oracle's Enterprise Manager. I swear it would be possible to design a better GUI in Paint.

Posted by travis at March 28, 2004 2:28 PM

I was rather suprised at John's reaction to JNN myself - not like this sort of thing doesn't happen all the time in the larger world. Everybody's got an idea how to do it better or just plain wants to suss out how to do it themselves.

Posted by grimmtooth at March 28, 2004 9:39 PM

Unfortunately cut and pasting each others code is not neccessarily okay - opensource or not! Always check the license first kids :-)

Posted by Neil Ellis at March 31, 2004 10:34 AM

Neil: you're absolutely right in that you cannot just copy and paste code from any random open source project. In this particular case though, both JNN and HotSheet are BSD licensed so I don't see any problems there.

Posted by Luke Hutteman at March 31, 2004 12:06 PM

Check out RSS OWL for another example of an SWT-based Java application. RSS OWL uses the SWT Browser widget, which, on Windows, maps to the IE web browser control.

Personally, I think the future of client-side Java lies with SWT, not with Swing. Even if they get the sluggish performance sorted out, Swing's memory usage and startup time are still unacceptable. My own project uses Swing and the JGoodies L&Fs, but if I had to it again I'd use SWT.

Posted by Laurens at April 9, 2004 4:02 AM
This discussion has been closed. If you wish to contact me about this post, you can do so by email.