David Harris's Technology Blog

ColdFusion, Flex, and other stuff...   (and 338,402 hours, 11 mins in to my plan for global domination)

Search:

Calendar:

Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Subscribe:

Enter your email address to subscribe to this blog.

Archives By Subject:

Tags:

action script adobe air ajax cfug coldfusion flash flex frameworks free software fxug general jpgmetadatareader mac off topic opensource papervision spry

Recent Entries:

No recent entries.

Top Posts:

Recent Comments:

Top Commenters:

My Links:

RSS:


Frameworks: Whats good about them, whats bad about them.

Frameworks: Whats good about them, whats bad about them.

In my years programming, I've always advocated the use of frame works. While I have only every really used a handful of them myself, (across CF,PHP and Flex) there are underlying principles around frameworks that really appeal to me.

But there are things about using frameworks you need to keep in mind.

But first, some of the good things (a non-complete list):

1. Most frame works have the MVC paradigm at their heart. This is GOOD

2. Force some degree of fore-thought before launching in to code

3. If you use a documented framework consistently, handing over of projects is simpler. (key word "documented"! )

4. Enforces a structure to your code base, which, once you understand it, *usually* means you can de-bug it better

Now the bad things (also a non-complete list):

1. You are trusting code you may not fully know, or even blindly trusting this code.

2. Frameworks are not "silver bullets" that make you problems go away.

3. "Roll your own" frameworks are often badly documented, so hand over can be a real nightmare

4. You can get (feel?) trapped in a framework if it starts to fail you in anyway

5. There is no "perfect" framework. All have pros and cons. You'll need to find them and work with them.

I used to say "The more something does for you, the less you can do with it". Of the past 5 or so years, this statement is less and less true, as there are some very comprehensive frameworks out there that do a very good job of empowering you to do what you need to do, while doing a lot of under-the-hood stuff too.

To expound on a couple of the "Bad things"

While trusting code you don't "know" isn't always bad, it is bad if you start having issues with it. You are faced with some options.

- Abandon it

- Dig in to it and "learn" it so you can fix it

- Work round it's limitations

While I like using frameworks where I can, there is always the "can-o-worms" fear that maybe framework "ABC" or "XYZ" isn't quite a clever as I was expecting under the hood...

On the non-silver bullets of frameworks: sometimes it seems (particularly in the "Which framework is king" flame wars discussions), that people are looking for a framework to make all the hard work go away.

Unfortunately this isn't what frameworks are for or about. Which ever framework you pick, you will have to learn how it works.

You will be slower with it than not using it at first. You will be faced with learning the framework AND solving the problem(s) you are developing to.

But...

- the more you use it, the faster you will get at it

- When faced with problems, you'll know how to solve them within the framework, so you time isn't eaten up with "what goes where", but you can focus on the problem at hand.

While the above is by no means complete, I had to let it out somewhere! Thanks for listening!

PS: I have nothing but absolute respect and props for the men and women who give up so much of their (usually personal) time to create/code and manage any framework! My hat is off to them!

PPS: One other thought: A lot of what I've said above is also true for application platforms too!

Transfer 1.0 ORM is released!

Just noticed this on a mailing list:

Transfer 1.0 Release Candidate - Out Now!

Well done Mark!

Mark presented to the NZCFUG last year on TransferORM.

I'll be downloading Transfer 1.0 soon to have take it for a spin!

A couple of Flex Podcasts

Today I listened to the ColdFusion Weekly podcast.

The topic was Flex Frameworks Roundtable

Peter and Matt got together the different "voices" of the Flex Frameworks out there and got them talking.

Speaking personally the saying, "If all you have is a hammer, then everything is a nail" rings true for my experience with frameworks. I tend to find once I get my head-space in a particular framework I find myself approaching all the problems I need to solve within that framework.

In ColdFusion, "Fusebox" was that framework for me for a while, and currently "Cairngorm" is the Flex one.

While it is not a bad thing to actually learn a tool/framework well, it's great to listen to well respected members of the various framework communities flesh out what problems their favorite framework is trying to solve, and how.

A couple of the things that stuck with me are:

- the less "boiler plate" code you have to write to add functionality to an Application, the better

- MVC is not a framework, but applications should be MVC, no matter what framework/approach you take [that's a *whole* other blog post I've been thinking about for a while now!]

At the end of the day, no matter what framework/style/approach you take, if you are going to create a non-trivial application, there is still a lot of work to do! Even if you use one of the plethora of code-gen tools out there, you will still have a lot of leg work!

Near the end of the podcast (64mins) there is some great talking about what these guys would like to see in Flex/Framework in the future.

Well done Matt and Peter for setting this up, and thank you!

I also listened to this one, which is great for a more in-depth on Cairngorm: www.theflexshow.com: Universal-Mind-Cairngorm-Extensions-w-Thomas-Burleson

Enjoy!