Dare Obasanjo
and
Shelley Powers have been blogging
about whether or not AJAX has a future, and what are the candidates for something to displace it. Timely,
as I've been looking at some of this stuff recently, trying to get myself to play a bit
in the client space.
Dare notes the development process is "a mess". I'm actually ok with it; it's not so terrible
to not have a completely integrated development environment to do ALL your work. Even with
Eclipse as my primary development IDE, I still have to shell out to PhotoShop or The Gimp
to edit images. And I like that most of the tools are replaceable. I can freely move
between Eclipse, TextMate, BBEdit, whatever, to do my raw text editing.
My problem is the mess that is DHTML development. Face it, JavaScript is a bit of a
mess. As an OO fan boy, I like to frame solutions to problems in classes. And to do
that in JavaScript is not terribly clean, certainly not intuitive. Most of the IBMers
playing in the AJAX space that I know, are using
dojo, and rave about it. Dojo adds a bit more
to the learning curve for JavaScript, and I've not found a lot of decent documentation
for it either. My take on dojo is that I need to know about all the wonky stuff in
JavaScript, and HTML, and CSS, and then dojo itself, to get something done.
Which led me to start looking at
Flex.
There seems to be lots of good doc for Flex, and while there's certainly another
learning curve involved, over the top of whatever JavaScript you already know
(because they use a next-gen JavaScript called ActionScript), the one nice this is that
it's fairly self-contained. I can build out a lot of functionality in single .mxml
files. There's not really an attempt to build a higher level framework over the top
of the legacy of HTML, JavaScript, and CSS.
This kind of suits me, and since I tend to be a bit of a contrarian anyway, suits
me even better amongst my IBM colleagues :-)
Dare also bring up
WPF/E,
but I'm not going to give it a
serious look until I hear they have some semblance of a story for Linux.
Now, back to the matter I started with: Flex or AJAX; will one win over the other? I doubt it;
each has their place. Think about this: could you build a GMail with Flex? The answer is a
relatively simple "no", I think, because there's a critical bit of functionality that Flex
does not provide: being able to imbed rando HTML in your app.
Flex seems a bit constrained here.
However, since a lot of email comes over as HTML now adays, how on earth are you
going to render it in your app? At best you'd need to do this as a hybrid
app; part Flex, part HTML. Great (not). Exact same argument for Google Reader.
Another pain point is printing.
The printing story for Flex is pretty low-level.
Sometimes I just want to 'print the page', but it's not completely clear to me how well that would
ever work out.
So I'll claim there are certain apps for which Flex is simply not appropriate.
And there are other apps, for which Flex will be just fine.
For my own selfish purposes, I actually do want to play a bit more with the weird and
wacky MDI-ish mini-windows in my browser page thing a bit more. That's me, I'm a geek.
And Flex seems to have a better story there, for now.
And I need to start doing some homework on
Apollo.
In a stroke of complete 'small world', I found the flickr picture above via
a search of "flex".
It's from dIon Gillard,
a name I remember back from the happy REXX years. Script on!