Amber Weinberg: Freelance Web Developer specializing in semantic WordPress, Mobile, CSS and HTML5 Development

The Blog

You Don’t Need A Framework If You Have A Good Developer

Posted on 02/17/10 in blog, development about , , , , ,

Everyday I come across new CSS or WordPress frameworks that people claim you “must” use to be a good developer. I disagree strongly.Β For an idea of what some of these frameworks are, you can check out Thesis Theme, and SpeckyBoy’s post on the top 12 CSS frameworks.

A lot of clients try to push using a framework, because they believe that it will save the developer time to code, therefor saving the client money, and it’s better coding and great for SEO. Let’s look at why I believe all of these are false.

It Will Save You Coding Time

How will someone else’s code save you time? No matter how good another developer’s code is, it’s never like mine and therefor takes time to adapt to it and use it. You’re also going to have to devote time to deleting parts of the code and files you don’t need.

A better solution? Make your own bare bones framework. Include the code you know you’ll need in every site, like the head information, includes, navigation and footer.

This way, you won’t have much to delete or change, but it actually will save you time when beginning new projects, and the code will obviously fit in with the rest of your code in terms of style, spacing and organization.

It’s Better Coding

If you’re using a terrible developer who produces bad code, you probably shouldn’t use them if you’re actually worried about clean code. A framework isn’t going to help, because a bad developer is still going to create bad code within the framework itself.

Also, cleaner code is subjective to an extent. For example, I believe CSS that places the entire rule on one line is cleaner and easier to read than CSS that places each element on a separate line. For other coders however, the opposite is true.

Another reason I hate this assumption is that it assumes all developers are bad developers. I’ve spent over 10 years learning my art – and I believe no one can do it better than me.

Why would I want to trust my code to another developer? What does that say to my clients? (Well my code stinks so I’m going to use someone else’s and charge you the same amount?)

Of course, my code changes over time. The way I coded a WordPress site 4 months ago, is nothing like the way I would code it today. I’m constantly improving, adapting and changing my code with every new site I make. Does a framework do that?

It’s Better For SEO

This is almost the same as believing the code in a framework is better. I’ve never seen a framework that has better SEO juice than my own code.

Good SEO in coding is using semantics, validating (although this affects it indirectly), having clean code and the proper use of title tags, alt tags and links. Saying a framework has great SEO is once again like saying the developer you’re using doesn’t know what he’s doing (so why are you using him?).

Just Have a Good Developer

It’s not that I’m taking the idea of using a framework personally, Β instead of my own optimized coding (or maybe I am). But if you don’t trust that your developer is giving you the best, cleanest and most SEO-friendly code you can get, well why are you using him?

Perhaps it’s time to do a little research and find a better developer. Look for a developer who talks about semantics and SEO practices in their code. Just because you hear on the internet that this or that is better than hand-written code, doesn’t mean it is.

An Extra Reason to Hate Thesis Theme

I don’t want to get into Thesis too much, since we have a great post from Bill coming up on the subject, but I really hate Thesis. Talk about a time-waster. The theme itself costs money, a major red flag as you still have to hire a developer to customize it.

Sure, you have more customization options in Thesis, but it’s a pain to customize beyond that. The files are completely backwards and out of line of the typical WordPress file structure, which means there’s a learning curve to this framework. (That’s more money a client has to pay…)

Also, Thesis does not like custom functionality and you’ll fight with it until you give up. Try having the first image in a post show up on another page – Thesis doesn’t like that.

Do You Use a Framework?

Why do you use frameworks? Or, what are your thoughts on using them?

Amber Weinberg specializes in clean and semantic HTML5, CSS3, responsive and WordPress development. She has over 15 years of coding experience and is super cool to work with. Amber is available for freelance work, so why not hire her for your next project?

