TechWeb

Building A Better Web Client With OpenLaszlo

Apr 29, 2005 (11:04 AM EDT)

Read the Original Article at http://www.informationweek.com/news/showArticle.jhtml?articleID=163100013


The rich Internet application (RIA) has come a long way since the days of HTML and CGI. Today's technologies blend markup languages with object-oriented programming to create powerful Web clients. From JavaServer Faces to Macromedia Flash, and Microsoft's inevitable Longhorn distributed fat-client architecture looming in the distance, RIAs are creating whole new classes of interactive applications that are being used in many corporate systems. Ironically, most of these technologies are not open source, yet the companies that support them tout platform-independence.

CRN Test Center engineers found that the OpenLaszlo server, which is not well-known outside of the open-source community, is superior to many of these proprietary technologies. Unlike many proprietary RIA platforms, the Laszlo platform architecture is independent of its runtime environment. Not only the language, called LZX, but also Laszlo's runtime API is completely abstracted from the client runtime. Laszlo's LZX generates binary Flash code as its target output.

The language does not generate ActionScript because it treats Flash like a virtual machine. Since Flash can only execute byte code, it was the natural choice of Laszlo Systems and the open-source community to treat the player as the client runtime environment. Developers use LZX and JavaScript to build user interface components for Laszlo applications, eliminating the need for Flash authoring tools or Flash components to develop graphical user interfaces. What's more, LZX is event-driven, meaning the language does not use a timeline to display or activate graphical sections in a user interface.

LZX's power is apparent in the way it can simplify code of connected parameters from multiple tags using inheritance. Class tags can inherit other class tags and can expand on the code by reference. Instances of these classes are simply made below the tags. Instances also can operate dynamically by accepting parameters when values are not hard-coded in the classes. Class attributes that collect parameters from instances also can be constructed with relative coordinates that are based on inherited classes. The LZX language only supports single inheritance and does not include built-in security features. Only by convention can developers permit inherited classes. However, the language is not strong-typed, so it is more forgiving than C++ and Java. At runtime, Laszlo applications can accept attributes and methods. Unlike C++, an instance in LZX can have a method or attribute in it without being defined in a class. This feature makes LZX behave like a dynamic scripting language. In addition to being free, OpenLaszlo is superior to Macromedia Flex because all development is done in one environment. Even though Flex provides ActionScript generation, developers generally have to rely on the Flash authoring tool to make user interface enhancements and to debug complex ActionScript code requiring developers have to have two distinct development skills.

Laszlo can generate desktop applications, but the apps cannot run offline. Connection must be persistent with the Laszlo server for applications to function normally. Alternatively, Flash applications built with the Flash authoring tool can operate asynchronously with any server-side code.

To make OpenLaszlo compatible with most browsers, Laszlo applications can store temporary values in memory or in cookies. LZX does not include Flash's capability to store large data structures in temporary objects. Laszlo's open source group feels that this feature, while useful, is too closely linked to the Flash runtime environment.

According to Laszlo Systems, the company is committed to developing the LZX language and platform as well as the company's channel program. Laszlo Systems currently offers a single-tier partner program that primarily provides training, technical support and development expertise. Premium support is handled 24x7 by experienced technical engineers.