inessential by Brent Simmons

Writing new XML-RPC code

Last night I started work on new XML-RPC code for NetNewsWire, to replace the system-supplied code it’s currently using. This will fix a bunch of weblog editor bugs.

As I started work on this I was instantly reminded of why I love XML-RPC: it’s so simple and geometric and clean. My code reflects this. It practically writes itself.

In comparison, parsing RSS is like walking across a field of broken glass.

(And the glass has been heated to just below its melting point. And your hair is on fire.)

I have a couple things going for me:

1. I’ve been on good-friend terms with XML-RPC since even before its spec went public. As a former UserLand employee, XML-RPC is as familiar to me as my own socks.

2. I have a bunch of experience already parsing XML using the CoreFoundation routines. I can re-use the knowledge gained by doing RSS and OPML parsers. (And even re-use some of the code.)

A reasonable person might ask: Why not use Eric Kidd’s code or use the Python bridge? It seems like a good idea to use existing code rather than do it from scratch.

There are a couple reasons:

1. I’d write just as much code to integrate existing code as I would in writing a parser from scratch. There’s no savings in code written—and it would mean an extra unneeded layer, which means there’s more that could go wrong.

2. Since I’ve already done a great deal of XML parsing already (RSS and OPML for instance) I already have a bunch of knowledge and code. Writing this code presents no challenges.