Like this post? Please share it on Twitter or Facebook.

  • Great article. I agree about Frameworks, I’ve tried a bunch of them but they were all over-complicated and I felt that doing things my way would be more organized and easy. I haven’t thought of Frameworks like this, but I really feel that slowly I’m shaping and forming my own theoretical “framework” that I appear to reuse methods and ways of organization and design in all my projects, so come to think of it, my next project would probably be my own unique framework to work with πŸ˜‰

    As for Thesis theme, I’m glad to find someone who doesn’t ABSOLUTELY ADORE IT, because frankly I don’t like it much either, and the fact it’s not free is a bit suspicious.

  • I think that frameworks is good in huge websites. And of course, don’t make a developer better and neither this is the objective. The idea of frameworks is reduce the time of development and standardize the process. Good post.

  • Great article Amber! I agree with your post, but if you’re doing it by yourself and you want to save yourself some time, then frameworks are great.

    When I code websites, I use the 960 grid system so I can evenly spaced columns. Other that, I don’t use any other frameworks though I encourage others do.

  • Hello! I’m a new reader and I thought I’d chime in with my thoughts. Up until recently, I had been developing my own WordPress themes using my own “framework” – meaning, I built a blank generic theme that I used as a basis for client sites.

    However, lately I’ve been looking for a well-coded theme framework that would reduce my coding time. I wanted something that would be easy for me to work with and one where I didn’t feel like I was wading blindfolded through someone else’s code. Also, I wanted some solid functionality built right in for things that I struggle with (like drop down menus).

    I finally found what I was looking for. I just launched a website using the new StudioPress Genesis theme framework. It has some really great features and it’s super easy to customize. Their markup guide (http://www.studiopress.com/images/gen_markup.png) has been invaluable to me.

    I’ve never looked too deeply at Thesis because I don’t like how it seems like all the customized sites look like the same old Thesis. But I have heard about the steep learning curve.

    Interesting post!

  • I couldn’t agree more.

    Someone else’s code will always be different. Either it’s good different or bad different – it always take time to adjust, change some parts and delete some other.

    Besides, how can you REALLY learn something, if you don’t do that by yourself? I don’t see the point in that :).

  • Rock on! This is a great write up and what I love about coming here! I do use a framework but it’s my own. Coded the way I code and updated as my skills grow. I have my template folder so when I start a new job I make a copy and I’m ready to go. I will say, the 960 grid is pretty cool. I played around with it for a week and really liked it. It won’t be in my coding toolkit but I liked it. Nice poke at Thesis πŸ˜‰ I would have to agree with your thoughts on that one.

  • Thank you! I really hate Thesis T_T; Doing your own framework is the best way to go.

  • Right, but a framework not coded by yourself can’t reduce your time – at least not for the first few sites, plus the code tends to be messier because it’s a mix of the framework’s developer’s style and your own.

  • Susan,thanks for commenting and welcome to the blog :). If you made your own framework it would save loads of time of using someone else’s and there would be no learning curve attached.

  • Good point, I didn’t even think about the “learning” part of coding πŸ™‚ I’m a huge proponent of hand coded work. I don’t believe every client should get the same exact “code” that a 3rd party framework provides.

  • Haha thanks Bill πŸ™‚ I thought I was going to get a lot of screaming pro-framework people on here πŸ™‚ Glad to see I was wrong πŸ˜€

  • I see where you’re coming from when it comes to frameworks. Frameworks are not the answer to everything, like many would lead you to believe. Frameworks have many benefits that weren’t really detailed in your post, especially PHP Frameworks.

    1. Documentation – When you’re done with your project, good chance is someone else will end up working on the site. Should they have to dig in your code for 2 weeks to learn what’s going on or look at a well documented framework? Chances are there are plenty of good tutorials on more popular frameworks.

    2. Team Projects – Is it easy to find other developers skilled in your own framework? probably not. If you search for a freelancer/employee that has experience in a certain framework it will be easier to incorporate them into your projects.

    3. Security – Many of these frameworks have fail safes to help protect developers from themselves. Many frameworks (PHP) place a lot of protection for SQL injection, XSS and CSRF. The framework places a lot of optimizations that would have required a lot more development time.

    Your clients pay you for your expertise/knowledge not so much for the tangible deliverable. It is your responsibility to find a framework, if one is beneficial/needed, that fits the project scope.

    Nothing wrong with using your own style/framework, but I wouldn’t easily cast frameworks away.

  • Not everyone agrees with frameworks. My thought is, why would I want to add all that unneeded code in my css file? Yeah, most are easy to work with but it isn’t my code. Have you ever looked at one of them? Go download 960.gs and take a peak.

  • I think you are right… having your own framework is the way to go, saves you a lot of time and I totally agree with you on the thesis part… it is much harder to learn than the WordPress default theme framework and if I spend more time learning it I would like to charge more to work on it because I know it was a pain in the *** to learn. I tried learning it once when a client wanted a WordPress theme converted to thesis custom theme but i gave up after trying for a while. IMO thesis is just good marketing.
    on another note i really enjoy reading your articles.. keep up the good work πŸ™‚

  • True, but I think other developers learning the pre-built framework you used, like 960, and other developers learning your own framework is about the same – or worse. Your code should naturally be easy to navigate and understand by any developer, otherwise you’re not coding right.

    The same goes for team projects. Most developers don’t know any or only 1 framework, so how does using one help?

    As for security, once again I don’t see an upside to frameworks if you’re coding properly in the first place.

  • Exactly. It’s all about saving time, which makes you look good in the eyes of a client. If a client asked me to do XX site in Thesis, I might or might not take a project, but I’m going to charge him a “Learning Thesis” fee, like I would any software I’d have to learn.

  • i think a good developer would know when to use a framework and when not to. and if your client is telling you what framework to use… you need to step your game up or stop calling yourself a developer πŸ™‚

  • Tristan

    Agree to that. I’m using CodeIgniter for my php applications. I agree to Amber when it comes to CSS frameworks.

    I’ve created several libraries for CI that I can re-use in my projects, so I’ve also my “own” framework inside an existing framework.

    So my opinion is that for things like CSS a framework is rubbish, but for things like large PHP projects a framework can definitely be a good thing, like Jake Smith said.

  • Ben

    I think using frameworks are a good idea. Makes your code more reliable.

    Also everyone uses frameworks, it’s rare to find a developer who doesn’t use them. Except in web (JS, PHP) development, you find lots of snobby developers who think writing their own code makes them better.

    You meet Java or C++ developers and they think you’re crazy for not using frameworks.

    If you know how to use the framework correctly you know how to use the language correctly. If you don’t you’re not using teh framework right.

  • I disagree. How does it make your code more “reliable”? Proper HTML and CSS is proper HTML and CSS no matter who codes it. If it’s not “reliable” you shouldn’t be a developer.

  • The majority of CSS/Grid frameworks are more of a “design style” than a framework IMO. I personally write my own “CSS Framework”, if you choose to call it that. I write plain jane javascript, because a framework isn’t always necessary. If I’m doing a lot or more advanced effects in javascript I will use jQuery or Mootools, because I know they have already dealt with browser performance and issues.

    Something like CSS Scaffold is what I would consider a “Framework” and really great for large projects, but it can confuse new developers unfamiliar to it.

    I think if a client asks specifically for a framework; it is your job to investigate whether they heard from a friend or random buzz that it needs to be done that way. Then evaluate if it is best for that client, maybe they have a developer in house that uses it and is just overloaded.

    I would look at trying a framework as building my experience, not creating a road block.

  • Anthony Shireman

    Here I thought you were talking about PHP development frameworks rather than something like a template system for a site.

    A framework will (or should) make your code cleaner because the organization of the code allows you to separate concerns and keep specific tasks to specific files. With some kind of template system within a larger application each part of the output will have a small chunk of HTML and the data to be output rather than ‘mixing’ large parts of data and presentation output.

    Additionally, a framework (like Zend Framework for example) has the code with a set of tests and has been gone over by many people which contributes to stability. Stability should be measured, hopefully with objective tests, rather than assumed.

    You’re correct to say that bad developers will make bad code whether they use a framework or not. But, a framework can help by providing reusable components that are available across applications. If you have a ‘blog post sidebar widget’ a good framework will let you change the basic class for the widget but leave the presentation parts alone so all you have to do to update a site is update the class definition for the widget.

    It’s even better when you use large amounts of framework classes and you can update the base framework, run your tests and confirm that the update doesn’t break anything. If you didn’t have something and you needed to update several sites you’d have to look at each implementation, change the specially created code, check (but hopefully test) your changes and then go to the next one.

    I don’t know whether you’re correct in saying that most developers don’t know “any or 1 framework”. A good developer can learn how the framework helps for the specific task at hand. jQuery, Rails, Zend Framework, CodeIgnitor, Cake, Symphony….the names go on and they have their champions and detractors but people are using them.

  • Really fascinating article Amber. I’ve been pretty happy with the 960 grid system for my projects, which is written pretty similar to the way I code. I’ve found it simple, relatively lightweight and simple to implement.

    The other reason that I use it is that it gives me a context for design. I start most of my design work on paper, so the sketch sheets that are paired with the 960 system are incredibly valuable and allow me to quickly translate from the page to the browser.

    That being said, I totally hear what you’re saying. If I were to ever decide to hand a Photoshop designs over to a developer to code, having someone skilled and confident enough to develop entirely on their own would be a source of greater confidence than a developer who mashes together a bunch of other people’s code. I would certainly feel that the developer would be more capable of troubleshooting any bugs that may emerge…

    You’ve given me some real food for thought Amber – enough that I may have to rethink the way I code my next site. Thanks!

  • No I meant more of the 960 CSS grid and Thesis. I don’t necessary consider jQuery to be a framework, but I guess it is πŸ˜‰ But to me, jQuery doesn’t really affect your coding like using a pre-made template for the actual site.

  • When it comes to building sites with WordPress, Joomla or any other CMS. I consider those the framework. I have skeleton templates for the CMS’s that I work with. That’s about as far as I go. I can’t stand working with CSS so-called-frameworks. I write faster and better code by hand. Every site is unique and I find it much easier to build from the ground up than mess around with what someone else has done.

    One the other hand working with PHP frameworks is a life saver. There is no sense of coding out session handling, database connections etc. every time you build a site. Even the more complete frameworks such as WordPress and Joomla seriously cut down on development time. Imagine if you had to code the first blog you built by hand.

  • Cody

    I am personally still a pretty novice developer, so I’m sure I still fall under the ‘bad code’ category in some areas, but I find that frameworks can be nice. I use Bluetrip to set up a baseline of styles and to help me lay out of my website faster when I am doing a fixed width site (doesn’t help a lot when I need to do a fluid/fixed hybrid like I am now). I guess for me it is mostly just a good starting point, though I would definitely say that over time a developer could code their own baseline framework and that would be better because it would have just what they needed and would be in their style, I’ve just not really had time to accrue the experience and all needed for that quite yet.

  • arnold

    Ive heard this thesis theme , and damn you have to pay for this. Anyway I cant say anything much because I havent use the thesis theme. This post reminds me when CSS and javascript frameworks just emerge , then I refuse to use it… lol now Im using it.

  • qwerty

    Why would I take programming advice from non-programmer? Anyone who says “XHTML, CSS and WordPress development” in their bio, is NOT a programmer by any stretch.

    Frameworks can save a ton of time, provided that it:

    1. Doesn’t force anything you don’t need.
    2. Is flexible enough to easily remove bit and pieces as needed and add other bit and pieces.

    I generally prefer libraries to frameworks, but will happily use frameworks that save me months of development time.

    BTW: WordPress, besides being a horribly designed program is a framework of sorts. So you are pretty much contradicting yourself.

  • Everyone is entitled to their opinions, even snarky ones.

  • Daniel

    In as much as frameworks help to quicken the process of development, i think using a framework will limit your ability to come up with algorithms and solutions when faced with problems and situations during Software Development.

    For example the common question of website performance and optimization, the general design of a framework may be rigid or skewed toward a certain approach yet in my own framework i could approach the problem in a better way.

    The framework developers do the thinking for you and just give you how they think it should be done. When you adapt a framework, you adapt the framework developers approach and principles of development and this can retard your own creativity and development.

  • Akshay Madan

    I completely agree to what you’ve written in this article. I had a debate on this with my client about using Drupal for an audio/video archiving website. I’m going to send them this article! πŸ™‚