James Gosling’s Mistake Is Symptomatic Of Sun’s Open Source Attitude

It’s a freakishly long title, but my initial title, “James Gosling Is A Clueless ****tard,” made me sound angry and I’m not, I’m disappointed. But it did have the benefit of knowing that it would draw everybody from JavaBlogs to come read it. It was one of those angel on one shoulder, demon on the other moments…
After a long hiatus I’ve been working like hard on HotSheet again. I ripped out all my old RSS parsing code and replaced it with Informa and fixed a major bug. At the present time I’m completely overhauling the model (as in model-view-controller) to make something that is much simpler for the UI to deal with. The refactored version should be easier to modify and get undo/redo because I’ll be using the command pattern for the various actions you take with the model. Expect an update to come to you via Java Web Start in less than one week.
Then late last week I noticed that James Gosling released a new project. It’s yet another RSS aggregator (lord knows we need more) called JNN – The Juicy News Network. Wow! Ignore my cynical take on RSS aggregators, I’m deeply impressed with “The Father of Java” doing something like this and I rushed to go look at it. My excitement quickly turned to, “Oh oh.” For example, I read this quote from him even before I downloaded the app.
“The application itself is pretty straightforward. The most interesting thing is what it does to be fast at startup: all news feed reading is done by a swarm of low priority threads, one for each feed. So all feeds get fetched in parallel. This is very easy to do in Java: the threading API and networking support made it all straightforward.”
Yeah… Multi-threaded pulling of channels might have been original when I did it in HotSheet THREE YEARS AGO, but I don’t think it was, I think I ripped the feature off from somebody else. There were a lot fewer aggregators then but that’s a pretty basic feature. The fact that he doesn’t know that there are already other Java aggregators that do it (and there aren’t more than a handful of those) suggests that he didn’t bother looking at the existing open source before hacking this together. One look at the source code to JNN confirms that it is a glop with no documentation, no JavaDoc, no use of other libraries like Informa to do the RSS parsing or the Jakarta Commons Pooling to help with the multi-threading. Nope, just raw, crank-it-out code. Through much of it he doesn’t look like he could be troubled to put blank lines between sections of the code itself just to group it.
All in all, he rebuilt the same stuff many others have done before him. He could have easily taken HotSheet as a base and added drag and drop of channel links (his only cool feature) and a three pane view to it. Even if he had decided that what I did sucked he should have used the Informa library to handle parsing and tried to focus only on the UI portion of things. Instead he’s done something that he should have known better than to do, start from scratch, waste time re-inventing the wheel, and set a bad example with something that could not be built upon itself without major effort, and which added nothing to the pool of code that really does stand a chance of being shared and reused.
So, although James Gosling favors open sourcing Java, it apparently never occurs to him to build upon any of the open source that is already out there. So if you are hoping to see an open source version of Java soon, I think this might be a signal that the messages of open source, BSD licenses, etc. have not penetrated into Sun’s psyche yet.

