On Flex 19:13 on Monday

For the past two months I’ve been deep into a Flex project, trying to figure out best practices for Flex work. I can say I’m not happy.

In fact, I’m frustrated. I feel inadequate. I feel like I must know nothing about programming because a bunch of surely wise men and women have put together this beast of a framework, and I can barely manage. I struggle with the simplest of things.

On the other hand, I feel I would have finished the project already, were it not for the frikking Flex framework and the miserable Flex Builder built on top of the house of cards called Eclipse.

Discussing the project with my colleague (who has vastly more programming experience than I do), few things seem clearer every day:

  • Flex is barely production quality software. Depending on “in progress” software in a client project is a bigger risk than one would like to acknowledge.
  • Frameworks should be limiting, not flexible. The best frameworks enforce constraints. If you want to create something with what everyone can find their way, create a library instead.
  • The Flex framework seems to have a focus on getting designs from designers to programmers faster and easier. Witness Flash Catalyst for instance. But the things that are suitably effortless and quick to create in Flex are not much different from what you can achieve without Flash. And the JavaScript (etc) -based alternatives usually work a lot better, both from a user experience and a performance perspective. If you can afford living with the set of components provided by Flex and CSS skinning, then yes, you might get a working app out quicker with Flex than with browser standards.
  • When a problem arises, the time spent perusing the complexity of the Flex framework and the inexplicably inadequate documentation blow off all benefit gained from being able to build stuff quickly.
  • This is important: Efficiency in programming doesn’t come from being able to achieve a few simple things using many different constructs. Efficiency comes from being able to achieve many different things using few simple constructs.

Building a framework is an intriguing idea. Who wouldn’t want to create the perfect environment for creating perfectly executed projects, with ultimate ease. But it is so easy to go into space, and forget about the problems of the real world when looking at the beautiful view of the neatly organized framework repository through the tinted visor of the astronaut’s helmet. I know. I don’t like Flex (for now), and my instant reaction is that “I could do better!” Of course I couldn’t. Building such a huge framework is not a task for a single coder (if not for anyone).

I understand I’m in the learning phase with a new technology. But I also think learning anything new should be fun. It should be rewarding. It should not be about going home every day feeling like a failure.

Comments are closed.