Pros And Cons Of Using Frameworks

Posted in Tips, Tools, Web Design • Posted on 28 Comments

Sometimes you should ask yourself, why you need to do the same thing everyday when there’s a new bridge to shorten the path. Think of a framework as a bridge that will help you code faster and easier. Did you notice I didn’t include the word “better” in the last sentence? Faster and easier doesn’t always mean better, but we will get to that later.

First things first, so what is a framework really? It actually depends on the context it is used. It can be defined as an abstraction tool that makes it easier to develop applications and reuse code.

“The framework aims to alleviate the overhead associated with common activities performed in Web development… and they often promote code reuse.”

Like everything else, when it comes to its use, a framework has advantages and downsides. Below is a list of some important facts you should consider, before you decide to start learning or using one.

Pros

Pros of using a framework

Efficiency

Tasks that usually would take you hours and hundreds of lines of code to write, can now be done in minutes with pre-built functions. Development becomes a lot easier, so if it’s easier it’s faster, and consequently efficient.

Security

A widely used framework has big security implementations. The big advantage is the community behind it, where users become long-term testers. If you find a vulnerability or a security hole, you can go to the framework’s website and let the team know so they can fix it.

Cost

Most popular frameworks are free, and since it also helps the developer to code faster, the cost for the final client will be smaller.

Support

As any other distributed tool, a framework usually comes with documentation, a support team, or big community forums where you can obtain quick answers.

Cons

Cons

You learn the framework, not the language

I believe this to be the major problem. If you’re using a framework and you know very little about the language behind it, you will learn the framework and not the language itself. The way you code jQuery is different from the way you code javascript. Simple put, if you know jQuery, it doesn’t mean you know javascript.

Limitation

The framework’s core behaviour can’t be modified, meaning that when you use a framework, you are forced to respect its limits and work the way it is required. Make sure you choose a framework that suits your needs.

Code is public

Since the framework is available to everyone, it is also available to people with bad intentions. It can be studied in order to know how things work and to find flaws that can be used against you.

JavaScript Frameworks

jQuery

http://jquery.com/

jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change the way that you write JavaScript.

jQuery


Prototype

http://www.prototypejs.org/

Prototype is a JavaScript Framework that aims to ease development of dynamic web applications. Featuring a unique, easy-to-use toolkit for class-driven development and the nicest Ajax library around, Prototype is quickly becoming the codebase of choice for web application developers everywhere.

Prototype


Mootools

http://mootools.net/

MooTools is a compact, modular, Object-Oriented JavaScript framework designed for the intermediate to advanced JavaScript developer. It allows you to write powerful, flexible, and cross-browser code with its elegant, well documented, and coherent API.

Mootools


PHP Frameworks

CodeIgniter

http://codeigniter.com/

CodeIgniter is a powerful PHP framework with a very small footprint, built for PHP coders who need a simple and elegant toolkit to create full-featured web applications.

Codeigniter


CakePHP

http://cakephp.org/

CakePHP is a rapid development framework for PHP that provides an extensible architecture for developing, maintaining, and deploying applications.

CakePHP


Symfony

http://www.symfony-project.org/

Symfony is a full-stack framework, a library of cohesive classes written in PHP.

Symfony


Mobile Frameworks

jQuery Mobile

http://jquerymobile.com/

Query mobile framework takes the “write less, do more” mantra to the next level: Instead of writing unique apps for each mobile device or OS.

jQuery Mobile


iWebKit

http://snippetspace.com/projects/iwebkit/

iWebKit is a file package designed to help you create your own iPhone, iPod Touch and iPad compatible website or webapp.

iWebKit


DHTMLX Touch

http://www.dhtmlx.com/touch

DHTMLX Touch is an HTML5-based JavaScript library for building mobile web applications. It’s not just a set of UI widgets, but a complete framework that allows you to create eye-catching, cross-platform web applications for mobile and touchscreen devices.

DHTMLX


Ruby Frameworks

Ruby on Rails

http://rubyonrails.org/

Ruby on Rails is an open-source web framework that’s optimized for programmer happiness and sustainable productivity.

Ruby on Rails


Padrino

http://www.padrinorb.com/

Padrino is a ruby framework built upon the excellent Sinatra Microframework. Sinatra is a DSL for quickly creating simple web applications in Ruby.

Padrino


