Tuesday, June 13, 2006

What, exactly, is XML?

This seems a dumb question: What, exactly, is XML? But, being honest to yourself, can anybody out there explain to me in a few words what XML really is? Or, to be more precise, what is XML all about?

For a couple of years I tried to just listen to the guys 'n ladies who should know the answer and, believe it or not, I got a couple of answers depending on whom I asked for:

Listening to consultants it is the one-and-only salvage to our new computer-century, solving all problems you ever had. Not even enough, it is capable to solve problems you are not yet aware of ever to have.

Listening to the techies you might learn that all you want to achieve technically may be done using XML.

Listening to the decision-makers it is the answer to life, the Universe and everything, and that all doing one big shot.

But, honestly, can anyone out there answer the simple question: "What, exactly, is XML"? Doubt so. This is because merely (in first sight) it only is a format but then (in second sight) everyone put their hopes in it to solve problems XML never was ment to solve. I still can remember the hype in IT where, at a meeting, someone simply said: "Well to solve this problem we provide a XML interface, that should do.". Needless to say that it didn't.

And it is easy to process. There are so much frameworks, tools and API's to cover all that unconvenient stuff of "reading", "parsing" and "testing" XML (configurations) that most people may suggest to you that using XML is pretty more simple than doing without it. Never had the sensation that you needed one hour to do something in XML which could have been done in a couple of minutes without? I had.

To be more precise, the troubles I have with XML are the following:

- It is not defined which element (or tag) to use if there are more than one in one realm. As far as I know all the tools and API's take the first value they find, but it might be a source for errors, especially if you insert a new element which overrides (or better: does not override) the previous value.

- XML is not human readable. It is an exchange format with fault-tolerancy. This is the one advantage XML has (compared to, say, a fixed size record-driven format): In case an elenment is not defined, the structure is kept (mostly). But reading XML as a human reader is painful.

- XML is a format and no programming language. XSLT is a cute way to transform XML into another XML (or text or u-name-it), but XSLT is no programming language either. The moment you stop thinking of XML as a language is the moment you will better recognize how often it is misused nowadays.

- XML produces overhead. Huge overhead. Only think of SOAP-WebServices (or BLOBs represented in XML): To send one bit of information you will need to process, assemble and send some kilobytes round the corner. Agreed, SOAP-WebServices are well-defined and can simply be extended. But do you need XML-ish things for each and every problem?

So what, exactly is XML? An all-intention-problem-solver? Definitely not. An extensible exchange-format with fault-tolerancy and many available tools to deal with and transform or show it? I bet on that one.

Labels: , , ,


Tuesday, June 06, 2006

Fuukin TLA's

CEO. OOA. OOD. PHP. ROI. SOA. TTM. XML. I hate fuukin TLA's.

Do not understand me wrong: Though pressing the world in three letters nowadays seems far too easy and I do not have something personal against Three-Letter-Acronyms, they are in no way cabable to describe the world we live in today. And I don't reckon that tla's are capable to describe the days "spirits were brave, the stakes were high, men were real men, women were real women and small furry creatures from Alpha Centauri were real small furry creatures from Alpha Centauri"*.

Three letter acronyms are... three letter acronyms. It always depends on what you are doing with (or on) them, or what you might tell the world using them or what the world is telling you using them. Please understand me right: No "tla" is - as such - good or bad at first sight, but they stand for ideas and are highly able to create prejudice simply by mentioning them and activating the assotiations they create (the selection chosen at top of this article was randomly chosen, you might as well replace the abbreviations through your favourite ones instead).

How ridiculous the above mentioned conglomeration of buzz-words really is may simply be shown by building a brief job-description with them:

"Central Executing Officer is searching an Object-Oriented-Architect/Designer to build pages delivered with PHP**. In your future job you need to be able to create a vast Return-On-Investment by building a Service-Oriented-Architecture which helps us getting our products available "Time-To-Market". eXtended-Markup is no foreign -Language for you."

Buzzing-Bingo! - and I did it in alphabetical order, too. Me having to deal with that kind of fancy stuff all day you perhaps understand why I sometimes really wonder who's doing all the programming work... .

So my advice for the day: Don't rely on guys using only buzzing-bingo-words all day long. And, if possible, start to not use them for yourself.

* Stolen from Douglas Adams. Could not resist. Sorry.
** I know I did not "translate" the three letter acronym PHP because nobody would do so in a job description (PHP originally stands for "Private Home Page Tools").


At least. The web got me. Catch-22.

So at least the web got me involved. And it's a little bit of a catch-22 situation for me: I do not want to blog. Well, said that you can simply prove me wrong. "Why, oh why, is he blogging then? He already said he doesn't want to do it and he did so at his very first sentence at blogger.com! Blame him, he's lying to us." And who am I to argue that, it is more than true. Not the "he's lying" point, I hope, but alas I am not a blogging kind of guy daily spreading my thoughts to the webworld, why am I doing it anyway?

The reason is as simple as the reason anyone is blogging nowadays: I think I got to say something (more or less) important to the world. And because my job does not always allow me to publish my opinion as straightforward as I'd like to do, this webspace is a place I may let off some steam gathered reading dumb commentaries or simply things I think that are not true. Writing commentaries, as I now recognize, is not the same thing as writing an article and commenting the commentaries that are the result of your own thoughts. You can learn a lotta bunch more through the latter way.

"To blog or not to blog" was the decision I had to make now. Catch 22. Well, let us see how deep the bloggin-hole goes.