Friday, April 10, 2009

More Effort Should be Made in Developing, Improving and Using Frameworks or Libraries


Each year, hardware is getting faster and faster but the state of software technology is not keeping up.

Sure, software system requirements are also increasing. We need more graphics capability, disk space and memory (video and system) to run newer programs. However, this does not automatically translate to a corresponding increase of features in more or less the same magnitude. You can always write a more bloated program, if that’s what you like but an optimized and efficient code is more difficult to develop.

Faster hardware and roomier primary and secondary storage allows us to add more features to our software; but to do this without introducing bugs to supposedly stable versions, we need to take a hard look at frameworks.

Frameworks take code reuse a step further. It not only allows you to do away with recreating the solution to a problem which was already solved elegantly, but also provides a guide to the overall architecture or structure of the application. This makes applications more robust and more maintainable.

Fortunately, there are many general and special purpose frameworks available today. We have the Java Native Interface, Rails and Zend Frameworks to name a few. I’m just not sure how often these frameworks are used in modern software projects.

The open source community could also benefit with the availability of frameworks because more complicated applications can be done sooner. With frameworks, open source programmers could better compete with proprietary software companies with deeper pockets.

Frameworks are an important part of a modern developer’s toolkit. It would be nice if more open source frameworks would be available for more specific problem domains in addition to current general purpose frameworks. This will help a lot in the development of software.

Stumble Upon Toolbar Add to Technorati Favorites Delicious Add to Mixx!

2 comments:

  1. Frameworks are excellent solutions but they have one problem.

    The problem with frameworks is that sometimes they give us more than what we need. Therefore if I need a function X i should install the entire framework to get that.

    Compromising my process memory and disc space to acheive that, this will be backfire on the performance of my application. I rather write the function from scratch and know how every line is getting executed if I am willing to look after the performance...


    Unless the framework is designed to be completely object oriented and de-coupled from its components so I can install exactly what I need.


    Thanks cody for a great post.

    ReplyDelete
  2. Hi, Hussein. I just came back to blogging and have a lot of catching up to do... Good thing that I have a month's worth of post which will publish themselves even when I'm off. BTW, the posts you see now were written about a month ago and what I'm writing now will be published a month from now—call it a buffer of sorts ;)

    As to frameworks, yes, that's the problem—it's a package deal. So, you install more than what you need. That makes them unsuitable to smaller projects but can be a big advantage to bigger and more standard ones.

    Ultimately, it's a decision every developer should make depending on the current project. If their current project needs a lot of the functionality of a given framework, it might make sense to make use of it; but if it only makes use of a small set of those functions, then it may not be wise to use it and all it's other unnecessary code.

    ReplyDelete

The main rule in posting comments here is simply to act the way responsible adults should and have fun.

Posts You Might Be Interested In