Lists Home |
Date Index |
My point of view is that beyond ontologies and ontology designers, XML is also enabling a new category of developers/architects called "language designers" who design XML-based XMLSchema-defined domain-specific languages that can be used by users who want to program in the big/higher-level while others implement those languages by programming in the small/lower-level.
This is all the more possible NOW, since
- the value of language is less and less related to how rich its API is (Java or C# is cool b/c the APIs of J2EE or .NET are full of things, but with WS and SOA, I can virtually call any "library" from any language supporting WS), and more and more about the kinds of abstractions, expressiveness and overall "adhocness" to a problem it is.
- Particularly in Service-Oriented software, the implementation language does not matter as much, as long as it matches the service contract.
The following is kind of a departure from the original Ontology discussion, but I couldn't resist to get feedback on this idea when I read the discussion about declarative vs procedural, SOA, ontologies, etc.
One big practical use that I noticed about XML is that a lot of people use it for configuration files of their software, whether it's a desktop app, a component, a Web Service. Among the other uses of XML (XML as message format, as object serialization format, as grammar, as language, etc.), this is probably the most widely usage of XML.
A config file is great since you don't have to recompile and retest your code everytime you change the parameters in there, so the tendency is to move more and more things from the code to the config file. The more things they move from the code (ex. business rules, parameters, etc.) from their code to the configuration file, the more the configuration file looks like a program in some kind of custom language, typically declarative, rather than procedural, and more the original program looks like an engine.
With XML Schemas, it's great since I can easily define a grammar for my language and enforce it and enable some people to easily create valid "programs", for instance, by using a grammar-driven XML editor.
So, XML in a way makes it easier to create new domain-specific and usually declarative languages. Those enables "business analysts" to program at a higher level while the programmers as we know them can focus on implementing those languages in low-level general purpose languages.