I'm curious what everyone thinks about Flex? There are a few great sample applications here as well.
For those unfamiliar with Flex, it's a setup that allows for creating rich Flash applications without the annoyance of doing it in flash (that's the extremely simple description). You write mxml (think flex's html language) and combine it with actionscript (think javascript, it's ecma compliant after all). One interesting fact about flex 2.0 is that you can create your application using the flex builder, and it'll generate your swf file. You could then technically host it anywhere, even just run it locally even without a server. The swf can call other scripts (think ajax requests to php pages), at which case you would need a server though.
I think it has a TON of potential that hasn't even been assessed yet, but as with any emerging technology it has it's problems. The fact that is breaks static URLs that can be saved is probably the biggest factor to me. The argument is that you wouldn't create a full application in flex, just the UI on a single page though, although that's not exactly the most convenient.
Another issue comes with the back and reload buttons. If you reload a flex app it'll reset everything, unless the developer is nice enough to implement some sort of state to save things. The back button works though, and will alter the state of the application.
If you're curious about flex, check out the sample aps. I'd be curious what some other developers think of it, and what would be the biggest issues stopping them from making a leap over to using it.

14 Comments
Oli
Written Jan. 17, 2007 / Report /
The problem with Flex: it's Flash.
Most of the sample projects seem to be commercial applications and that's the one place on the web that you really want to be accessible.
It is extremely hard to justify using flash for interface and content when JavaScript can provide exactly the same sort of "rich" environment while it can degrade so anybody can use it (depending on the developer).
michaelper22
Written Jan. 25, 2007 / Report /
I, a non-developer, played around with Flex for a little while and thought it was cool, although I never really got off the ground with it. I probably should have downloaded Flex Builder, but for whatever reason didn't.
With JavaScript, the support provided by various browsers varies, and will ultimately lead to developing different versions for each browser. On the other hand, a Flash application will run on anything with the Flash player. And if the user doesn't have flash, then the developer can give a nice friendly message saying that it's incredibly easy to install.
Oli
Written Jan. 25, 2007 / Report /
There are cross-platform javascript libraries. I use mootools because it's incredibly light on top of that.
Anyway...
Yes but it's not terribly easy to use if your eyes don't work. You can't ask the user to "stop being so childish and grow some new retinas".
If you know what you're doing, javascript can degrade well so you don't need it there at all. Once you have that accomplished and your HTML code is good, anybody (regardless of visual disabilities) can use your application.
Flex might be a nice toy but there's no reason anybody should consider using this in the real world for the sole version of their website. Some people provide HTML alternatives but what's the point when you could provide one good HTML version and everybody could use it?
tvwonline
Written Jan. 25, 2007 / Report /
I am a Flex Developer and can say that it is great! :-)
First up; I have found it very easy to mantain the state of a flex application in the browser's address bar. I use some opensource javascript code to help me out (called SWFAddress). So, where ever the user is in the application, the browser's address bar reflects it. Also means you can email someone a link to a particlar section and they go staight there.
Otherwise, Flex gives you a lot of very good components such as Windows, Panels, Text Editors, DataGrids, Tree Views, AutoComplete Fields, Combo Boxes Interactive Charts etc etc... Flex also supports fluid layouts, which means it can streatch when you resize your browser.
I should point out that Flex is really aimed at building Applications (eg I have writen a Support Ticket Application for a Software Implimenter (not websites)
Also, becareful judging some of the online demo apps you may have seen. I don't think they are anywhere near as good as what can be done, and if I say so myself, what I have been able to achieve with the Technology.
Adamfortuna
Written Jan. 25, 2007 / Report /
I've been starting to read tutorials but I hadn't heard about SWFAddress, I'll have to check that out.
As for the ajax vs flex debate; it's a sensitive subject. I do think that a perfect application written with ajax techniques is more robust and reusable by the greatest amount of people than a flex application. However, I think the css/js differences between browsers, even using libraries that minimize them, adds significant headaches to development. Unless you can say you only use one browser to ever test your site, you're using time to make sure it works in multiple browsers that could be avoided by using Flex.
Last I heard flash 9 was expected to hit 90% penetration this month (correct me if I'm wrong), while TheCounter puts Javascript useage at 90%, so creating an "html equivalent" for a flash site, would be about the same as creating a Javascript free version of a Javascript application. For sites where this is an issue I would go the Javascript route though, as the interface would be more similar than changing from the flash to html versions. Is it needed though? Does enough of your target audience lack javascript or flex to make it worth creating an alternate version? That will depend on the project I imagine, but the numbers are dwindling for both.
I'd agree that some amazing application are waiting to developed. With Apollo comming soon, should be an exciting time whether you're developing with flex or Ajax though.
Oli
Written Jan. 25, 2007 / Report /
The difference is, if the person is doing things correctly, you start with the non-javascript version. It's very quick and simple to add magical AJAX powers to an application once you've got all the back-end logic and a working non-js frontend. The AJAX "version" isn't a different version, per se; it is the HTML version with a slightly better UI.
With flash/flex, you're more likely to start with the beautiful flash design and then do the HTML. There's no overlap or reuse. You have to make two completely different logic centres and two different UIs.
As I said, nice toy but for anyone doing things seriously, that's it.
Mike
Written Jan. 26, 2007 / Report /
I think Flex sounds very cool, especially for someone like myself who can build very slick XHTML/CSS/JS interfaces but can't do much of anything with Flash. However Oli brings up a good point regarding the graceful degredation and accessibility issues that Flex has, so maybe we need to think about using Flex in different contexts.
What about using a Flex application inside of an Apple Dashboard widget? Now that would be something cool.
paularms
Written Jan. 26, 2007 / Report /
I was looking at Flex just yesterday and in all honesty, didn't see the point. Why pay $800+ for an application framework to build Flash web sites/applications when you've got free and open source technologies like PHP, MySQL and Javascript? This just seems like another overuse of Flash when it isn't necessary.
tvwonline
Written Jan. 26, 2007 / Report /
Flex is free. You can write Flex applications in notepad and compile them with out paying for anything (I did that for a while before Flex Builder was available for Mac.) Adobe sells Flex Builder to make developing faster and easier.
Also, I think it comes down to what you are developing. If you want to create simple little devices on a website, AJAX/Javascript is probably fine. However if you are wanting to build sophisticated business class web applications, I think you need to push the bar and create web applications with the same level of functionality as desktop applications.
Adamfortuna
Written Jan. 29, 2007 / Report /
@Oli
Very true, it's easier for the user to have an AJAX site that degrades into a plain HTML version than to have a flex version that degrades into a plain HTML version, and probably easier to do. For instance, Yahoo Maps is a pretty cool Flex App (flex 1.5 i believe), that I wouldn't consider a "toy" that has an HTML equivalent. For a non-internet giant, doing both of these might suck, but the question is - is it worth it? I guess the real question is if the alternate version is needed, which really depends if you're aiming your application at 99.8% (modern browsers?) of the world or just settling for 90%/95%.
I'm no flex expert, but I do think it's faster to create a Flex application than an Ajax application, with the added bonus of a more responsive interface. But I would concede that if you need that last 5-10% then creating a js/html version might be the best bet.
Alvinz
Written Jan. 29, 2007 / Report /
Paularms, I agree. Why pay $800+ for a flash imitation, when you can just buy the Adobe bundle that includes Flash, Dreamweaver, Fireworks etc. for less!
Oli
Written Jan. 29, 2007 / Report /
You're right. It does depend on what you're making.
For something UI and mouse orientated like a modern online maps application, I would say Flex and JS have about the same level of difficulty but Flex is packaged better to give help you make something faster.
The problem comes when you use Flex for sites that just don't need it for any flash-only features. Using Flex to display a table of data is like using Flash for navigation.
alamba78
Written Jan. 30, 2007 / Report /
OpenLaszlo anyone?
velcrow
Written Nov. 24, 2007 / Report /
We develope in Flex and find it a great tool for specific web applications that require a visually rich representation of data - in short its good for graphing and interacting with tabular data.
The other benefit is that, once developed, this application can also be deployed as an desktop app with the use of Air
Using Flex to build a "static" website would not be the best idea as it has a negitive impact on making the textual content as accesible as possible.