Thursday, May 13, 2004

Message exchange, stateless services and Domain Specific Languages in Service Oriented Computing

Via Radovan Janecek comes this interesting 3 page PDF Microsoft's Next Frontier.

Loose coupling via stateless, message oriented interactions. Yummy. Domain Specific Languages. Doubly yummy.

As I see it, C# and Java are today's assemblers. Speed of application delivery trumps speed of application execution 99 times out of 100 (welcome to capitalism). Then there is Moore's law. Add them together and I think its likely that the action will move to DSLs (Domain Specific languages0 that target the VMs for those two runtimes).

DSLs that allow developers to work naturally with documents as first class "objects" (for want of a better word) are required. In years to come, I hope we all collectively cringe at todays crop of Event/Pull/Tree/Marshalling abstractions for XML processing. LAML, xduce and HaXML offer tantalising glimpes of where we might be headed. (I predict lots of GUIs fronting these things).

DSLs that allow "event driven" business process description. PI-Calculus is on everyones lips but don't forget Petri-nets or even plain old Finite State Machines.

DSLs that embrace the dynamic typing implicit in moving "type checking" away from objects/records and into document types (grammers). (Jython for dynamic typing, maybe something like Haskell's polymorphic types with some sort of native type for Tree Automata ) for those who want compile time document type validation.

DSLs that cross-translate to XML (XNFs = XML Normal Form:-) but provide human-oriented grokkable syntaxes. RelaxNG Compact Syntax leads the way but I predict the XUL's/XAML's of this world will follow suit.

No comments: