elarson’s posterous

 
« Back to blog

Losing Faith in HTML, Javascript and CSS

Lately, I've been doing a good deal of front end development and it has gotten to the point where Flash (Flex more specifically) is looking really appealing. The issue is that you can't develop and test an issue once. No matter how much you consider browser quirks, utilized tested javascript frameworks and known CSS techniques, you're still likely to run into browser bugs. Running into a browser bug is not a big deal in many cases, but as the code becomes more interactive, debugging an issue in one browser often introduces regressions in another.

For a huge majority of sites, this isn't an issue. When you think of news sites, for example, there is a limited number of interactions you need from the user. The primary use case is consuming content, which will most likely come in rather standard forms such as text, audio or video. When the primary goal of the site is to consume input from the user, things can get a little tricky. This is especially when you consider sites that make an effort to innovate the ways you interact with the application. Clearly, this is where the web is lacking and where the web is moving.

One proposed solution is HTML 5. This might very well help, but the problem is that HTML 5 will not necessarily provide tools for creating entirely new and innovative user interfaces. I suppose the canvas aspects might very well be where that can take place, but it seems like it doesn't really add anything new that is not offered currently through Flash.

In the past, I've tried to avoid Flash and its non-standard friends. Java applets seemed terrible when I first encountered them and while I did have an appreciation for some of the more interesting Flash designer sites, it wasn't text. At this point though, I'm questioning this allegiance to simple characters. There is a voice in the back of my head screaming about i18n and accessibility, but at the same time, there is a timer that constantly reminds I could be doing more interesting things with my time than tweaking pixels in Javascript and CSS.

I believed jQuery would save us all, and for the most part it does a pretty awesome job. The problem is not that the tools haven't improved, but that the model of rendered HTML has hit some pretty serious limitations. Manipulating the DOM has been pretty successful, but the rendering is never consistent, which means extremely defensive programming and eventually bland interfaces for users.

At this point Flash feels a little like Java. You feel a little dirty using it compared to something like Python, simply because there is a definite black box involved, yet, Flex is a great step and might be enough. There doesn't seem to be a huge difference in my mind between writing HTML for a proprietary browser and writing ActionScript for a Flash engine. Still, I would feel better if there were a Mozilla of Flash.

I'm going to try and work more with Flex if possible. There is still a voice in my head telling me that the accessibility is a problem and google can't read it, but I'm at the point where doing anything non-trivial in HTML and Javascript seems like I'm spinning my wheels. I'm sure working in something like Flex has plenty of issues. It did feel pretty similar to many of the GUI toolkits, non of which I had huge success with. At the very least, I know when it is working for me, it should work for everyone. That is a pretty nice feeling.