Monday, July 25, 2005

Programming Language: OpenLaszlo | Client Platform: Macromedia Flash Player

When I first started building my web-based Project Management application, Ataraxis Unity, I wanted the GUI to be nothing but XHTML and CSS. I wanted something simple and clean. I wasn't a fan of JavaScript GUI's. As a user I have found JavaScript to be "twitchy". As a developer I've found the programming painful. It was bad enough that I had to spend time getting everything to look the same between browsers, but now I have to get everything to behave the same?

So I wanted to build an amazing application with nothing more than XHTML and CSS.

The problem arouse when I started work on the task list of my application. What's a Project Management application without an awesome task list?! I just couldn't make it user-friendly enough with straight XHTML and CSS. So I started dabbling with JavaScript. I figured out how to dynamically add a row to a table using the W3C DOM. Man did I think I was the cat's pajamama's! With the help of QuirksMode.org, I was off to the races. (Here's some foreshadowing of my decision to not use JavaScript- I had to rely on a web site with the word "Quirks" in it. It is a great site if you're developing with JavaScript!)

I got more frustrated as time went on.

My development cycle (and thought process) was going like this. Get it working in Mozilla. Check it in IE. Damn, it's not acting the same. Scour the Internet for the answer. Getting it working in IE. Damn, it's not acting the same in Mozilla any more. Ok, I got it fixed and it's now working in both browsers. I wonder how it is in Opera. Ok, it's great in Opera 7, but has a glitch in Opera 6. I just won't support Opera 6, because I don't feel like debugging this. I wonder how this works in Safari? I don't have a Mac, so I'll have to write a script that demonstrates what I'm doing, email it to a Mac-owning friend and ask him to please run this in Safari and tell me what happens. Oh, and I'm not really sure if there is a difference between Safari 1.0, 1.1, 1.2, 1.3 and 2.0. I do know that David Hyatt has been bug-fixing like a fiend and Apple releases a new point release with every OS ugrade (I think), but they won't allow certain versions of their OS to upgrade to the latest version of Safari. But I can't remember which versions and which OS's - but it doesn't matter anyway because I'm not even sure if there are any differences to worry about. Shot! What about KDE Linux (Gnome's browser is built on Mozilla, isn't it)? Um, I guess I'll only support Mozilla on their platform because I really don't have the time or resources to figure out if it works in Konqueror - not to mention become familiar with all the variants of Konqueror.

I'm done with it. Congrats and good luck to all of the software shops out there developing with JavaScript and DHTML. But it's just not for me.

Enter OpenLaszlo and the Macromedia Flash Player.

OpenLaszlo applications are written in XML and JavaScript. The OpenLaszlo server then compiles the XML and JavaScript into .swf files, which run in the Flash player.

With OpenLaszlo's existing component and animation libraries I'm going to be able to create a better application for my users. I'll be blogging about as I march toward finishing my app. Stay tuned.

But while you're waiting....

6 Comments:

Blogger Maxim Porges said...

It's sad, but the JavaScript/DHTML movement is a lost cause. If there's anything that my experience as a web developer has taught me, it's that. RIAs are the future.

Unless of course, you want to standardize on one browser... and that's just a frickin' holy war, especially if you work in a shop with a bunch of web apps from a bunch of different vendors, all of whom standardized on different browsers...

- max

Monday, July 25, 2005 1:56:00 PM  
Blogger Kevin Dangoor said...

If you're looking for very broad browser support, I think you're definitely right about Flash being tremendously easier to deploy reliably.

If you're targeting only "modern" browsers (IE6, Firefox, Safari 1.2+), JavaScript is viable. IE6 is still the problem child... the best solution is to use a JavaScript toolkit that provides a bunch of the functionality and has already been tested.

MochiKit, for example, has automated tests for a great deal of its code, and the author runs the tests on IE6, Firefox and Safari regularly.

But, as I said at the start, if you need broad browser support, Flash can't be beat.

Friday, July 29, 2005 8:12:00 AM  
Blogger Michael Sica said...

Hi Kevin,

Thanks for dropping by and leaving a comment!

I agree with you in that modern browsers are a lot better at handling JavaScript. But I was still running into differences between Mozilla and IE's handling of the W3C DOM. It was driving me nuts!

I could have dealt with it, but since I've got the choice in technology, I (obviously) went with what looked best to me. :)

Thanks again for dropping by and leaving a comment!

Monday, August 01, 2005 8:37:00 PM  
Anonymous John Topley said...

I'm going to be really interested to see how it turns out. Did you give Ruby on Rails any consideration, Michael?

Tuesday, August 02, 2005 7:47:00 AM  
Blogger Michael Sica said...

Hi John,

Nice to hear from you again! I hope the sabbatical is going well.

I did consider RoR, but I'm sticking with Java. Even though I'm "taking a step back", I still have a lot of code in Java that I don't want to throw away.

Tuesday, August 02, 2005 9:37:00 AM  
Anonymous John Topley said...

Thanks Michael. I moved house last week and am in the process of re-establishing the cornerstones of civilisation i.e. broadband Internet access!

Tuesday, August 02, 2005 11:05:00 AM  

<< Home