I'm biased of course. My position is that XML is a truly awful syntax to express an imperative programming language in. As soon as you reach the point where you need to express imperative constructs (conditional expressions, loops, selections and so on) the syntax gets in the way. A sign of a good programming langauge, I think, is one in which the syntax does not get in the way, letting the programmer concentrate on what the program is supposed to do.
Here is an example (http://lists.xml.org/archives/xml-dev/200301/msg00406.html)
<!-- Water version of Factorial Function -->
<defmethod factorial n>
<if> n.<is 1/> 1
else n.<times <factorial n.<minus 1/> /> />
</if>
</defmethod>
<test <factorial 10/> 3628800 />
# Python version of Factorial Function
def factorial (n):
if n == 1:
return 1
else:
return n * factorial(n-1)
factorial (10)
I think the comparison speaks for itself!
|