"Yes, I have looked at Water. There are numerous languages that take this approach. I personally do not like the approach, but then again I'm spoiled (a Python programmer). :-)"I haven't seen any other languages treat XML as a first-class citizen for both code and data. There are certainly hybrid designed such as JSP and ASP, but those are not XML-based languages. Water is simpler, more flexible, and more OO than Python. Can you describe what you believe Water's approach is, what other languages have "taken this approach", and specifically what you don't like about that approach?
There comes a point where you need a syntax designed for expressing programming language constructs. If you take a data description language like XML and use it to create a programming language, the result is every bit as unsatisfactory as taking a programming language and using it as a data description language.
The distinction between the two can be substantially blurred. Perhaps the best example being the Lisp family of languages in which S-expressions are at once data representation *and* code representation devices. I'm a fan of Lispy languages and functional programming languages in general. I find with Lisp that after a short while using it intensively, you "see past" the parenthesis to what is going on underneath. I have never been able to "see past" the tags in an XML-based programming language.
If you want to use a single syntax for code and data - use Lisp. It nailed the problem in about 1950. XML has nothing to offer here in my opinion.
This was first published in August 2003