Jump to main navigation, main content

Archived entry | Matt Wilcox .net

Why I don't use frameworks

I don’t use frameworks, and rather than use one yourself I’d recommend making your own.

Frameworks are useful for speeding up the production of a project, once you’ve learned them. But until then they’re slow to use (because you’re working it out), hard to debug (because you’re working it out), and can limit your design - because you will end up altering the design to fit what you can do with the framework at the time.

Fine and dandy, but once you know one you don’t have those problems. You have others instead though, because you’re stuck with whatever limitations it has built in. All techniques (and frameworks, which are just a big collection of techniques) have a flaw somewhere - be it classitis, an inflexible grid systems, dictating mark-up, bloated file-size, or any number of other factors. If you only know that framework, you’re stuck with whichever drawbacks it has.

It’s far better in my opinion to learn the techniques yourself and make your own systems/framework. That’s why I do not use any frameworks even though I do look at a few to see what ideas and techniques they’re using. If I learn something new from one, I’ll usually incorporate it into my own personal “framework” (I use the term lightly, this is a starting point for new projects, not an all-things-to-all-men framework).

The only framework I’d say I do use and rely on is jQuery (which is a library rather than a framework, but still). And that’s grudgingly - I’m learning JavaScript to stop that reliance. I shouldn’t need to include a big library like that merely to achieve minor behaviour tweaks. Neither should you.

Comments

skip to comment form
  1. Shawn Hansen posted 21min, 38sec after the entry and said:

    The benefit you receive from a framework is the best and the brightest minds in the field working to solve a problem similar to the one you are working on.

    Staying away from frameworks is too much like "not invente here" syndrome.

    While you raise some good points and it sounds right, where would we be if we kept reinventing the wheel instead of standing on the shoulders of giants?

  2. Matt Wilcox posted 28min, 39sec after the entry and said:

    @Shawn - I agree with you providing you understand the framework. But blindly using one is just a different way to cut yourself using a more abstracted knife.

    It's not about 'reinventing the wheel' - it's about properly understanding the tools, their pro's and con's, and when to use what. I use *parts* of frameworks in my own framework. But I know my framework inside-out. Would I rely on one I don't? No.

  3. William posted 9 days, 4hrs, 14mins after the entry and said:

    (Late-comer to your blog. I really like it.) This is something I struggle a lot with as a perpetually over-committed perfectionist.

    I, too, have my own "framework" (that I iterate as frequently as schedule permits often by "borrowing" techniques I find upon the shoulders of assorted giants) so I'm past the point of using grid systems. I'm even getting better, like you are, about not gratuitously using jQuery.

    But I did use jQuery gratuitously once. When I was learning javascript. And I have used CSS frameworks. Mainly when I was still insecure about my backwardly compatibile box model chops and my ability to thoroughly test them.

    Which makes me think that perhaps the best way for a superduper busy working developer to use frameworks is sort of as "knowledge polyfills." Hacks required to shim the shortcomings in your current version of knowledge until you can do the necessary brain version update. Hacks that allow you to ship a project today, but that you hope one day will no longer be necessary.

    I'm sure there is a more proper technical distinction between a framework and a library, but reading you grapple with the two terms above, almost makes it seem like a "framework" is something you sense that you really ought to know yourself, where a "library" is a smarter person than you figuring out the canonical best way of doing things that there's no point in your messing with smiley icon: smile

  4. Cat posted 10 days, 13hrs, 21mins after the entry and said:

    I used zurbs foundation for my first responsive site. It really helped to get me going and understand the capabilities. But I spent a good chunk of my time today revisitng the site and removing unused classes to try and speed up my page load. In future now that I better understand how to build my own framework I will start from scratch and build my own. No harm in learning from the experts though!

  5. James Seymour-Lock posted 10 days, 22hrs, 18mins after the entry and said:

    Thats why you use and learn frameworks on personal projects to work out everything, know the framework inside out before doing anything else.

    That said, using frameworks for wireframing and mockups are great.

  6. MarkL posted 15 days, 5hrs, 56mins after the entry and said:

    Well, I love frameworks. jQuery is a definitely a great library to use. Big? Are you on a 2400baud modem? Get jQuery mobile then. AngularJS is another one that I am happy it exists.

    Frameworks/libraries simplify and streamline operations. I have no time to code raw JS, PHP or write MySQL queries. I can have an elegant solution do that for me while I concentrate in tasks that really matter. There's no need to re-invent the wheel.

From the archives

Other enteries filed under:

Web Development

Site information

Built with valid XHTML and CSS, designed with web standards and accessibility in mind. Best viewed in a modern browser [Firefox, Safari, Opera]

This domain and all content is a copy of my old website, for historical purposes only.