Bowline

http://bowlineapp.com/

Bowline is a framework for making cross platform desktop applications in Ruby, HTML and JavaScript.

Bowline


CSS Frameworks

Blueprint

http://www.blueprintcss.org/

Blueprint is a CSS framework, which aims to cut down on your development time.

Blueprint


960 Grid System

http://960.gs/

The 960 Grid System is an effort to streamline web development workflow by providing commonly used dimensions, based on a width of 960 pixels.

960 Grid System


YUI2

http://developer.yahoo.com/yui/grids/

The foundational YUI Grids CSS offers four preset page widths, six preset templates, and the ability to stack and nest subdivided regions of two, three, or four columns.

Yui2


Considerations

Now you understand why I didn’t include the word “better” on my first sentence. A framework can bring you several advantages and may suit your needs, but it also brings downsides to your projects. There are hundreds of frameworks out there, so be sure to choose carefully, if you plan to use one in the future.

18 Written ArticlesWebsite

I am a Portuguese UI/UX designer, visual designer and writer. I have a Bachelor's Degree in Information Technology and Multimedia and I'm addicted to web technologies and design. Feel free to check my work on Behance or Dribbble. You can also follow me on Twitter.

28 Comments Best Comments First
  • Antown

    Monday, May 30th, 2011 07:40

    4

    “You learn the framework, not the language” – totally agree. First you need to learn a programming language. And only then can think how to make writing programs easier to use ready-made solution.

    +2
  • Dominik

    Monday, May 30th, 2011 10:12

    6

    There’s one important “Con” you overlook: Performance.

    Frameworks often come with a ton of functionality and you usually need only a tiny bit of that in your app. You need to load (and compile) includes, functions could handle various special cases while you need just one, …

    Every page loads jQuery nowadays – to do what? A little fade and innerHTML replacement?

    Want to use the Zend Framework MVC? Get ready to force your webserver to load 25 (!) includes on every page.

    Call me old-school, but is optimizing your code dead?

    +1
    • Shane

      Monday, March 19th, 2012 08:47

      28

      What does it matter when my internet downloads at 700kbps? I can download that extra JQuery file in seconds and it’s in my cache for the rest of the site.

      0
    • Ruben D'Oliveira

      Wednesday, June 1st, 2011 20:57

      14

      Thank you for your input.. you are absolutely right. I’ve missed that one.
      The purpose is to list just the main pros and cons, and get criticized with people’s own ideas.. but performane is definitely a major con. I will include that one later.

      Thanks

      0
    • Daniel H Pavey

      Tuesday, May 31st, 2011 13:59

      7

      I totally agree Dominik

      This is one of the things I don’t get….

      Why use a massive code library to e-mail a form…!!

      0
    • Ryan Carson

      Wednesday, October 5th, 2011 10:34

      26

      I completely agree with this comment, in fact, that is one of the main reasons I myself choose not to use frameworks where possible. 70kb of jquery for an image rotator? Pfft You can easily accomplish the same in ~2kb of javascript. (I don’t think people remember that page speed is a factor when it comes to SEO,etc) Instead of learning someone elses framework I consider it good practice to learn the underlying language and perhaps develop your own framework or list of functions / objects which can then be easy apated to customers websites without requiring 5 extra javascript includes.

      +1
  • chux

    Saturday, May 28th, 2011 13:16

    2

    Add to php frameworks yii. Is by far the best out there

    +1
    • Ruben D'Oliveira

      Wednesday, June 1st, 2011 20:49

      18

      Hi Chux. For the sake of simplicity I’ve just included a few, so I hope you understand. Thank you for your input :)

      +2
  • Jasmine

    Wednesday, June 1st, 2011 10:21

    9

    I think the biggest advantage on using frameworks is that it gets the job done more quickly. I like jQuery the most and have been using it in many of my projects. I have yet to try CSS frameworks though… need to check on that. :)

    0
    • Ruben D'Oliveira

      Wednesday, June 1st, 2011 20:46

      10

      Hi Jasmine.
      Yes, efficiency is definitely the big advantage. Thanks for reading :)

      0
  • Craig

    Saturday, May 28th, 2011 18:43

    3

    In our opinion, the pros definitely out weigh the cons.

    0
    • Ruben D'Oliveira

      Wednesday, June 1st, 2011 20:51

      12

      Every case is different. On a general concept, frameworks exists to simplify your work so yes, from that point of view you are correct. Thanks for reading

      0
  • Elliot

    Monday, May 30th, 2011 15:26

    5

    A whole other framework worth considering are CSS ones like Less for writing dynamic CSS & using variables http://lesscss.org/

    0
    • Ruben D'Oliveira

      Wednesday, June 1st, 2011 20:58

      15

      Thanks for the suggestion, Elliot :)

      0
  • Ruben D'Oliveira

    Wednesday, June 1st, 2011 20:53

    13

    Thank you for the suggestions, Gregory. I’ve just included a few for the sake of simplicity. There are hundreds of frameworks and everyone has their favourites. But thank you for the reference.

    0
  • Fabio

    Saturday, May 28th, 2011 16:02

    1

    What do you think about sencha and sencha touch (ext js)?? Why no one words abput them? I have to choose one framework to learn for mobile/tablet development (after trying to solve too many problems through css coding) and I’d like to know your opinion..

    Always a great work, thank you

    0
    • Ruben D'Oliveira

      Wednesday, June 1st, 2011 20:50

      11

      Hi Fabio.
      I didn’t try Sencha yet.. but I believe it is indeed one of the best frameworks out there for that purpose.

      Let me know if you have any more questions. Thank you

      0
  • novini

    Thursday, June 9th, 2011 13:30

    22

    Firstly if you are working for a web company you must know how php frameworks are working and you must to learn about that. May be php frameworks are fastter than traditional php programming codes but you must spend some days or weeks learn them.

    0
  • Michael Wilkes

    Thursday, July 21st, 2011 18:15

    23

    Fabulous post. Thanks for putting all this work where we can benefit from it!

    0
  • Mikul

    Friday, September 23rd, 2011 16:57

    25

    did you ask if you could use this photo? I have my photos all marked all rights reserved and with my name on them. You have removed my name.
    It has been sold through Getty images and they have licensing rights that pay me when it is used.
    If you’d like to pay me royalties for it, then I will allow you to use it.

    0
    • JoeCasa

      Friday, October 21st, 2011 22:51

      27

      I was curious when I saw this comment so I followed the link in the photo and this one is marked “some rights reserved” and you don’t seem to have your name water marked on it. You did reserve the right of attrition so they do need to acknowledge the source of the image. If you really want it to be all rights reserved, you should go mark it as such.

      0
  • Sonia

    Tuesday, June 7th, 2011 11:19

    21

    Great post with learning ideas some of which is really new information for. However, i am learning. Thanks for the post. Your blog is very interesting.

    0
  • Wype

    Wednesday, June 1st, 2011 18:05

    17

    User of Ruby On Rails and jQuery, I’m of course an advocate of frameworks. I understand people who are concerned about performance, but when a web application becomes complex, these cons attenuate. In fact in a large project, it can be more optimized to use a framework and its well-coded methods!

    0
  • Mikul

    Friday, June 3rd, 2011 04:32

    19

    This photo is not a creative commons license and is available from Getty images.
    Please contact me

    0
  • Toutix

    Tuesday, May 31st, 2011 22:47

    8

    Worst blog post ever on frameworks. You’re a designer not a programmer… How can someone know JQuery and not know Javascript?!? Please learn programming before posting another word on frameworks…

    -2
    • Ruben D'Oliveira

      Wednesday, June 1st, 2011 21:22

      16

      Hi Toutix.
      First of all, inputs are always welcome.
      Despiste the fact that you like to “assume” things, I will try to post one more word on frameworks for you.
      Let’s first read things as they are: “The way you code jQuery is different from the way you code javascript. Simple put, if you know jQuery, it doesn’t mean you know javascript.”

      I actually should have written “if you know javascript, it doesn’t mean you know jQuery”. However, instead of pointing the “error”, you decided to take things down, and that’s a shame.. for you. Nevertheless, I believe the idea behind the sentence is pretty clear, and isn’t totally an error.

      0
      • aditia

        Sunday, June 5th, 2011 11:27

        20

        Hi Ruben, nice read, but I think a framework can help us to learning the core language itself, for example from my experience i’m using jquery and there is something that jquery cannot handle, it forcing me to learn how to do it in pure javascript, framework really saving time if your project in hurry,if you want to learn the deeper the language like pure javascript or php yup it’s better without framework

        0
      • zlori

        Monday, September 12th, 2011 13:27

        24

        Hey,
        I think even your first observation was right, it just depends on what do we mean by not knowing.. we have taught our programmers how to use jQuery w/o teaching them native JS, and afterwards they were not able to reproduce the same functionality in native JS…
        Just to give a very basic example, jQuery has built-in validation and error checking everywhere, something you have to add explicitly to your native JS code, so they code just stopped working at the first error.
        I wanted to add a note on the speed as well, but that would be another page so I just finish it here :P

        Cheers

        +1
  • Mikul

    Friday, September 23rd, 2011 16:57

    25

    did you ask if you could use this photo? I have my photos all marked all rights reserved and with my name on them. You have removed my name.
    It has been sold through Getty images and they have licensing rights that pay me when it is used.
    If you’d like to pay me royalties for it, then I will allow you to use it.

    0
    • JoeCasa

      Friday, October 21st, 2011 22:51

      27

      I was curious when I saw this comment so I followed the link in the photo and this one is marked “some rights reserved” and you don’t seem to have your name water marked on it. You did reserve the right of attrition so they do need to acknowledge the source of the image. If you really want it to be all rights reserved, you should go mark it as such.

      0
  • Michael Wilkes

    Thursday, July 21st, 2011 18:15

    23

    Fabulous post. Thanks for putting all this work where we can benefit from it!

    0
  • novini

    Thursday, June 9th, 2011 13:30

    22

    Firstly if you are working for a web company you must know how php frameworks are working and you must to learn about that. May be php frameworks are fastter than traditional php programming codes but you must spend some days or weeks learn them.

    0
  • Sonia

    Tuesday, June 7th, 2011 11:19

    21

    Great post with learning ideas some of which is really new information for. However, i am learning. Thanks for the post. Your blog is very interesting.

    0
  • Mikul

    Friday, June 3rd, 2011 04:32

    19

    This photo is not a creative commons license and is available from Getty images.
    Please contact me

    0
  • Wype

    Wednesday, June 1st, 2011 18:05

    17

    User of Ruby On Rails and jQuery, I’m of course an advocate of frameworks. I understand people who are concerned about performance, but when a web application becomes complex, these cons attenuate. In fact in a large project, it can be more optimized to use a framework and its well-coded methods!

    0
  • Ruben D'Oliveira

    Wednesday, June 1st, 2011 20:53

    13

    Thank you for the suggestions, Gregory. I’ve just included a few for the sake of simplicity. There are hundreds of frameworks and everyone has their favourites. But thank you for the reference.

    0
  • Jasmine

    Wednesday, June 1st, 2011 10:21

    9

    I think the biggest advantage on using frameworks is that it gets the job done more quickly. I like jQuery the most and have been using it in many of my projects. I have yet to try CSS frameworks though… need to check on that. :)

    0
    • Ruben D'Oliveira

      Wednesday, June 1st, 2011 20:46

      10

      Hi Jasmine.
      Yes, efficiency is definitely the big advantage. Thanks for reading :)

      0
  • Toutix

    Tuesday, May 31st, 2011 22:47

    8

    Worst blog post ever on frameworks. You’re a designer not a programmer… How can someone know JQuery and not know Javascript?!? Please learn programming before posting another word on frameworks…

    -2
    • Ruben D'Oliveira

      Wednesday, June 1st, 2011 21:22

      16

      Hi Toutix.
      First of all, inputs are always welcome.
      Despiste the fact that you like to “assume” things, I will try to post one more word on frameworks for you.
      Let’s first read things as they are: “The way you code jQuery is different from the way you code javascript. Simple put, if you know jQuery, it doesn’t mean you know javascript.”

      I actually should have written “if you know javascript, it doesn’t mean you know jQuery”. However, instead of pointing the “error”, you decided to take things down, and that’s a shame.. for you. Nevertheless, I believe the idea behind the sentence is pretty clear, and isn’t totally an error.

      0
      • aditia

        Sunday, June 5th, 2011 11:27

        20

        Hi Ruben, nice read, but I think a framework can help us to learning the core language itself, for example from my experience i’m using jquery and there is something that jquery cannot handle, it forcing me to learn how to do it in pure javascript, framework really saving time if your project in hurry,if you want to learn the deeper the language like pure javascript or php yup it’s better without framework

        0
      • zlori

        Monday, September 12th, 2011 13:27

        24

        Hey,
        I think even your first observation was right, it just depends on what do we mean by not knowing.. we have taught our programmers how to use jQuery w/o teaching them native JS, and afterwards they were not able to reproduce the same functionality in native JS…
        Just to give a very basic example, jQuery has built-in validation and error checking everywhere, something you have to add explicitly to your native JS code, so they code just stopped working at the first error.
        I wanted to add a note on the speed as well, but that would be another page so I just finish it here :P

        Cheers

        +1
  • Dominik

    Monday, May 30th, 2011 10:12

    6

    There’s one important “Con” you overlook: Performance.

    Frameworks often come with a ton of functionality and you usually need only a tiny bit of that in your app. You need to load (and compile) includes, functions could handle various special cases while you need just one, …

    Every page loads jQuery nowadays – to do what? A little fade and innerHTML replacement?

    Want to use the Zend Framework MVC? Get ready to force your webserver to load 25 (!) includes on every page.

    Call me old-school, but is optimizing your code dead?

    +1
    • Daniel H Pavey

      Tuesday, May 31st, 2011 13:59

      7

      I totally agree Dominik

      This is one of the things I don’t get….

      Why use a massive code library to e-mail a form…!!

      0
    • Ruben D'Oliveira

      Wednesday, June 1st, 2011 20:57

      14

      Thank you for your input.. you are absolutely right. I’ve missed that one.
      The purpose is to list just the main pros and cons, and get criticized with people’s own ideas.. but performane is definitely a major con. I will include that one later.

      Thanks

      0
    • Ryan Carson

      Wednesday, October 5th, 2011 10:34

      26

      I completely agree with this comment, in fact, that is one of the main reasons I myself choose not to use frameworks where possible. 70kb of jquery for an image rotator? Pfft You can easily accomplish the same in ~2kb of javascript. (I don’t think people remember that page speed is a factor when it comes to SEO,etc) Instead of learning someone elses framework I consider it good practice to learn the underlying language and perhaps develop your own framework or list of functions / objects which can then be easy apated to customers websites without requiring 5 extra javascript includes.

      +1
    • Shane

      Monday, March 19th, 2012 08:47

      28

      What does it matter when my internet downloads at 700kbps? I can download that extra JQuery file in seconds and it’s in my cache for the rest of the site.

      0
  • Elliot

    Monday, May 30th, 2011 15:26

    5

    A whole other framework worth considering are CSS ones like Less for writing dynamic CSS & using variables http://lesscss.org/

    0
    • Ruben D'Oliveira

      Wednesday, June 1st, 2011 20:58

      15

      Thanks for the suggestion, Elliot :)

      0
  • Antown

    Monday, May 30th, 2011 07:40

    4

    “You learn the framework, not the language” – totally agree. First you need to learn a programming language. And only then can think how to make writing programs easier to use ready-made solution.

    +2
  • Craig

    Saturday, May 28th, 2011 18:43

    3

    In our opinion, the pros definitely out weigh the cons.

    0
    • Ruben D'Oliveira

      Wednesday, June 1st, 2011 20:51

      12

      Every case is different. On a general concept, frameworks exists to simplify your work so yes, from that point of view you are correct. Thanks for reading

      0
  • chux

    Saturday, May 28th, 2011 13:16

    2

    Add to php frameworks yii. Is by far the best out there

    +1
    • Ruben D'Oliveira

      Wednesday, June 1st, 2011 20:49

      18

      Hi Chux. For the sake of simplicity I’ve just included a few, so I hope you understand. Thank you for your input :)

      +2
  • Fabio

    Saturday, May 28th, 2011 16:02

    1

    What do you think about sencha and sencha touch (ext js)?? Why no one words abput them? I have to choose one framework to learn for mobile/tablet development (after trying to solve too many problems through css coding) and I’d like to know your opinion..

    Always a great work, thank you

    0
    • Ruben D'Oliveira

      Wednesday, June 1st, 2011 20:50

      11

      Hi Fabio.
      I didn’t try Sencha yet.. but I believe it is indeed one of the best frameworks out there for that purpose.

      Let me know if you have any more questions. Thank you

      0

Comments are closed.

54.167.10.244 - unknown - unknown - US