Pros And Cons Of Using Frameworks


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 of using a framework


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.


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.


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


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



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.


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 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.



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.



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.


PHP Frameworks


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.



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



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


Mobile Frameworks

jQuery Mobile

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 is a file package designed to help you create your own iPhone, iPod Touch and iPad compatible website or webapp.



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.


Ruby Frameworks

Ruby on Rails

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

Ruby on Rails


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



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


CSS Frameworks


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


960 Grid System

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


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.



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.



  1. Mikul

    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.

    • JoeCasa

      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.

  2. 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.

  3. Sonia

    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.

  4. Mikul

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

  5. Ruben D'Oliveira

    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.

  6. Wype

    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!

  7. Jasmine

    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. :)

    • Ruben D'Oliveira

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

  8. Toutix

    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…

    • Ruben D'Oliveira

      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.

      • aditia

        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

      • 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


  9. 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?

    • Ruben D'Oliveira

      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.


    • 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.

    • Shane

      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.

  10. “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.

    • Ruben D'Oliveira

      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

    • Ruben D'Oliveira

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

  11. Fabio

    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

    • Ruben D'Oliveira

      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