Readability

A notation can be too short. If a seldomly used feature takes only one letter ("t"), then the few times you see the letter you will probably have to look it up, if you don't overlook the letter completely. It is better as a complete word ("translate").

A notation can also be too long. If a keyword you use all the time takes 20 letters to type ("shapeoutlinedata"), than it could probably have been abbreviated ("d"). These examples are from SVG (which gets them right), but you can find similar cases in most languages.

Unfortunately, sometimes your best guesses turn out to be wrong. The designers of XML thought it was helpful to open and close an element with the full name of the element (<heading>...</heading>) and for the usages they foresaw that was indeed quite reasonable: in long text with sparse mark-up the ability to see what element you close outweighs the small redundancy [XMLgoals]. They thought allowing a shorter form (such as </> or <>) would just add to the complexity of the language. But XML is now more often used for data in which the mark-up overwhelms the content in between, and line after line of opening tag almost next to the identical closing tag is hiding the essential data by their redundancy. XML isn't broken, but in hindsight it could have been made somewhat less expensive to use.

Of course, you can always use something else than XML. And if readability of the source is important you probably should. But it comes at a cost: you will have to think about many things that come for free when you adopt XML (how to escape Unicode characters, how to ensure unambiguousness of the syntax, what delimiters to use for nested structures, how to parse white space, etc.).

One way to use both XML and a readable format is to use converters between the two. For MathML, for example, there are several tools that allow people to edit mathematics in a familiar notation. Once there are such tools, readability of the source becomes less important. Not unimportant, though: see longevity.

CSS has its own syntax because readability is very important for a language that is used by nearly as many people as HTML itself. It could have been based on SGML, and originally there were indeed proposals for SGML-based syntaxes (see [Lie99]) and there even existed a US military standard ([FOSI]), but there was never any question that CSS syntax is better. (XML didn't exist at the time, but it wouldn't have helped since it is more verbose than SGML and allows fewer symbols as punctuation.)

Many other languages opt for a mixture of XML and some other syntax. XML by itself only uses angular brackets as delimiters, everything else must be done with keywords. People are generally more comfortable when other symbols, such as colons (:), semicolons (;), curly braces { } and parentheses ( ) also carry meaning. SMIL, for example, expresses times and time intervals with a notation like 3:25.5 rather than, say <time><min>3</min><sec>25.5</sec></time>. SVG similarly uses a compact notation for paths that is much more readable than anything with XML tags could ever be. But both SMIL and SVG still use XML for the parts where verbosity is less of a problem, thus making the job of the designers of the specification easier at an acceptable cost in readability.

And there are languages for which readability is rather less important compared to, say efficiency. PNG is an example. It is a binary format.

See also

[FOSI]
. [Where is this thing?]
[Lie99]
Lie, Håkon Wium; Bos, Bert. Historical style sheet proposals. 1997-1999. W3C. URL: http://www.w3.org/Style/History/
[XMLgoals]
Tim Bray; Jean Paoli; C. M. Sperberg-McQueen (eds). Extensible Markup Language (XML) 1.0. 10 Feb 1998. W3C Recommendation. Section 1.1 URL: http://www.w3.org/TR/REC-xml#sec-origin-goals