Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

JVM Languages

Tim Bray on Sun and Open Source


DDJ: We're at RailsConf 2007 speaking with Tim Bray, Director of Web Technologies at Sun Microsystems. Among his many achievements, Tim is the co-author of the XML 1.0 standard, and he also co-chairs the IETF AtomPub Working Group. Tim, how do you define your role at Sun?

TB: I’m a two-way evangelist. One part of my job is to keep an eye on the developer community, get a feel for what they’re energized about, and then carry that message back inside Sun -- what I think we need to be paying attention to. Of course, on those occasions when we’re doing the right thing, I try to get the message back to the world. It's research, really. I still do some hands-on technology, Atom in particular. There are things that Sun needs to hear about, and conversely there are things we're doing that I want to get the word out.

DDJ: What’s the bigger challenge, evangelizing inward or outward?

TB: Inward is much harder. With the advent of the blogosphere and the connected community, if you’ve got an interesting technical story to tell, it’s really easy these days to get the word out. Sun is a big company with tens of thousands of employees who are in many cases working hard on deliverables. Producing commercial software is a sticky business: once you ship, then you're on a treadmill forever dealing with bug requests and enhancements. People are working hard ,and they’re having a hard time finding the bandwidth... But I have to say, things have gotten immensely better since we open the blogging channels, because that works two ways. People can reach out to get their message out, but bloggers get lots of emails and that's been tremendously valuable to us in terms of finding out what going on… or, “I’m trying to do the next release of FreeBSD, and I can’t sign the Java contributors agreement because of X and Y. Do you want Java to be in FreeBSD, yes or no?”

DDJ: From a business perspective, why is Sun interested in open-source projects, such as JRuby?

TB: The first answer is a complete no-brainer: people who use Rails and Ruby are developers developing applications that need computers to run on, and OS infrastructures, and application servers. They need all the stuff we sell; why wouldn’t we love them? They are creating business for us. All we need to do is provide them with support and tools. It’s a mutual back-scratching arrangement of the first order. Sun loves anybody making the Internet bigger and richer, because we sell the iron that helps make it go.

On a more subtle level, it’s become much harder to sell technology on spec. People want to try something for free, very low barriers to entry. First, you adopt technology, and you want to make that really easy. Secondly you deploy it, and once you actually deploy, then you're interested in paying for it. We think that frameworks like Rails, which have a very low barrier to entry, fit well with that kind of a business model. If we make sure for example that Rails and Ruby have support in our IDEs, run nicely on Solaris, and integrate nicely with the Java platform, that's a win for us.

DDJ: Do you see JRuby bring more Java developers to Ruby or bring more Ruby developers to Java?

TB: We at Sun have an obligation to the literally millions of Java developers to help them get access to modern technologies. Frankly, for certain classes of web applications, Rails and Ruby are a better choice than the Java language. These guys can’t step outside Java because they've got these huge deployed bases of infrastructure--actively developed, modern Java business apps. The Java classes and APIs are critical to their business. If they're going to get the benefit of using cool things like RoR, they're just going to have to do it on the Java platform, so I feel like we’re almost obligated to support things like JRuby to open up doors for those guys.

The other side of the coin, for the people who have Rails apps, there are two or three reasons why this might be interesting. One is, up until now TextMate has been it, pretty much, so bringing some new IDEs has to be interesting. Second, the Java suite of APIs is much bigger. Anything you can think of has probably been coded up in a good open-source version. For example, I wrote a complex Ruby program to do Atom protocol validation [the Atom Protocol Exerciser]. It turns out that the Atom protocol is specified using the RELAX schema language, but there are no RELAX schema validators available in Ruby. There are in Java, so I switched it over to JRuby so I could use the RELAX schema validator in Java.

The third reason is that, whereas Rails has a terrific story on time to market and maintainability, the story on deployment options is a little more limited. This is one area where the Java platform has a really strong story to tell. Personally Java EE wouldn't be my first choice for developing web applications, but Java EE containers are a darn nice way to deploy web applications. If you're in Rails on JRuby, first of all, you get the JDBC. ActiveRecord talks to JDBC very nicely, so you get tons of databases that just work. Also you can package up a Rails app as a .war file and just drop in into an existing EE deployment . That gets you all the nice load balancing and so on. That might be a really interesting option for people developing Rails applications. There are advantages on both sides.

DDJ: Can you give us an update on what's going on with the Atom and the Atom Publishing Protocol?

TB: The Atom Publishing Protocol has two deliverables: The Atom RSS data format and the Atom Publishing Protocol, which has been my personal technology project for the last couple of years. It's a very thin layer on HTTP that allows you to do CRUD [create, read, update and delete]. The dream behind it is very simple: everything could have a publish button. Every mail reader, every camera, every cell phone, every toaster, should have a publish button, so when you see something you want to share you press the publish button and it's there. The reason that's hard is because there are a huge number of potential publishing clients. We've already got a lot of publishing servers: LiveJournal, Myspace, and Blogspot, but we're never going to giving a smooth productive environment, unless there is a universal intermediate glue that connects "any of these to any of those."

We had an Interop event on April 16, with 15 clients and 18 servers. We didn't get 100% interop, but we got a lot. There were people there from Google, and Microsoft, and IBM, and Oracle, and Sun, and NTT, and so on . WordPress announced full Atom Protocol support. The notion of a general purpose, lightweight client device to push things onto the web and maintain them once there there, it’s not to understand why that could be a big deal. [Publishing] arbitrary binaries, multimedia… it all more or less just works. And it's layered on top of HTTP, so we get all the security goodness that comes with that and all the verification protocols. In my lighter moments I say it might drive XML off my gravestone.

More Information
JRuby home page
The Atom Publishing Protocol


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.