Interview with Tim Bray: Atom, JRuby, and the Ecumenical Sun
Pages: 1, 2
O'Brien: Hypothetical, you work at a place like the New York Times or the BBC, and there is a content management system (CMS) system that tracks everything from images to news stories. Do you see Atom as something that could be extended for all content types? Is that what you are trying to get to with Atom? Or, is it just for blogs, just for photostreams, just for spreadsheets. Are you trying to build the foundation for a general content repository? Something that could be used in a an enterprise content management system?
Bray: Well, I have a very bad track record of predicting the applications of general purpose technologies that I help invent. My predictions about what XML was going to be used for were notably wrong. The design center of the Atom protocol was clearly blogging. On the other hand, we're already seeing applications that are not blogs. For example, a couple of your colleagues from O'Reilly came to the interop event and had Atom server implementations that had nothing to do with blogging; in fact APE couldn't interact with them because the only thing they could upload was DocBook XML. What we're trying to do is do a really good job of producing something that will be useful for the blogging space, but it doesn't have any built in limitations.
My prediction is that there are going to be a lot of applications that I'm not really smart enough to predict and will surprise me.
O'Brien: And, that's via the extension mechanism that is a part of Atom?
Bray: Indeed, but also it is just the basic function of having a super lightweight way to do what we computer programmers call CRUD operations that is create-retrieve-update-delete. A general purpose lightweight way for a simple minded implementation to put things on the web, update them once they are there, and delete them when you don't want them anymore. That just by itself ought to have a lot of interesting applications.
O'Brien: Is it time to turn off our RSS feeds?
Bray: Why would you do that? Sorry, I don't understand. RSS is the world's most successful application of XML, and is being used by literally hundreds of millions of people. I'm missing something...
O'Brien: I meant, is it time for a universal switch to Atom? Is it time to turn off our RSS feeds?
Bray: Oh, I see what you are driving at. Well RSS seems to work just fine for basic person-to-person blogging. I think that most implementers given the choice would rather work with Atom because it patches a few irritating glitches in RSS. If you are writing a facility that is to consume feeds, you are going to have to consume both RSS and Atom, and it is worse than that, you are going to have to consume multiple versions of RSS. Because that's the way it is. On the other hand, if you are writing something new that generates a feed, you might as well generate Atom because it is a lot cleaner, and it will route around some bugs that might otherwise bite you. All the software out there that reads feeds can now read Atom.
O'Brien: Do you see RSS fading away in the face of Atom, or do you see people always having to inter-operate between the two.
Bray: I think increasingly new feeds that are brought into production will be in Atom, we're already seeing that. But, technologies on the Internet tend not to die away. You know there are lots of things out there that still use the blink element in HTML. So, I'm sure that RSS will be pumping about the Net in high volumes for years to come.
O'Brien: Is there anything you think the community is missing about Atom, or do you think it's been covered?
Bray: I think that a high proportion of people, haven't yet noticed the Atom Publishing Protocol. Now, judging by the tune of our interop event a lot of people also have, but I suspect that in a couple years from now the Atom Publishing Protocol is going to be a really big deal.
In my lighter moments I say that it has a chance of wiping XML off of my gravestone.
The key points I'm trying to get across: everything should have a publish button because the more contributors we have to the Net the better the Net is. Anything we can do technologically to reduce the friction to enable more stuff to go onto the Net is a good thing and that's what Atom is trying to be. The crucial thing is to enable people to contribute and not just read.
O'Brien: Did you know about that partnership with Canonical?
Bray: Well it was hardly a secret. Mark Shuttleworth showed up at JavaOne last year and he and Jonathan [Schwartz] smooched and made kissy-kissy on the stage. So, it is hardly a secret that Sun and Canonical are buddies.
O'Brien: At the same time, Marc Fleury was also on stage at JavaOne and there is no similar partnership with Red Hat? Is it correct to assume that you are siding with Ubuntu at the expense of the relationship with Red Hat?
Bray: Well up until last week, because we had these licensing issues around the JDK, and NetBeans and EE and all these other things, you just couldn't put them into any Linux distro in any good way. We made our policy decision a year ago that we were going to open source this stuff, but, as you probably know, there are a lot of legal mechanics that go around getting the licensing right and so on. And, that took a huge amount of work. I happen to know that it was being worked on just days before the announcement; there were a lot of i's to dot and t's to cross. Now that that is done, it is perfectly plausible that any Linux distro can make it very very easy to install Java and use Java.
Canonical was the first to step up and do it with Ubuntu, but I can't imagine any major Linux distro not doing it.
Why would you not make it easy to install Java?
O'Brien: The argument from some in the Free Software community is that there are still portions of the code that are encumbered by non-free licenses. Do you have any response?
Bray: That's correct, there are portions of the code that are still encumbered. We were quite open about that. In particular I think it is in the low-level Java SE itself. Some of the examples were the 2D graphics and the font rendering. And, we are working on fixing that, and hoping for help for the community as well on that. Typically, what happens whenever a commercial product is open sourced, it isn't a binary switch were you go from zero to everything.
Having said that, we were able, working with Canonical and engaging the lawyers, to work out a way were it could be in...
O'Brien: ...the Multiverse...
Bray: Yeah, it is in the Multiverse. I am not an Ubuntu guru, I'm not sure what the equivalent is for Red Hat but they've found a way to make it happen for Ubuntu, so I can't imagine that it would be impossible to do for any other Linux distro.
O'Brien: There's no animosity there?
Bray: Not that I'm aware of.
It is clearly the case that right now in the developer community, Ubuntu has got the "heavy mojo." Ubuntu is really engaging the attention and affection of a large proportion of developers and I think that inside Sun as well as outside Sun there's a lot of people who are super affectionate towards Ubuntu. You plug in a digital camera and it just works and stuff like that.
O'Brien: One can only guess at the announcements that are going to come out ay JavaOne. Should we expect JRuby to be finished? It appears that there is a flurry of activity surrounding JRuby.
Bray: It is painfully obvious there is a flurry of activity.
O'Brien: What should we expect news on, JRuby and NetBeans? JRuby and Glassfish certification?
Bray: I couldn't comment on preannouncements.
Let me say one thing, my perception is that the actual biggest driver of hard work on JRuby is getting Rails working nicely. Getting all the Rails tests to pass and getting some big actual Rails applications running smoothly. I think it's generated quite a bit more work than Glassfish.
O'Brien: I get the build emails every two hours and it looks like they are getting closer. Charles has said he won't consider JRuby done until Rails is supported. He's also made some public remarks about the difficulty of web development in Java. Is Sun's embrace of JRuby and Rails, an admission that there needs to be an alternative to JavaServer Faces?
Bray: How to address this? Well, I'm not sure how many alternative frameworks we need. If you look at the market empirically, there are developers who are using lots of different frameworks, people who are using the various web frameworks, both the official EE stuff and the lightweight stuff like Spring and Hibernate.
People are using PHP, a whole lot of people are using PHP. Rails has a fantastic growth curve. Then there are other things that people aren't paying as close attention to such as Django from the Python community. I think that Sun needs to live in the world as it is. And in the world as it is, there's lots of different web frameworks and all of those web frameworks are being used to build applications that need iron to run on and operating systems to support them. I don't see any reason why Sun shouldn't try and love them all as best we can.
O'Brien: So it's not JRuby on Rails in competition with JavaServer Faces, you still see a place for both?
Bray: None of these things is going to go away.
The one concern I've had is that Sun has gotten pretty enthusiastic about Ruby on Rails and so on over the last year. That doesn't mean that we can afford to ignore things like PHP and Django. I think we need to be a good host to all of those things. having said that I think that there's pretty widespread perception not just inside Sun that Rails is hitting a darn sweet spot in web frameworks in terms of two very important criteria: time to market and maintainability.
Bray: It is clear that Seaside is quite architecturally different from all the other web frameworks. You've got to watch out here because I have a conflict of interest as an investor in DabbleDB, so I have real money on the line. Having said that, the reason I'm so impressed with that software is what it does, not how it is built. DabbleDB has an absolutely wonderful user interface and seems to do something to me that's tremendously useful. I was flabbergasted when I found out it was built in Seaside. But clearly, its existence is pretty strong evidence that Seaside is useful.
O'Brien: So, Seaside is something to pay attention to?
Bray: I think that DabbleDB is something to pay attention to. It may just be the case that the two guys who built it are such brilliant designers that they could have produced something like that using a different framework. It is at least an existence proof that Seaside can be used to build things that are interesting.
O'Brien: I just asked you a series of questions about JRuby and different web frameworks, and one can only notice that Sun is getting more involved and aggressive about embracing scripting. Is there anything else you'd like to comment on?
Bray: I think that Sun is trying to change its stripes somewhat. Up until this last year Sun's basic positioning was, "Well the answer is Java, what was the question?" And, while I think we are trying to become more ecumenical and support developers where they are, that doesn't mean we don't have an opinion. Clearly, we think Java is highly appropriate for a wide range of applications. It is correct to notice that we're banging the Ruby drum these days, but that doesn't mean if you are running PHP we don't love you.
We need to become more ecumenical and reach out to developers wherever they are.
O'Brien: That being said, do you have any plans to change the name of JavaOne to (Java|Ruby|PHP|Python)One?
Bray: I don't get a vote on that.
- Tim Bray's Blog: Ongoing
- Tim Bray on Wikipedia
- Tim Bray's Executive Bio on Sun Microsystems web site
- JRuby Project Page
- Glassfish Project Page
- NetBeans Product Page
- The Ruby Programming Language
- Ruby on Rails
- Atom Protocol Exerciser (APE) Test Page
- IETF Atom Working Group Page
- "Meet the APE" from ongoing, August 11, 2006
- Atom Protocol Interoperability Grid from Atom Wiki
- "How Big is the Club?" from ongoing, April 17, 2007
- RFC 4287
- JavaServer Faces
- Spring Framework
- "Twitter, Rails, Seaside, Respect" from ongoing, April, 13, 2007
Timothy M. O'Brien is a developer and entrepreneur living in Chicago, IL. He spends his days programming in Java, Python, and Ruby.
Return to ONJava.com.