Subscribe

  • Subscribe  

Anti Flex Frameworks, Shall We?

Posted by Charles | July 28, 2008 .

Are frameworks healthy supplements or slowly-but-surely poisons to the young RIA world, especially beloved Flex? Are those design patterns the steroid pills or wight-loss metabolism justified medicine?

Take a look at what Yakov Fain came up with based on the PureMVC framework:

image Anti Flex Frameworks, Shall We?

It is the PureMVC workflow Fain draw after exploring the code. I’m amazed and disgusted by seeing so many “junks” injected into a Flex application via a framework.  As Fain stated, “Overall, PureMVC seems to be over-engineered. The learning curve is steep, too many tiers, dependencies, singletons. ” Is that a common problem to all the frameworks?

We really need stop taking a RIA as a whole world and applying your hard-earned skills and knowledge accordingly. A RIA is just a small portion of what you will build in the real world. Harry Vikatos’s What Can be Behind Flex illustrated what the full RIA enabled application looks like.

I believe (am I wrong) most of the people developing frameworks for Flex/ActionScript are/were good Java developers. What they are doing is pretty much the same, applying those design patterns and what have been done on J2EE world, and porting them into the UI centric Flex world.

That’s where the problem comes from.

The J2EE world is server centric. Many of the patterns implemented inside those J2EE frameworks are meant to be able to get deployed across multiple servers. That’s why there are blocks, layers and tiers, all sorts of separations and abstractions. And now, dragging all these into UI centric technology space, that’s very problematic, or will be.

Besides, have you noticed that the Java world is over packed with frameworks, which are becoming heavy languages the Java developers have to carry? If you are supper Java programmer, you are not good enough and can’t start putting down single line of code before learning all sorts of frameworks/packages, Spring, Hibernates, etc. The list goes longer and longer.  Just wait till that single line of code broken and start the debugging endeavor. I know that’s the reason some Java alpha geeks love Java, the playground is getting bigger and the maze is getting more complex.

Is Flex heading to the same direction with increasing number of frameworks be developed?

Don’t get me wrong, I can argue strongly for the frameworks in terms of the necessity and the benefits. I’m just concerned when people stack a framework into theirs apps, see the app running and get thrilled about it without knowing what they are getting into.

Although I can’t see why we should anti-framework, it’ll be nice the gurus in the Flex community start leading the community to cross the UI space and step into the bigger IT world. It’ll be great if we can find a middle ground for Flex, for frameworks, for servers and for the web could. Can we, shall we, will we do that?

Leave a Comment

If you would like to make a comment, please fill out the form below.


Name

Email

Website

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word

Comments

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word


Related Posts

5 Comments so far
  1. JulesLt  July 28, 2008 9:51 am

    While Java may have a proliferation of web-development frameworks, a lot of the design patterns (including MVC) come from client-side UI development, largely C++. Cocoa/OpenStep is as much a framework as it is a set of APIs.

    I’m not disagreeing with the basic point (too many frameworks are a bad thing, and a too complex framework can get in the way of a simple job) just saying that they evidently have a place in UI-centered development.

  2. James Long  July 28, 2008 10:55 am

    Using frameworks such as puremvc, has revolutionised the development speed and maintainability of the software I write.

    Some of my applications are now getting pretty big. As and as a consequence of using frameworks and design patterns, the complexity of the code has remained relatively flat even as the complexity of the software has grown.

    And some of my applications are a few years old now. There has been no negative consequence for using design patterns and architectural frameworks. Sorry, but there hasn’t even been one negative consequence. Everything is going just great.

    Sorry, but I don’t mind a proliferation of frameworks out there. The good ones rise to the top and the bad ones sink out of existence. Take what’s good, leave what’s bad and be grateful for the choice available and the vibrancy of the market.

    > The J2EE world is server centric. Many of the patterns implemented inside those
    > J2EE frameworks are meant to be able to get deployed across multiple servers.

    Maybe it escaped your attention, but the Flex world is also server centric. Very server centric. A vast number of Flex offerings out there in the real world use servers or multiple servers.

    > Many of the patterns implemented inside those J2EE frameworks are meant to be
    > able to get deployed across multiple servers. That’s why there are blocks, layers and
    > tiers, all sorts of separations and abstractions.

    No, that isn’t why there are all sorts of separations and abstractions. The separations and abstractions exist for several reasons, not least because this makes maintenance radically easier. The better the separations and abstractions, the easier it is to modify code without having unintended consequences.

    > Just wait till that single line of code broken and start the debugging endeavor.

    In my experience, the debugging process becomes radically easier when using design patterns and architectural frameworks, since there are now standardized mechanisms for initiating and responding to events, regardless of where or why they were triggered. When working in teams, this has radical productivity gains in development, maintenance and debugging. Even if people have never seen a section of code before, they already understand the mechanisms that make it all happen. Pure gold! Exactly the opposite of a “debugging endeavour”.

  3. julien  July 29, 2008 5:59 am

    Interesting article and “image”. Actually, it’s really a good overview of the patterns used it the framework. I use puremvc and/or cairngorm depending on the project, and they’ve been making me gain loads of time, write better code cause it’s usuable and understand the design patterns beeing used.
    I agree that in some cases learning a huge framework seems annoying, but most of the time those frameworks are really usefull. Last thing I wanted to add, is that if you’re discusted by that ‘diagram’, check the flex framework and we’ll talk about it :)

  4. Ricardo  July 29, 2008 9:54 am

    Have you tried Mate framework? We started a new Flex project using PureMVC but it was far too complicated. We then discovered Mate and it looks pretty simple. In fact, Yakov drew a diagram for Mate framework himself:

    http://flexblog.faratasystems.com/?p=342

    Much more simpler. Please tell me your opinion about this.

  5. Tom Van den Eynde  July 31, 2008 6:21 am

    I’ve used Cairngorm and PureMVC and I wasn’t convinced. I’m going to check out Mate – from what I’ve read it focuses on loosely tying stuff together without the overhead of mediators etc. If Mate isn’t really what I’m looking for then I guess I’ll have to come up with something simple to use myself :)

<

Direct TV Offers - usdirect has the best directtv deals