James Gosling Comments And I Reply: Open Source Vs. What?

>Life’s to short to spend it wound up in a knot of needless fury. – James Gosling
How very true. However, as I said in the first line of my comment yesterday, I’m not mad, I’m disappointed. The other title was more of an in joke with JavaBlogs because everybody who reads it knows that a big controversial title is guaranteed to draw everybody and his dog to read what you wrote.
I think from the comments I got on the article I’ve learned something. That is, that I take Open Source (and I usually think of it with the capital O and S πŸ™‚ software way more seriously than a lot of other people do. I read The Cathedral and The Bazaar by Eric Raymond. I read Young’s book on the founding of Red Hat. I stopped using Windows and moved to Fedora Core Linux and then wrote a tutorial to help others get started on their move off of Windows. I’ve got a couple of open source projects far enough along that I can share the code and perhaps it will prove useful to someone. I want to write a whole hell of a lot more.
Often I take a hard look at my own work and slink away realizing that someone else has put in more time, more effort, had a better idea, or just done a better job than I did and their effort is the one which deserves to be promoted rather than mine. Informa is an excellent example of this, I did a RSS parser that is buried in the older version of HotSheet but nobody ever used it to build anything else that I know of and it is quite clear to me now that any further effort in that direction is counterproductive to both myself and others. If I do have anything to contribute to a RSS library then it should be somebody else’s so that we all benefit. As for why I continue to plug along on HotSheet, when there are better readers out there, I’d say that it is because mine is one of the few Java readers and thus it is also one of the few cross-platform options, and also because I’m planning to do some things with it that nobody (and I do mean nobody) is doing right now.
The same is at true of FourColor, a viewer for comic books in .cbz and .cbr formats that I wrote. I’m divided over whether or not it makes sense to continue on it now that Comical is out. But Comical isn’t advancing all that fast, nor is it any more feature rich than FourColor at this point, so at the moment I’m leaning towards releasing the code just to see if anyone else is interested in adding to it and seeing whether it can overtake Comical or whether it is just another useless also-ran. If Comical started to really take off though, the topmost link and text on the page for FourColor would be one to direct people to go work on and use Comical instead. I think that a ruthless attitude, even towards your own work and your own desired projects is the only thing that helps everyone advance. Building another text editor or RSS reader, or anything in a dozen other grossly overcrowded categories is a huge waste of time. There are programs which practically go begging to be written, write one of those.
Here’s an example of a comment I got that strikes me as if it came from another planet than the one I live on:
“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.”
In my book, yeah, there is a rule like that. People who do otherwise, when it is so easy to go to Freshmeat and browse to the Java section and type the letters RSS just to see everything RSS related under Java (I just did it to time it, I had a list of 22 items in under 1 minute 30 seconds) is wasting their time. There’s no law against wasting time and there never will be. However, I felt that not choosing to take the very limited amount of time necessary to do that was indicative of the problems that Sun has with open source at this time. Does it not strike you as strange that Sun didn’t learn from the fact that Blackdown did a huge portion of their work for them in porting Java to Linux?!? They benefitted already from others having the code and working on it, but they don’t see the benefit to opening it up. Here for example:
“Oh, yeah. I’ve always felt that sort of in the abstract, open-source is the right thing to do for a lot of the kinds of things that we do. There are a variety of issues that make it a very complex discussion as to whether it actually works as a business.” – James Gosling on favoring open sourcing Java
Hmmm, whether it actually works as a business. Hmmm. How’s that whole Java Desktop working out for Sun? I hear that it’s making a lot of sales and that Sun is very very pleased with it. Isn’t it based on Linux? It certainly seems that someone at Sun figured out how that works as a business. Maybe it’s only other people’s source that should be open.
“Where in the Open Source Law Code does it say “Though shall read all the code on freshmeat.net before reinventing the wheel”
Since you asked, I’ll tell you. In the second point from Eric Raymond’s Cathedral and the Bazaar article, “Good programmers know what to write. Great ones know what to rewrite (and reuse).” Constructive laziness got us Linux, your attitude got us NOTHING! You don’t read the code on Freshmeat, you just scan through to see if there’s a couple of things you should look at real quick. If that’s too much effort for you, do what you do and keep it to yourself, don’t release something and pat yourself on the back for your “open source.”
“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.”
Again, I don’t agree. It may be more important to you. To the guy across the street who washes and re-washes his car all weekend, that’s damned important stuff. But for everybody else, it does jack squat. So in summation, I’d have to say that I still don’t think Gosling gets open source and neither do a lot of other people. Had this been anyone else other than Gosling I would have let it pass without comment. Lord knows I’ve seen a lot of wheels reinvented over and over again through the years. But in his case I felt that it shows the attitude towards open source at Sun beautifully. There’s a complete lack of it really penetrating or being understood in any way.
“I should learn more about RSS, so I’m going to take James’ lead and go write a feed reader…”
Followup: Shortly after finishing my posting I read on JavaLobby that Scott McNealy has no interest in open sourcing Java. I know that some programs are already starting to rewrite their licenses to exclude SCO from being able to use any future versions of their software, perhaps if the same happened to Sun and their Java Desktop it might help them figure out, “what problem does it solve that is not already solved.”


27 thoughts on “James Gosling Comments And I Reply: Open Source Vs. What?

  1. Keith Lea

    Some people program for fun, not to make the world better for you. I’ve written fun software (temp folder cleaner, room reorganizer) and “necessary” software (AIM/OSCAR library). I don’t know what your problem is with fun, not everyone wants to change the world like you do.

  2. Jamie Lawrence

    We don’t live in an altruistic society. No one has a responsibility to ensure every effort of their waking lives must contribute back to society. Otherwise, ‘fun’, ‘hobbies’ and ‘weekends’ probably wouldn’t exist.
    JNN may have “got [you] NOTHING!” but I’m sure Gosling learnt something from the experience and possibly even (gasp!) enjoyed his little side project. He has no responsibility to provide you with value – hasn’t he already invented the programming language you use?
    I’m currently working on an application people have been writing since the 80’s and I’m thinking of incorporating an RSS reader. Maybe I’ll use an open source library or maybe I’ll write my own. It depends what I want to learn and what I want to spend my time on. [note the complete lack of you or the wider world in that sentence]

  3. Mark Fortner

    Gosling has written a couple of previous programs primarily as tools for learning or playing with APIs. Re-inventing the wheel happens for either of two reasons:
    (1) People don’t want to learn someone else’s API. They don’t want to spend the time required to learn it. A number of open source projects have truly crappy documentation which hamper it’s reuse (no HOWTO’s just JavaDoc).
    (2) They want to learn how to do it for themselves. People have a natural sense of curiousity and want to try things out for themselves.
    That said, I have noticed a propensity at Sun to practice the “Not Invented Here” mentality. The NIO file handling framework was written from scratch (delaying its release) rather than simply adopting either the NetBeans Abstract File System or the Apache VFS framework and contributing improvements over time.
    They also have a tendency to focus on frameworks and underdeliver on implementations. A good case in point is the lack of a JTableModel, and ListModel for RowSets/ResultSets.
    Even with the JCP stewardship, I sometimes get the feeling that no one’s steering the Java ship. The fractured scripting support (Groovy vs PHP) is a good example. It would have been much better to have a scripting host built into J2SE to make everything in Java scriptable, and then have pluggable scripting engines ala Apache BSF. Instead we will have incompatible scripting engines supported in J2SE and J2EE.

  4. SeJo

    Hi there,
    I just read it and find it extremely interesting that one cannot program something if someone else already made it…
    Advocation Open Source (as you in your blog) but limiting the right to write funstuff, in your spare time, providing the source for all to read… isn’t that contradictoric
    it almost feels like if…
    James Gosling is the beast!!!
    Lighten up i’d say

  5. Ryan

    I’ve got to agree with SeJo. Lighten up! Following Mr Munsch’s logic, what is the point in working on such projects as Gnome, MySQL or even Linux since there are currently windowing, database and OSes out there and available already?

  6. John Munsch

    The point in all of those cases is that those _are_ the open source shared projects. What would you abandon them in favor of? Not a closed source commercial product like Windows or SQL Server I would hope. That would be very far removed indeed from the point I was attempting to make.

  7. John Munsch

    Ah! That’s an excellent question. My answer is that we shouldn’t but that unfortunately there isn’t really anything that can be done to prevent it. Hopefully eventually one or the other of these technologies will get sufficient momentum behind it that it will effectively starve the other project of developers, money, and prestige.
    Just recently ALSA was blessed as “the” Linux sound solution by inclusion in the kernel. Bravo! Now we can finally get everybody to concentrate on one set of drivers and get default sound support in our applications so every app I run doesn’t ask me about which of three or four sound solutions I might be using and woe to me if the one I use isn’t supported by the app. Imagine if X was that way. “Oh, I’d really love to run this app but it won’t display because I run Y or Z.” Ack!
    Sometimes choices have to be made. Often it takes a while before one thing clearly wins out. In the case of Linux vs. BSD, Alsa vs. OSS, and MySQL vs. PostGre I’d argue that the choice for the vast majority of users has already been made. One technology is far more popular and it will get the lions share of the attention and resources and that KDE and Gnome haven’t quite gotten there yet (though I personally think that Gnome seems to be getting the nod from more and more important projects).
    Open source should be a brutal survival of the fittest. That’s a good thing.

  8. Ryan

    How can you say there should only be one project for a given need and then promote the idea of survival of fitest? You can’t have it both ways. New threats (projects) are needed to drive the established players to either improve or get out of the way.
    In one of your entries you say you think you ripped off the feature of “Multi-threaded pulling of channels”, so why didn’t you just improve on the project that you ripped this idea off from rather than writing into your own project? Maybe because you thought you could do something better? Or that you wanted your own project? Or…? Doesn’t really matter to me as long as what you’re doing is ethical, and it results in better choices and products for the user.

  9. John Munsch

    You are right that the projects do need someone nipping at their heels to keep them striving to stay ahead. Without that they could easily stagnate.
    Good comment.
    My own project started out when there were actually very few RSS readers (yes, there really was such a time). I needed an aggregator that could work on both Linux and Windows and couldn’t find another cross platform one.

  10. R. A. Rivas Diaz

    How irresponsible is your attitude sugesting that Sun should be excluded in licences of Open Source software.
    Have you has heard of OpenOffice.org?? Think for only a second how about linux on the desktop without OpenOffice.org… Do you know how much Sun have helped the open source community on other projects?? As you sugested, just make a simple search.
    And if you want an open source java, jelp GCJ or Kaffe. OR MAKE YOUR OWN IMPLEMENTATION!!!!.
    My god… you make me think how wrong some body can be…

  11. John Munsch

    > Do you know how much Sun have helped the open source community on other projects?
    No, I don’t. Can you point to some good examples? Here is Sun’s own site on the subject http://www.sunsource.net/.
    It is widely thought that the only reason StarOffice was open sourced was because it would hurt Microsoft’s Office revenues. Note, this isn’t my own personal conspiracy theory, this was widely reported at the time as the most likely reason it was being released. McNealy’s hatred of Microsoft runs deep and is probably well justified. But if true that hardly speaks to a positive attitude towards open source on Sun’s part.
    If you want to look for a good open source piece of software they released with no strings attached and no ulterior motives, NetBeans seems to be the best example I’ve heard so far. If you know some other ones please point them out, their own website on the subject seems to largely list some APIs (like JXTA and Batik) beyond the NetBeans and OpenOffice we’ve already mentioned.
    BTW, quick plug for Batik, if you haven’t ever used it, it’s better than sliced bread.

  12. Dallas Hockley

    You have a point as far as getting Open Source software to accomplish something. Humans being what they are, you also seem to agree that opinions and differences of opinion will result in duplication and diversification of effort (Gnome and KDE for example). There are a couple more aspects that are ripe for consideration in this context.
    Programmers can’t just go and start writing useful code, and grok the world of the “Right Thing”. Just as for those that did the compSci degree, they write hello world, and binary tree code, and yet another pascal compiler, etc. etc., there is a learning process. I think that’s where Gosling is coming from. Learning. I think the fact that “perusing Freshmeat” brings up 90 scripting language projects. Like we need another one. πŸ™‚
    502 projects around text editors. Guaranteed not all are gems or “worthy” of the efforts of people. Let’s say that 10 deserve a place in the “commercial-quality” level, in that they serve different user groups, segments, tasks etc.
    Should anyone with a desire to code on those pick one of the top 10 and just dive in? I personally hope not. We didn’t all start coding on the same day, we don’t all have the same experience or ability level. Start with a simple, non-featured one that might be a bit hacked up. Look at the code from the leader. Get into the concepts. Understand some of the approaches. Try some things yourself. And don’t expect to get your code accepted by the top project all the time.
    To get to the level that your code and ideas are truly good enough for the project, you need to evolve your skills, views, ideas and code to the level of the project. You need to do that by learning and trying. On a duplication of an existing project in a lot of cases. Just another level of another “hello world” program.
    If you still don’t see the point, perhaps we should have dumped all the effort into Minix rather than Linux. What was Linus thinking when he didn’t just evolve one of the many open source efforts of the time? Lucky that he did go his own way, as his particular mode of work, and base of code, and level of ability seem to have done something the other efforts didn’t or couldn’t achieve.
    Diversity and inefficiency is a very, very effective way of trying various strategies. Not all will work. Not all the eggs are in one basket. And gradually, through selection, merit, (marketing?) a top contender may get extra deserved(?) attention like ALSA did. But if you only try one way, you’re going to get whatever quality you started with.
    Vive la difference!

  13. Gaffers

    I have to say I loved this article.
    I am a member of several student organizations at my college and this article proves one thing that I have noticed through out those experiences.
    Stupid people are often given a voice and then spout crap for the simple fact of sounding important and simply to hear their own voice. Ok maybe not stupid per say but these views can only be classified as “rediculous” or just plain “silly”. My advice: Take a good, critical, and unbiased look at what you have said and decide if it has any purpose or bearing before you continue these actions. By continuing this same course you only make yourself and your future views less credible.
    On a more rediculous note: There have most likely been millions / billions of articles or rants written about someone stealing soming and not giving credit. Perhaps you should have searched and taken the best of these arguments and exponded it and given the results back to the author. Since you failed to do this I feel you are being incredibly hypocritical in your actions.
    On a final note: It appears you would rather Gosling gone and found the best RSS Aggregator and then talked about it in his blog. There by dispelling the question of what his favorite is. Your hopes seem to be that he would have chosen yours and given you positive press. Increasing your mind/market share and making you feel like more of a man. However, if he had not chosen yours I do feel that you would instead be complaining about how yours is better than the one he picked.
    I do hope you come to your senses soon, if only for your own sake,
    Your mother

  14. Arron Bates

    In all truth, thank goodness that some people reinvent the wheel. Otherwise You’d hav granite as the hub of your car tire because everyone would just add their feature. Rubber for grip, etc etc.
    Without dabbling and clean-rooming, so many wonderful things wouldn’t have happened. Like say… Java itself. You could already code and get something to run on a computer after all.
    Saying that everyone whould always jump on the back of some other project is just naive.
    And we could also ask… what’s your excuse!?

  15. John Munsch

    Excuse for what? As I’ve already pointed out, HotSheet was done because I couldn’t find anything else like it and when I did FourColor there was nothing AT ALL available to read comics on Linux. I’ve started another project to fill a gap where I see one for playing collectible card games but it hasn’t gotten very far. Again, there was nothing in that space. So what would I need an excuse for?

  16. RaphaΓ«l

    You wanted James to take your code and add three pane view and drag’n’drop? But then he wouldn’t have learned how to parse RSS files. He wouldn’t have encountered those related problems, facing them and resolving them.
    You wanted James to do something useful? Why? Have you ever asked a surfer to do something useful for you? This is free time, he can, should and does anything he wants.
    You wanted James to not release the code? But if he’d have kept it on his hard disk you would have missed the drag’n’drop code.
    Why is reinventing the wheel bad if it serves my purpose on learning something? Imagine how much moves are repeated over and over in a Tai Chi school. Want them to invent some new moves?
    Just because the “pass-time” programming has a need in business that doesn’t mean that it allways have to be related with doing something useful. Gnome and KDE will pro’lly allways co-exist, just because taste is different, time freely available.
    “starve the other project of developers, money, and prestige” – the first argument, in fact, isn’t one. So what if it’s not about prestige and money? Finally, what if the fill different gaps wich you maybe can’t recognize like prefairing the Qt way to the GTK way and inversely?
    OpenSource doesn’t have to be useful. If it is, great. If it isn’t, there will be a commercial product. Buy it. If there is no need for there will be no commercial product or the commercial product will die. If there is no OpenSource project about something wich matters, create one. If noone ever has or noone will help you at your project there is no need for it.
    Life is self regulating πŸ™‚

  17. Thomas

    Standing on the shoulders of giants seems to be a faded idea; most people just want to dig in the (shallow) underground..
    Its a shame that so much people think they can make a difference _on their own_ without working together..
    Anyway; good blog!!

  18. Daniel

    I do support John Munsch’s position to some extent. Open source resources are finite, after all, and spreading open source effort over 50 projects with the same purpose but a slightly different form is detrimental. Too many open source projects die on the vine and their unique features are often not transplanted into the survivors. A certain amount of competition is healthy; however, total balkanization is unhealthy. At a certain point, a new open source competitor serves simply adds confusion.
    If James Gosling wants to learn by building from scratch, that’s fine. If he wants to release his code, he should investigate the existing options and make a decision. He should choose between saying:
    “Here’s some code that I built from scratch. I don’t intend to support it and it does not intend to compete with other open source projects. The code is for informational purposes only.”
    “Here’s some code and I intend to support it and enhance it. It competes with [such and such] and I wrote it from scratch because [such and such] had these [describe serious technical flaws, different direction, or whatever].”

  19. Nicholas FitzRoy-Dale

    Quite apart from coding for fun, people reimplement stuff:
    1) To learn how to do it;
    2) To improve their skills with a particular language, standard, or API;
    3) To reinforce some important concept that they have learned.
    If I were to implement an RSS reader, I would do so to learn how RSS works. Let’s take this as a thought experiment for a minute. Perhaps I would implement it in Python. This would mean that I would have to deal with concurrent connections. That’s ridiculously easy with Python assuming a one-thread-per-connection model, but of course that is not a very efficient model. A more efficient model would be to use select() or poll(), but of course these primitives aren’t particularly platform-independent (though Windows does have select()). So instead I would perhaps start looking at asyncore, or the Twisted framework, neither of which I have a lot of experience with. After writing a simple app such as an RSS feed gatherer, I would have learned several important new skills that will benefit both me, and any other projects that I choose to apply them to.
    Of course, the difference between me and James Gosling is that *I* am not the father of Java. Perhaps you believe that the more godlike you are, the more of an example you have to set for others? To be frank, even your reasons for continuing your news reader are, at heart, selfish. Sure, you are doing stuff with yours that nobody else is doing, but surely your time would be better spent (according to your definition of “better spent”, which I happen to disagree with) applying those ideas to a different, perhaps more popular, reader?

  20. Roberto J. Dohnert

    If people are starting to rewrite their licensees to exclude SCO then it is no longer a “real” free software project. The GNU GPL does not exclude SCO, neither does the BSD License. Im glad James Gosling is back on Java he is the primary reason why I came back from .NET to the Java platform but I dont think I will hang around much longer if nut throbs like this are still involved in Java development. I learned a long time ago to seperate my coding from politics maybe this guy should too.

  21. Scott Ahten

    I find your complaint quite ironic.
    When people complain about the “viral nature” about the GPL, a common response is, “No one is forcing you to use GPL software. If you don’t like the license, then don’t use it.” This is often followed by a suggestion that they should write the code themselves. Since I support the open-source movement, I feel this is a valid response. The developer has the right to restrict how their software is used.
    But in your case you are complaining that someone is *not* using your software. What right do you have to make this complaint? The GPL does not grant you the right force developers to use your software.
    Writing an RSS parser from scratch could be a waste of time. Or it could be the first step in creating a different, more complex parser that does not exist yet.
    And you can’t force people to be productive. Much of what’s on television these days is worthless. Sure, there are a few good shows available, but most of it has little to no value in my opinion. Would you suggest that we force people to watch shows that are informative and educational since it helps advance society?

  22. dj

    Wow, I sure wouldn’t want to make any use of your open-source code, with an attitude like that! Imagine if I actually wanted to ask you a question or report a bug or fix something? I’d probably get my head bitten off!
    No siree, I’m going to either find a friendly open-source contributor, or write something myself. Either one would be more enjoyable than working with the likes of you!
    There are drugs available for your condition, whatever it may be. Ask your doctor, or check your spam-inbox. πŸ™‚

  23. John Munsch

    Again, I just love it when people drop by to dump some message like this off and leave no email address. You certainly don’t have to fear any reply because no one can reach you and it’s a cinch you won’t be back to read anything here. So why bother.
    I don’t think you much need to fear anybody working on any open source project. Everyone I’ve ever contacted about a project was very nice and I can guarantee you that I would be too. My disappointment stems from those people who start from scratch every time not from those who actually attempt to contact others and work together. Bugs and features have been regularly reported on SourceForge and people have contacted me many times. I can’t promise that I helped all of them but I certainly didn’t snap at any.

  24. Victor

    I think you need to lighten up and rather than justifying of your initial outburst by writing yet another post about this, Just say “I’m sorry, I overreacted and the outburst is just that.”. Hey it does happen to people and it does happen to me. I’m sure people understand.
    [I’ve just found this post recently, so apology if it’s a bit dated]

Comments are closed.