Just spent the last few hours downloading and playing with the beta of Flex 3, Adobe’s IDE for Rich Internet Applications (ie. applications running on the Flash Virtual Machine) which is based on Eclipse and has an XML-based UI / form description language more or less like HTML.
I’m having two thoughts about it. One is a kind of sigh of relief. This is, after all, finally, The One. After years of fruitless searching I’m pretty sure here’s a framework I can settle down with and commit to, and start making babies with. At least, it’s more or less mature enough, handsome enough and well endowed enough to put these thoughts into a girl’s head. A browser and a desktop? Holidays in Windows, Mac and Linux? Own grid and canvas. Tabbed notebook and some cute chunky buttons.
And it’s all done in a way that’s pretty self-evident when you look at a few examples. Forms and input widgets are described in XML. They layout nice; and you can start banging them in and prototyping the look of your interface in a couple of minutes. The round-trip from coding to running and testing is a bit slow on my poor 512MB Vista laptop, but it’s going to be bearable. And the Eclipsyness of it all is comfortingly familiar if a trifle overblown.
As long as my next experiments turn out right (the one where I try to find a tutorial example of pulling data off a server over http, and the one where I try to compile with AIR into a stand-alone application) then I’m sold.
But there’s another part of me going, “huh? Is this all there is? WTF?”
I mean, it’s 2007 and I’m happy because I’ve finally found a way to make GUIs that’s sufficiently lower than my pain threshold that I might actually get a piece of software released again. Zowie! But that’s what I had with Visual Basic 6 – which came out in about 1997!
In fact, I was already a Pythonista before I started writing SdiDesk in VB. And I only pulled out VB (a language I thought I’d left behind for good) because I got impatient to see what the UI of an SdiDesk could look like and thought I’d prototype it. As often happens, the prototype spiraled out of control as I kept thinking, “maybe I can just also add … ” and within a month or so it had already started to grow into a real program. Another phase of development with some serious refactoring and cleaning up the internal architecture, and it was a quite respectable and powerful bit of software (If I say so myself; I’m talking about the time I made the tutorial screen-casts.)
(Then, of course, I hit the crisis of not wanting to be on the Microsoft treadmill and forced to upgrade to .NET; even though it was obvious that VB6 was as extinct as a very extinct thing from the Lower Devonian period. But also of not having any viable alternative. )
So there’s a sense that Flex smells extraordinarily similar. I can see how you can knock out your prototype interface and start building backwards from it. That feels good. That’s why it seems like this is plausible option to get development rolling again.
In fact, I was gchatting to Zbigniew earlier today, and realizd that all of this stuff is hardly a big advance on Hypercard back in 1985. Or perhaps Smalltalk 1972. Why the hell haven’t we progressed further? Why am I struggling on each new platform to rediscover the level of comfort I had on the previous one? What’s going wrong here?
I suppose it could just be that the idea of quick GUI builders is inherent in the idea of a GUI?
Or maybe we programmers of the noughties need to get our acts together and start coming up with serious new, cool shit. Stuff which couldn’t have been thought up in the 60s and 70s. Stuff which is radically easier and more productive than something we had 10 years ago. Something like
reinventing Lisp with a cleaner (non)syntax … erm … well anyway, I’m off to do more experiments with Flex and try to get it to talk to some kind of server.
If I succeed, then expect to see some interesting developments along the lines I mentioned earlier today … steps towards a new SdiDesk, possibly a GeekWeaver development environment … maybe even the long fabled, but never released SystemSketch. Or even the more outré things I’ve got buzzing around in my fevered imagination like “SexyCells” and “FlowerBrush”.
Of course, it still sucks that Flex / Flash seems to have no musical ability whatsoever so Gbloink! doesn’t look like an option. Which is a double pity because I think it would make a great Chumby widget and that would have justified me buying one.