Let me preface this article by stating that I am a pretty big fan of the Flash Platform. Over the last 5 years, I fell in love with Flash and the Flash Platform. Heck, I've been a comanager of the NorCalFlash User Group for the last 3 years.
But lately, that love affair seems pretty one-sided. I've been pretty wed to the platform for UI development, and even switched my role from an application developer to a front-end developer. I faithfully report SDK bugs, try to promote the various frameworks and practices behind Flex and try to defend it's position as a powerful and relevant platform for application development. Flex, on the other hand, really hasn't been all that committed to me. Instead, it's been out courting the mobile platforms, and has pretty much forgotten about me. So here I sit, pining for what could have been and pondering my future.
Really, most serious Flex developers will agree that Flex 4 was an unfinished product. The Tree control, Advanced DataGrid and several other components have yet to be replaced in the framework, leaving the developers with components that have literally dozens of bugs filed against them. In my project, I am working around serious bugs that have existed for three years or more in the Tree. Other components that were built in Flex 4.5 are still incomplete.
All this would be fine, if the project were truly managed as an open source project. The community could contribute to providing new components, and Adobe could continue to focus on their mobile initiatives. However, even though Flex is touted as an open source project, the community has very little control over what makes it into the product and when. We are once again at the mercy of Adobe dedicating resources away from the core and into emerging trends. To date, much of this has left many developers with a bad taste in their mouth, and some even have serious angst against the platform and Adobe.
To give credit to the development teams, some amazing functionality came out of both the Builder IDE and the SDK for 4.0 and 4.5 releases in terms of application development for the browser. However, when your days are spent deep in the SDK customizing every little aspect of an existing control, or building deeply complex controls from scratch, not being able to fix serious issues with the SDK that prevent you from delivering a quality product is frustrating and difficult to justifty after a long period of time.
What it's made me realize is that it's not just the Flash Platform. This occurs with EVERY platform I use that is vendor-specific and the source of that platform is controlled by the vendor. No, I'm not going to go all fanatical open source on you, but there's something to be said for being able to fix the bugs in the platform you are using WHEN YOU NEED IT. Not three years later.
Can I see myself using Flex in 4 years for my development platform? That all depends on where Adobe goes with the Flex SDK and the Flash Platform in general over the next year. Listening to the Adobe keynotes, one gets the impression that the web browser application developer is not high on their priority list for the Flash Platform right now. It's looking like I really need to be putting as much focus in the next generation UI platforms as I am the current platforms I am vested in.