Bootstrapping the Two-Way-Web
Doug Engelbart, who envisioned much that we're doing now, emphasizes the importance of bootstrapping. When engineers build a suspension bridge, first they draw a thin cable across the body of water. Then they use that cable to hoist a larger one. Then they use both cables to pull a third, and eventually create a thick cable of intertwined wires that you can drive a truck across (actually hundreds of trucks).
That's a bootstrap. First you take a step you know is on the path, learn from it, and use it to lift up the next level. And unlike the designer of a suspension bridge, we must be more flexible, because the pace of innovation in our art is so rapid. We don't know exactly what next year's trucks will look like, how much they weigh, or how many wheels they have. That's why this stuff comes in layers and why they have been designed with more power than they need to get today's job done.
My name is Dave Winer
As you may know, I participated in the design of XML-RPC and SOAP, along with some great engineers at Microsoft, Developmentor, IBM and the open source community.
I love both protocols, for a lot of reasons, but mostly because they are vendor-neutral, and provide an excellent foundation for building scriptable applications that run over the Internet.
Why I am interested
Most of the other companies interested in these technologies want to build a network of money, goods and services. I applaud this, but this is not my goal. I want to turn the Web into a powerful and easy to use writing environment.
Manila, Blogger and Zope
We already know that editing a website in a browser is fantastic.
Late in 1999 UserLand shipped Manila which is a browser-based content management system. Now there are approximately 15,000 Manila sites. That's a good-sized installed base of people getting the benefit of easy browser-based editing. And the growth is not just happening at UserLand. Pyra Labs, a San Francisco company that makes the Blogger browser-based weblog editor, has started 50,000 new websites in roughly the same time period. Zope, a Python-based content management system, has experienced comparable growth in the open source development community. All the growth is happening around a single key idea -- editing the Web in a browser makes it easy.
Here's how it works in Manila. To create a new story or news item, click a button in the browser. Enter the information. Click on Submit. To edit some errant content, click on the Edit button, make the change, click on Submit, and you're done.
By hacking the details, we were able to turn an error-prone multi-step process into a simple and intuitive three-step process. That's why this concept is growing so fast. If you don't believe me, create a free Manila site for yourself. In a couple of minutes you can experience the power of having content and the editing environment totally integrated.
Is this a writing environment?
Emphatically, with the right server software, the Web browser is a writing environment. Writing takes place here, at a phenomenal rate. And it's a new kind of writing environment because it has networking built in. But it would be better if the writing tools were better.
Why it's not enough
Microsoft's Web browser, which dominates the market, is not an excellent text editor. It's missing many features like Find and Replace that writers have come to depend on. And it's buggy: text selection in the browser doesn't work with the mouse, a device that became universal on PCs over a decade ago!
It's pretty clear that Microsoft doesn't really want us writing in the Web browser, which is not surprising since they also make the most popular writing tool, Microsoft Word. So we must route around this if we want the Web to be an excellent place for writers to communicate.
Even though many people use Word, quite a few prefer Emacs or BBEdit. I like writing in an outliner. We can create a network of compatible content systems and text editors, figure out how it must work (bootstrapping), and even if Microsoft won't bring Word into the fold, there's probably enough openness in the newest versions of Word to make it part of the network without direct investment by Microsoft.
Manila and SOAP
Now we come to SOAP and XML-RPC and the role they play in bootstrapping a new style of text editor, one that's wired into the Web as thoroughly as previous text editors were wired into the local file system and printers.
Two steps must take place at the same time, following the bootstrap philosophy, we need a thin cable to lift a bigger one. We needed a content management server that allows text editors to hook in, and we must have a text editor that can connect to the content management server.
At UserLand we have taken both these steps, that's today's news. Previously we only supported XML-RPC interfaces. Now we support both XML-RPC and SOAP. The interface is documented here. Instructions for Manila sysadmins is here.
Further, our Internet outliner, Radio UserLand, supports the workstation side of the same protocol. Here's a screen shot showing this page being edited in Radio.
The net result is that I can edit Web documents in my favorite editing tool because I have wired it up to the Web through SOAP and XML-RPC. When I save the document in the normal way, it automatically pushes it through templates and macros, it's linked into a calendar and is immediately indexed by a search engine.
How to explore this stuff
First, all UserLand-hosted Manila sites, and many sites hosted by other companies, have SOAP and XML-RPC interfaces as of 11/20/00. So you don't have to create a server, we've already created one for you. Any Manila site will fit the bill.
Next, if you have not already done so, get a scripting environment that supports either XML-RPC or SOAP. Radio UserLand, which is freely available, supports both. It also includes glue scripts that connect up to the Manila interfaces.
Now, study the docs for the Manila RPC interface. You have to know a little about Manila to get it. There are stories, pictures, home pages, templates, editors and themes. All of it is scriptable. That means that you can create workstation apps that automate repetitive tasks for your Manila site. You can also call into the server to get a document or save one. Your goal is to figure out how to hook your editor into those interfaces in the same way that Radio does.
Re-inventing the wheel
Instead of bemoaning the tendency of programmers to "improve" on other programmer's protocols, let's embrace it. If you don't like our SOAP/XML-RPC interface for Manila, write your own, to suit your own tastes. Then let's evangelize your interface alongside ours, and we'll make every effort to support it as well as our own. The important thing is to present a simple and intuitive way of editing text for users. How the connection is made isn't very relevant to users. So if you want to innovate, go for it.
Falling off the cliff
This is where we fall off the cliff for now. I want to provide links to sites where you can download widgets that interface all the popular editors, but for now, they don't exist. Think of Radio as our Amaya, a way of showing everyone else that writing on the Internet can be fun and easy, and wild and uncontrolled. Let's make this happen.
Finally, if you find this interesting, please follow Scripting News, where I talk about this kind of stuff every workday, and am happy to share the flow with people who contribute their work to turning the Web into a first class networked writing environment.
And if you came here from Scripting News, if you like this idea, spread the word. Send people pointers to this piece, and then remind them when something new comes along. I think we're very close to going over the top on the Two-Way-Web.