Episode Details
Back to EpisodesHow XML-RPC started up
Description
As with the previous podcast I asked Claude.ai to write the show notes. It makes mistakes, so you have to listen to the podcast if you want to know what I really think. This time it wrote it in the first person, not third person which I would have preferred. At the end I have some of my own notes. DW
This story about XML-RPC's creation in 1998 feels relevant because we're on the verge of something similar today, but this time it might go much further.
Frontier was a comprehensive scripting environment with object database, editor, debugger, and extensive verb set that provided one unified way to do things instead of JavaScript's fifty million ways. It had excellent networking capabilities and was deeply integrated for desktop publishing and magazine pre-production.
Apple felt threatened and didn't appreciate what we were doing - there was a lot of bad stuff happening at Apple, and we were part of one of the bad things that happened there. We couldn't depend on the Mac anymore and had to convert to Windows.
The core problem was communication between Mac and Windows systems with their completely incompatible networking. The solution hit me and I wrote a blog post called 'HTTP plus XML equals RPC' - a way to make everything work the same way.
Bob Atkinson from Microsoft called after reading my blog. Bill Gates was a regular reader and would forward posts around the company, asking people what they thought. This meant everyone at Microsoft was up to date on what I was doing.
We set up a meeting at Microsoft in Redmond with Bob and another programmer whose name he changed later. These were experienced Microsoft programmers who had done important projects but didn't want to become managers - they wanted to keep programming.
The spoiler: it's much easier for an independent guy like me to do something like this than for guys inside a big company. Even well-compensated programmers with big titles can't get something like this to happen inside their company.
I'd seen this before at Apple with the number two guy who wanted me to do a scripting environment because he couldn't get the Apple engineers to do it. Once Apple engineers got wind of it, they put roadblocks in our way - developers shouldn't hold back progress.
Don Box, another independent guy, joined our one or two day meeting at Microsoft. We had discussions, sketched ideas, then went back and worked. The Microsoft team sent me an example, and I questioned every detail over the phone.
Their idea of networking was radically different from mine. My idea was RPC - remote procedure calls - because every programmer understands function calls at the most basic level. Everything is a function call if you go deep enough to machine language.
They wanted objects, classes, and extensibility. I said let's go for it and documented everything immediately. I sent the document to the other three guys and never heard back from any of them - complete silence despite my follow-ups.
I published XML-RPC without their names, feeling conflicted since it wasn't entirely my creation. But we built the reference implementation in Frontier, put up a test server, and evangelized it like crazy through my widely-read blog.
Years later, it surfaced inside Microsoft as SOAP, which went to the W3C. I attended the first meeting with 100 people in the room - full-time standards people and representatives from major tech companies ensuring they were represented.
The W3C process didn't yield anything useful, whereas XML-RPC did. The problem was that within large, complicated companies, ideas couldn't stay simple - they had to accommodate everything. This was what was wrong with the tech industry being brought to the web.
The warning for today: be careful w