Actually, natural languages are governed by two principles: economy and expressivity. If we anthropomorphize a bit (which is fairly safe for human products like language), the point is not necessarily to keep things simple, but to provide a means of expressing what you want to communicate while not having things so complex that too much processing power is lost while trying to decipher what was said.

All languages arrive at a relative balance of expressivity and economy, but their systems are by no means stable. New ideas come up and people need to express them; physical conditions change e.g. parts of words not being pronounced, producing ambiguity) and people have to readapt so that things are clear again. A lot of the processing involved in doing this is done in the background by a system resulting from a combination of innate ability and repetitive conditioning. It's not just linguistic experience that counts---our minds also have to make sense out of things said according to the context they are said in. Think about a phrase like "Would you like to come up for a cup of coffee?" in the context of a date.

Put into a nutshell, artificial languages are governed by the same principles, but they are usually an attempt to get the 'best' of both. The main thing is that the system should be easy to describe so that it can be learned quickly. Programming languages are pragmatic. They are all about getting things done. Markup languages are designed to add value to previously existing information (e.g. clarity/removing ambiguity).

XML markup is just a way of adding meaning to text. It definitely fills the criterion of being easy to describe. All variation in the system of describing content is regular---it has to be or else XML would not work. But this ease of description comes with the usual price. Since XML does not have the same contextual and culture cues that meaning in human languages has, it is forced to be very explicit. That's what causes all the headaches, but it is at the same time the genius of the system. Processing it must be exhaustive, but you only have to process it in one way. Imagine if you had to include contextual and cultural cues to your markup.

But XML is also going in other directions that resemble human semantic processing a lot more. Topic maps, for example, can provide and maintain contextual and metalinguistic information (and a whole lot of other stuff) In order to do this, however, the constructs we use must become more complex. XML is actually something simple which provides a framework for doing more complex things. In any case, pretty much everyone who works with XML is only scratching the surface of what can be done with it. We're dealing with a subset.

So what can we do to make working with XML easier? XML allows us to do whole bunch of things, but they'll turn out to be use-impaired if we don't plan things correctly. So let's get our ducks in a row before we start adding "value". Many of the applications I have seen for XML were clearly inspired by the desire to use new technology without really considering its potential benefits.


In reply to Re: Re: is XML too hard? by allolex
in thread is XML too hard? by thraxil

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":