27 thoughts on “James Gosling’s Mistake Is Symptomatic Of Sun’s Open Source Attitude

  1. Kevin

    You have some very valid points. However, two points of contention that I can think of. One, perhaps he did look to see what was out there, but wanted to try making it himself without relying on others code. I do that myself. There are several plugin engines out there, I modeled mine similar to the Eclipse IDE plugin engine, only my engine is 40Kish with 22K being the xml pull parser added, and my engine supports load/unload/reload, single file plugins with embedable jar/zip libraries, dependencies, versioning, lifecycle management, etc. In fact, some say its another “partial” form of IoC. Point is, I wanted to learn and do it myself. Now that I have, I feel I have done it better, smaller, faster and easier to use all while providing the same functionality as the Eclipse plugin engine (although its 3.0 version is built on OSGi now, which mine is not). I am working on a UI framework built around my engine. Are there others? Yup, even have a few members of the mailing list with thier own, but we have somewhat different views of how they should work. No biggee, we’ll help each other out, and have our own versions. If anything else, it is a learning experience. Having said that, I am in disfavor of tons of the same thing slightly different. For example, web frameworks. Struts, WebWorks, and many others all do more or less the same thing, some better than others. Problem is, which one to spend your time learning and depending on? Struts because the “industry” says its defacto (hell no, it sucks, bloated, etc)? Spring? Or roll-your-own? Well, when Struts was pre .5, Craig, inventor of Struts was helping me understand it a bit. I had wanted to see a few things added. He said no, so I rolled my own. Now I have a 20K tiny MVC web framework (that is old these days), that works very fast, very easy to use, similar to struts, without the bloat (no taglibs, jstl, etc…you want it, add it on as needed).
    I forgot my other point of contention now, dang it. But suffice it to say, I mostly agree with what you are saying here. I am hoping my plugin engine will help others from trying to roll their own, take mine and rework it a bit (and hopefully contribute it back), or not.

  2. Guy Mac

    “All feeds get fetched in parallel”. Is this even
    a good idea? What if you have 10000 RSS feeds?
    Wouldn’t it be more scalable to use thread pools, and fetch N feeds in parallel? What does hotsheet do?
    Ditto on the code formatting. But I guess as the creator of the language, he can write it anyway he wants. ๐Ÿ˜‰
    What would be cool would be a more in-depth analysis of the XML api used: dom or sax or ?
    Your main point, the lack of building on the work of others, is a good one. For instance, another Sun person released an RSS parsing library a while back (on developer.java.sun.com). Does JNN make use of that?
    I see that it does make use of NetBeans to build the UI from xml–that’s pretty cool.

  3. Ozten

    Where in the Open Source Law Code does it say “Though shall read all the code on freshmeat.net before reinventing the wheel”
    This is a straw man argument. So he didn’t read your code or give you credit for anything. What’s the problem? Gosling had a fun weekend of hacking. Nothing more nothing less.

  4. Edward

    Perhaps James Gosling, like myself, programs in his spare time because he finds it an entertaining and thought-provoking exercise. In many ways the process is more important than the end result.
    To put it another way – writing product code to please customers and build on the latest standard libraries is my day job. I’d like to feel free to do something different in my spare time. It’s a chance to experiment.
    There are many open-source projects that compete. Some are better than others. While most of them continue to be produced by developers ‘scratching an itch’, I don’t think that is going to change.

  5. Dean

    Damn dude, who made you Pope over Java RSS aggregators?
    The guy thought it would be a cool hack, over a weekend. Who cares if he didn’t look around to see what was out there already? There’s no “rule” out there (thank God) that says people need to look at what other people have done, before doing something themselves. Sure, Open Source offers that, but it doesn’t MAKE you do that. It’s pretty conceited to think that he’d look through all the RSS stuff out there and hand pick yours out of that bunch too.
    With the reaction you gave here, I’ll bet he’s glad he didn’t use Hotsheet, or whatever your thing is called.
    The multi-threaded downloading thing in Hotsheet isn’t even original. It’s just a rippoff of Netscape’s multithreaded downloading of pictures (and other things) for webpages.

  6. John Munsch

    >The multi-threaded downloading thing in Hotsheet isn’t even original.
    Um, yes, I know. I said that. It was in the thing you said you read.

  7. gerryg

    I too looked at the code and at least some of it looks generated. I wonder if James used any of the new tools he’s been planning? Regardless, I think everybody should write a feed reader for themselves. It’s an excellent way to learn and definitely the only way to get *exactly* what you want.
    Who cares what libraries he used, what features it has, etc. Right from the start he pointed out it was a quick hack. It’s not realitic to spend hours searching out the best technologies to use and fully document every program I want or need to write.
    And I’m not sure that you realize it, but from everything I can tell James rarely spends time programming, but mostly managing and researching. Kudos to James for trying to learn something new, and kudos to you for the time, effort, and care put into Hotsheet.
    I should learn more about RSS, so I’m going to take James’ lead and go write a feed reader…

  8. Troll Fiddler

    Hello asshat,
    Mr. Gosling was playing around at the weekend just doing something for fun. Did you read the blog or just one line and decide you were so much better you had to slag him immediately? You sound like a prize prick and I hope you enjoy the fact that your name will now be euqated with being a total dickhead throughout the programming community.

  9. John Munsch

    Who is the troll here? All the people who responded and left their name and email address, or you?
    And yes, I read all of the original posting on Mr. Goslings site and examined the code before I wrote anything. Perhaps it isn’t important to you whether Sun chooses to open source Java but to me it is. Here is another example of Sun’s double standard on open source, Sun has made repeated overtures to IBM to “work with them” on Eclipse. As far as I can tell this is because Eclipse seems to be far outstripping NetBeans in popularity and Sun has no control over it. If Sun is really interested in changing Eclipse they could easily do so through submission of changes to the already open source. But if they did, they would find that acceptance of those changes was at the whim of a larger audience beyond their control. They would really much rather have a committee composed of Sun and IBM that they could exert more influence over.
    That smacks of control issues at Sun and a lack of interest in what open source is about, not a desire to get you the best IDE you can get. If you really think I’m just a total prick on the subject, why was I absolutely right about Scott McNealy’s response before it became public?

  10. anon

    Well, after hearing James Gosling’s cool collected response to your angry ramblings, guess whose RSS aggregator I’m going to use ?
    Hint: Even if it’s not Goslings, it sure as Hell won’t be yours. Get a life. Grow up.

  11. Ralph Tennyson


  12. John Munsch

    I’m sorry I didn’t understand your response. Are you saying that I talked about it after McNealy’s announcement? Because that hit Slashdot at 10PM Wednesday, long after the other discussion.

  13. Troll

    What has your long ramble about OS Java got to do with my response to your Gosling rant?? Dear muddle-head please clear up your thinking. And your great prediction about sun’s response to open sourcing Java was about as spectacular as saying M$ won’t open source windows. I mean if that is what passes for intelligence in your world well then I’m glad I don’t live in it. You must either be very young or an out of touch old fart.

  14. John Munsch

    I doubt it’s relevant, but I’m 39.
    Clearly not everyone found my arguments muddle headed but you should attempt to add to the discussion rather than hiding behind an alias. I’m more than willing to take lumps for having opinions that are unpopular. That’s why comments are turned on for my weblog and I don’t delete even the Troll ones ๐Ÿ™‚

  15. Wayne Holder

    Hmm… until I read Gosling’s blog entry, I hadn’t really paid attention to RSS, much less delve into how it works. So, for me, his example code was a nice learning exercise. If I were to want to use RSS in more depth, would I investigate other options in detail before reinventing the wheel. Yes. Of course. Do I think you were justified in your tirade. No. Not in the least. It’s zealots like you that scare me away from wanting to contribute to open source.

  16. Ian

    You are an idiot… and I’m so glad that you showed it in such a public way that your name will forever be associated with “arsehole” in the programming community.
    Gosling had a fun weekend creating a fun bit of code. As others have pointed out, who cares if he builds on existing code or even if his weekend hack is what qualifies as “good code”; perhaps it was as he said in his article… a weekend hack. I’m betting that were he to sit down and spend some time writing a serious RSS aggregator you’d find you’re not quite as hot shit as you think you are.
    Get off your high horse; you may be 39 but you act like you’re 16 (and that’s in no way a compliment).
    You’re a DICK.

  17. John Munsch

    It’s tough to give a lot of weight to anyone who won’t post a name, address, or the location of his/her own work. The criticism of someone like Keith Lea who can point to his own open source work and who felt that I was over the line makes an actual impression. Name calling from the anonymous is Slashdot fare.
    BTW, you overestimate the importance of blogs. Most developers never read them. They probably should, but they don’t. So nobody’s name is going to be forever associated with anything as a result of this argument.

  18. B. Rintoul

    The only thing I thought was a tad weird about Mr. Gosling’s plaything was that it was featured on java.net in a rather prominent spot. I think a mention of it in his own blog may have been sufficient for such an effort…

  19. John Munsch

    My guess is that that was done _to_ him rather than by him. He doesn’t seem like the type who would promote his own app to the front page of Java.net. Nor is it likely that he said his reply to my comment should be front page news on Java.net today either. Somebody has to pick that stuff and when you are James Gosling vs. some other poor shmuck who wrote something that day, who are they going to pick?
    He’s probably a real nice guy who I went overboard in criticising. That is clearly the consensus of opinion even if you discount the people who dropped by to tell me I’m a dick anonymously.

  20. public virtual MemoryStream

    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…

  21. Todd Blanchard

    All of Java is like that – like a soviet copy of western technology. Had he done a little research, we could have dispensed completely with primitives, had classes that were objects, gotten more innovative iteration models than simply copying C’s 3 loop types, and the early GC implementations would have actually worked.
    The man simply walks in total ignorance reinventing stuff that’s been around for years and copying ideas that never worked all that well in the first place.

  22. Sam

    “Perhaps it isn’t important to you whether Sun chooses to open source Java but to me it is. ”
    Why ?
    Everyone is on their high-horse about OS Java
    Anyone can get the code for Java and read through it and make sense of what goes on “under the hood” or you can get the specs.
    What is to be gained by OS Java ?
    The source is open and I can read it.
    “All of Java is like that – like a soviet copy of western technology. Had he done a little research, we could have dispensed completely with primitives, had classes that were objects, gotten more innovative iteration models than simply copying C’s 3 loop types, and the early GC implementations would have actually worked.”
    really ?
    you believe that do you ?
    well … why don’t you write something better then ?

  23. ian neick

    Petulant and retarded.
    You will be remembered by everyone as the little
    moron who cried because they wouldnt play the
    game HIS way.
    Who really gives a shit about your lousy program.

  24. Geoff

    Most of the people who replied to this blog are incapable of reading, plus the sheer bile of the replies is unbelievable. Read, think and then reply should be a simple thing to do. Then the point might be gotten and open source software might just improve. As it is most of it is c..p, mainly for the reasons given by John in this blog.

  25. bioye

    yeah, i like john later agreed, james gosling was just having fun and john went slightly overboard, but dont judge sun by james’ independent play. and if u read james blog reply to the conspiracy theorists on the sun-microsoft settlement, u will realise that sun in no way stands in the way of open source java. anybody can implement an open source version of the java spec as GNU Classpath is doing, but the Sun implementation needs to be protected so that developers can have compatibility of the java vm and libraries.

Comments are closed.