Why AJAX?
This one’s a dead give-away. I’ll spell it out anyway.
“AJAX is the most efficient way of delivering complex applications to the widest variety of end-users currently available.” – [me]
So why isn’t everybody using AJAX everywhere?
If you have to ask this question, you haven’t been paying attention. Everybody who is anybody is using AJAX across the board. The canonical examples are of course Google’s GMail and Google Maps. But those are just two examples. AJAX is now the standard for web applications and considered a requirement for most web sites.
So if you want to develop applications for the web, you have to do AJAX.
A lot of companies are having trouble with this but, if you’ve been following the whole Web-2.0 buzz over the last years, you’ll have noticed that the successful ones are doing just fine. So where’s the gap the struggling companies have trouble crossing?
AJAX development is hard. No, let me re-phrase that. It isn’t hard, it’s just time-consuming. The devil is in the details. And there are a lot of details. So if you’re developing a custom AJAX system from scratch, you’ll have to invest a lot of time in details (which costs a lot of time and is therefore expensive in more ways than the obvious one). On the other hand, if you have an existing web application and want to convert it to AJAX you’ll more than likely run into structural architectural problems that seem trivial at first, but will kill your efforts in the last mile. Details, details, details. They matter more than we’re comfortable with.
OK, so AJAX is generally tricky but required. But is it required for reasons that don’t have to do with presenting the end-user with an environment that resembles or behaves like a traditional desktop application?
Sure it is. It’s based on a well-established standard for transmission – HTTP. HTTP is by now the de-facto standard for application communications. Traditionally developers would implement a custom protocol on top of TCP, but these days everyone just uses HTTP. Browsers use HTTP, webservices are HTTP from end-to-end, chat systems use HTTP, even online voice systems use HTTP. And for corporate environments HTTP is a standard that integrates well with logging, caching, proxying, authentication and auditing requirements.
So AJAX uses a universal protocol, ties together standards that are available in just about every browser under the sun and requires no additional third-party components to be installed. I could list additional benefits, but rest assured – AJAX makes the plants grow, the sun go ’round and generally shines light on the world we live in.
Obviously, AJAX is the way to go.
At Mendix we’ve chosen to make AJAX our number 1 application deployment environment.
Let me take a step back here and explain that AJAX, for us, is just an environment. The JavaScript/CSS/HTML combination of AJAX is uniquely suited to mass-deployment. But as applications built in the Mendix environment consist mostly of models, their behaviour, navigation structures and layout – the deployment could just as well happen to a dotNET environment. We have core implementations of the run-time at various levels of maturity in different languages. Getting any of them to full GUI status would be a month or two of work.
But AJAX is the #1 target, so that’s where the development effort goes.
I recently gave a presentation with a colleague to a room full of techies and he changed the behaviour of the demo application on the beamer in the modeler to add some buttons and random things. After pushing the button for regenerating the configuration without restarting the platform someone immediately asked,
‘Hey! Where’s the compilation step?’.
Well, there wasn’t one.
All that had changed was behaviour and the (AJAX) client just picked up the new configuration and ran with it.
So sure, I spend a lot of time screaming at the inconsistent implementations of CSS, HTML, JavaScript, etc in different browsers. Timing issues, rendering status, host environment freakishness drive me up the wall sometimes. Getting the build systems aligned with modules, i18n, l10n, themability, custom layouts and outlandish icon-packs can make me re-consider my career choice.
But having a business analyst with zero programming knowledge put together a complex application in competition with a team of ASP.Net programmers and completing it in a fraction of the time is just so much fun to watch.
It makes it all worth it.








