Not only can content be built in XML format and transferred with XML-based messaging, it also can be processed at its destination with XML commands and application code, says Clear Methods CEO Michael Plusch.
"If you have a syntax that's compatible with XML and document representation in XML, you can have a Web-services platform that just lives in XML," he says, rather than the mix of programming and scripting languages that make up the typical Web site. One goal of XML as a programming language is to avoid the passing of XML data from Perl to Java to perhaps Visual Basic or C as it reaches its destination.
Plusch and co-founder Christopher Fry were employees of the portal software firm Bowstreet Inc. They began Clear Methods, a six-employee company, in 2001. The Water syntax was composed and Steam was first deployed as a run-time environment in March 2002; this version is the debut of Water with Steam Engine 3.10.
A document hand-off mechanism that's written in XML will be more versatile in handling XML data than a language like Java that struggles to make the connection. But Water and Steam Engine are intended as more than a handshake mechanism. Water is an object-oriented language, and programmers who learn it will build class libraries, a body of code from which a family of software objects may be rapidly built and modified.
There are few users to date, but one of them, Ben Koo, an engineering doctoral candidate at MIT, says he's been using an early version of Water for two years in a research project he directs on how to model complex hardware and software systems.
"It's a full-scale generic programming language, just like C or Java," he says. He uses Water because he can represent both processes and data through it. Water is compatible with the 1.0 standard of the World Wide Web Consortium, so it recognizes existing XML data.
Although it will be difficult to get application developers to learn a new language, Koo says Water will be easier to learn than other new languages because there are already so many XML-trained programmers.
With Water and Steam Engine, businesses that know little about each other's systems have a ready-made means of exchanging both documents and procedural logic. The processing logic can be included with the document and applied at its destination, Koo says. "The business world is always about coordinating information from different service agents"--applications running on unidentified computer systems, he says.
The difficulty of achieving shared definitions of data, document formats, and business logic is one of the main barriers to quick, automated exchanges between business partners, Koo says. Using Water, programmers will be able to build systems "that shave off ambiguity" inherent in XML exchanges by not only describing data in a document but also applying rules as to what should be done with it. "It's absolutely brilliant. It kills two birds with one stone," he says.
At the same time, a Water programmer gets a standard object-oriented environment, a term frequently used to describe Java and the C++ languages in which many Web applications are built. With an object-oriented language, programmers can build an object or software module with certain procedures and data associated with it. They can then use a principle called "inheritance" to build another module with the same characteristics and then add or modify them.
Says Plusch, "We're using XML as a lingua franca, not just as some static data structure but as a live language."