Thursday, February 27, 2003

I read an interesting article in Dr. Dobbs today about embedding code in XML (XML-Based Programming Systems by Gregory V. Wilson, March 2003). The article predicts that one day soon we will be writing in languages based entirely on XML. This of course would have some drawbacks:

  • The code would be completely unreadable by human beings
  • We would be completely dependent on our IDE (take that, vi geeks!)

On the upside:

  • Code and comments could be intermixed in the code and still be accessible programmatically (javadoc++)
  • Code could be reverse engineered using all the features of XML (imagine Reflection with XPath support)
  • And best of all (imho), third party plugins could add tags into your code without getting in your way.

Lets reflect on that last point a bit. Think about all those third party apps that leave droppings in your code: Together's UML javadoc tags; the generated code from JBuilder's GUI Designer (oh! the humanity!); xDoclet's code generation tags; the javadoc comments from that damned web guy!!!; the obscure javadoc tags that the company standards force you to add; and the list just goes on. By extending an XML based syntax, all of that information could be in the code, and your IDE would simply hide the features you don't need to see.

Just like IDEA will allow javadoc to collapse or expand, IDEs of the future could have an expandable dialog with a tree of dependencies; or a SVG drawing of data interaction in a given method.

I have to admit, I got most of the way through the article before I could even except the idea of not saving my source code as plain old text. But being such a big fan of open source, I have to admit, this would be a feature that would really interest me. If the language and it's markup could be extended by any number of third party tools, there would be no end to the inventive combinations of features.

When the open source community gets a hold of a flexible set of interchangeable components, they have a tendency to go to town. Just imagine what we could make with this.



Post a Comment

Subscribe to Post Comments [Atom]

<< Home