Joshua Partogi recently posted Why You Might Not Want to Use Flex on his blog. I found this blog entry particularly interesting because Joshua does not focus on the usual criticisms of Flex (which often are actually of the Flash Player) and because Joshua's experience is almost exactly opposite of mine. While I have generally found Flex to be significantly easier to use than any other web development frameworks that I have used, Joshua seems to have found both Tapestry and JavaServer Faces easier to use than Flex. As Joshua alludes to in both his blog entry and the linked-to presentation Switching Paradigms: From Regular Web to Flex, it is really a matter of experience and perspective.
I appreciate Joshua posting this blog entry because it reminds me that not everyone thinks the same or shares the same experiences. No framework or tool or product can be everything to everyone all the time. However, Flex has really left an impression on me, on the vast majority of my colleagues who have given it a shot, on and many others whose blogs I read. We all come from similar backgrounds with strong Java experience and have been spoiled by the ability to write code once and run it on virtually any operating system. For us, the idea of a web application written in Flex that can run on virtually any web browser is "how things should be done." Having to write code to take into account different browser vendors and even different versions of the same vendor's browser and having to test our applications every time on several different web browsers seems unnecessarily time-consuming.
I can appreciate how Flex/ActionScript's static typing, class-based object-orientation, and obvious Java-influenced characteristics can be foreign to someone who spends most of their web development in the HTML/CSS/DOM world. While Flex does offer support for these specifications to varying degrees, it certainly is not exactly like these and does require some learning and a new way of doing things.
I'm a strong believer in "to each his own." For me and for many people like me, Flex is the best thing to come to web development in a long time. For others, they may be perfectly happy with what they're using and have grown comfortable with. I have found that the best motivator for me to learn a new language, technology, toolkit, framework, or other product is some pain with my current language, technology, toolkit, framework, or product. The pain has to be consistent enough and of sufficient degree to motivate me to look at something new. While I have found some corner cases with Flex that are a little tricky and have found some things I'd prefer to see implemented another way, I have not experienced enough pain to really consider an alternative at this time unless something revolutionary comes along.
Joshua's last paragraph provides the advice that I'd reiterate to anyone who is unhappy with their current web development experience: don't take my word, the word of other Flex enthusiasts, or the word of people unhappy with Flex as the final word. Because we're all different, we have to find what we each like. I think most people who give Flex a fair try will like what they see.
Michael Martin, a fan of both Flex and Linux, informed me of the recent release of an alpha version of Flash Player 10 for 64-bit Linux. He is excited about this and has been happy with its performance so far.