MIL 2.0 is AJAX in disguise!
AJAX is an emerging standard for architecting more web applications that communicate asynchronously with a server without adversely impacting the user experience. The standard leverages HTML, Javascript, and some of the “hacks” built into browsers to create much more usable interfaces that don’t do a server hit every-time you click on something. In both concept and in practice this is EXACTLY the way MIL works.
Moblet Instruction Language (MIL) is a declarative language that enables a developer to author a cross-platform mobile applications (a.k.a. Moblets) using only XML, Script, and XPath. MIL is compiled into byte-code by a hosted gateway server and delivered to any device capable of running the Moblet Runtime Environment (MRE). Data requests from a device can be defined synchronously or asynchronously using the <xmlservice> and <soapservcie> tags declarations. These services are invoke in response to events trigged by the system and the results are then “data-bound” to UI elements using an XPath expression syntax.
The are several advantages of MIL over traditional AJAX on the web:
- Zero Complexity: Server-side developers will NOT have to deal with presentation logic when generating the XML content needed by the client.
- Single standard for invoking XML services: AJAX developers today need to leverage browser specific “hacks” and APIs to invoke XML data services. With MIL this is simple and consistent … no “hacking” required.
- MILScript is the same on every device: Unlike Javascript, there is only a single implementation of MILScript irrespective of the device platform running it. When you create a Moblet using MIL and MILScript it WILL work consistently across devices.
- Debugging is simple: Unline AJAX, developing and debugging a Moblet is simple … server code is server code and debugged as server code … MIL and MIL script are debugged using the Emulator and Eclipse plugins that come with the MRE SDK.
- NO Viewable Source: MIL is compiled into bytecode and delivered to the MRE via the mWorks gateway … there is no way for an end-user to see any of the source code.

