Around two years ago, I wrote a little article about OpenLaszlo, a promising RIA framework, for richability.com in which I compared it to Adobe’s Flex platform.
Since a lot of time has passed and many things changed since then, I think it’s time for an updated sight on this technology.
Back in the days when I wrote that article, my main arguments were (summarized):
- Flex can only target the Flash Player while Laszlo offers both, a Flash compiler as well as a DHTML version.
- Flex is much more popular than OL (OpenLaszlo).
- Costs for OL development are lower since Adobe’s Flash Builder (formerly known as “Flex Builder”) is quite expensive while OL does not require a dedicated IDE.
While arguments 1 and 2 still apply, I need to correct my statements about #3:
Both, Flex as well as OpenLaszlo, are frameworks, which include a compiler and a component library. While Flex utilizes a combination of MXML and ActionScript3, Laszlo requires LZX and JavaScript knowledge. There is no much difference regarding the basic concept between these two but the developer must be aware that it’s the compilers job to transform these languages into plain ActionScript3 code. The reason for this is that the Flash Player, which runs these applications, cannot understand MXML, LZX or JavaScript. The only language it can process is ActionScript, which is the reason why a compiler is required.
Now, regarding argument #3 from above, it must be said that actually no money is required in order to develop Flex or OpenLaszlo applications, since both compilers can be invoked from command-line, similar to the “javac” command in Java. In order to create the source code, a random editor of choice can be used. In my arcticle on richability.com, I must admit that it looked like if OpenLaszlo development was completely free of charge while Flex always requires money. This was not correct. It is possible to create both, Flex and Laszlo applications, without paying a single cent.
Now, regarding coding comfort, it must be said that a special IDE for Flex/OL development would be nice. This is actually where things change: While Adobe offers the so called “Flash Builder”, a pretty expensive (but in the same time awesome) Eclipse-based tool for creating Flex applications (which is also available as a plugin-version), the OpenLaszlo founders do not offer a comparable IDE. There is a free 3rd-party alternative available though called IDE4Laszlo.
To sum it up: Flex development does not have to be more expensive than Laszlo, but it probably will be since serious application developed cannot be done without a good IDE these days.
Flex benefits
As already mentioned, application logic in OpenLaszlo is being written using JavaScript, which is a waay inferior programming language compared to ActionScript3. I know, JS is object-oriented and all but it lacks some very important features, like:
- Static type-safety
In ActionScript3, we have static types (except for arrays, but vectors are a good replacement), which means that a compiler can give warning/error messages regarding type incompatibilities before runtime. In JavaScript, this is not possible. - Interfaces
In huge projects, the concept of interfaces is often important. ActionScript3 supports these. JavaScript does not.
I really wished, OpenLaszlo would support a better programming language, like for example Java or C#.
Update: Thanks to P T Withington for the note below:
“OpenLaszlo as of version 4.2 (currently at 4.7) supports extensions to Javascript modelled on Actionscript3. You can create classes and declare interfaces and types just as in as3. When compiling to DHTML, the type declarations are not (currently) enforced, but they are if you compile to Flash.”
OpenLaszlo benefits
Some days ago, a guy called Femery Arnaud from France sent me an email asking why the Flash-compiled versions of Flex are so much bigger than the ones from OpenLaszlo. According to a test made by him, a sample project consisting of a DataGrid, a tree component and an image required 2.5MB on Flex and only 250KB in OL.
To be honest, I didn’t really have a quick and smart answer since I never had a closer look into file-size related issues between both technologies. My guess was that this has something to do with the efficiency of the framework-compilers as well as the complexity and size of the UI component libraries but I couldn’t say for sure.
However, it seems like OpenLaszlo applications require much less space then their Flex-pendants if they are compiled into Flash. This fact should not be disregarded since there are still many users out there with small bandwidth internet connections.
The rise of the underdog
Due to the hype about HTML5, recent debates around Flash have probably made some developers feel uncomfortable about their future and rised some questions like for example: “Will Flash still exists in 4 or more years and is there still going to be a demand on Flex developers as there is today or is it better to switch to HTML5/JavaScript development now?”
To be honest, I have similar thoughts going around my head and I don’t have a real answer to this, but there are some facts which we are already aware of today:
- HTML5 definitely has the capability to be a replacement for many use-cases which made Flash required on the web.
- HTML5 is still in its baby-shoes. Neither is its specification finished, nor are the implementations in today’s browsers perfect.
- There are still some users out there surfing the web with HTML5-incompatible browsers.
- Flash requires a plugin which implies the fact that some users, who do not have it installed, are being prevented to access Flash content.
- Many people do not like Flash due to instability reasons. I know, this is not a hard fact, but I hear this complaint pretty often.
- HTML5 has no support for binary sockets and web-cams.
Keeping these informations in mind, I wouldn’t say that Flash gets completely “killed” by HTML5 but I think it’s reasonable to say that it will probably reduce the demand of Flash (and their developers) in the future. It is just a matter of time.
Now, here comes the bridge to OpenLaszlo since its one huge advantage compared to Flex is its compiler feature of giving the developer the opportunity to choose between Flash and DHTML output. According to rumors, even Silverlight and SVG output is being planned.
So, what does this mean to the developers? – Actually quite simple. Learning OpenLaszlo gives one the ability to target different platforms with one code base. Your customer does not want Flash? Flip the DHTML switch and you’re done. This feature makes the requirement of learning multiple additional technologies like GWT or Silverlight redundant and could give Laszlo a big boost regarding popularity among RIA developers.
OpenLaszlo as of version 4.2 (currently at 4.7) supports extensions to Javascript modelled on Actionscript3. You can create classes and declare interfaces and types just as in as3. When compiling to DHTML, the type declarations are not (currently) enforced, but they are if you compile to Flash. We are closely following the evolution of HTML 5 and Javascript and plan to take advantage of them to give better and more rigorous performance in DHTML in the future.
Hey, thanks for that hint.
I’ll update my post regarding this.
Just a note on actionscript IDEs for use with the FlexSDK – FlashDevelop is a highly competitive, free open source editor. To put it simply, I own Flash CS5 and Flash Builder 4 (the new Flex Builder), and I do almost all coding in FlashDevelop. For pure actionscript coding, many people just feel that it’s better than any of the commercial offerings. Code completion and generation resemble Visual Studio more than Eclipse, so for people who prefer Microsoft’s IDE, FlashDevelop will probably give them a more favorable impression than Flash Builder.
And another comment on costs: paying a few hundred $/EUR for a good IDE doesn’t really make a difference in larger projects. If the tool saves you a week of work in a 3 months project, you are definitely going to save money.
It’s great to have FlashDevelop, Flash Builder 4 and other tools for Flex development. I know many excellent developers that don’t use any IDE, but if you have a .NET/Java background, you are probably looking for good tool support when you learn a new programming language.
You’re absolutely right, Raju.
Besides the features of modern IDE’s that provide code assistance (e.g. the new web-service integration in FB4), I’d be nothing without at least FB4’s debugger and memory profiling tools.
Regarding costs: Paying a few hundred bucks is probably not much for a small to big company but if I were a lonely freelancer and had to spend thousands of $$$ just for Adobe’s yearly Creative Suite update (including Catalyst, Flash Builder, Illustrator, Photoshop, Flash Prof.) in order to get the whole Flash workflow, I’d probably jump from the next bridge.