Interop matters
A programmer's first responsibility is to interop with the work of other programmers. Blazing a new trail should be done only when what you're doing is truly new.
by Dave Winer Thursday, April 6, 2017

Checking in from Italy.

Every so often I hear from a developer who thinks RSS should be redesigned from scratch. I listen to what they think needs to be fixed and am reminded why it's better to improve the existing format through a namespace rather than starting over. Here's a story to illustrate. 

Every trip I forget to bring something and this trip is no exception. I didn't bring a power adapter that converts the format accepted by Italian wall sockets and converts it to the format accepted by an American wall socket. Of course all my devices, my iPhone, Android phone, Mac laptop, even my watch, are designed to work in America. 

So last night I was running off energy stored in my batteries in America. 

Why? Some tech guy in Italy or America decided their way was "better." And they never imagined that I would be trying to plug my American iPhone into an Italian wall socket. Or they didn't care. 

At the same time I was able to email back to the US, in an instant, because wifi is a standard that's supported everywhere. And I was able to post to my linkblog because RSS is well-supported everywhere. And I was able to read the item I posted to my linkblog because my iPad has an HTML browser that communicates over HTTP even though the designers at Apple didn't particularly like the web. They supported it anyway. And now ten years after the introduction of iOS I am able to use the web from Italy, or anywhere that has a wifi connection.

So when I hear  some programmer doesn't like XML, my answer will always be to offer to help them find a library that hides that detail from their software, and in doing so, help some traveler in some unknown space 100 years in the future. I think that's the duty of every engineer, everywhere, always.