Best vs. Popular

The most popular technology isn't always the best technology.  We see this all the time and one of the classic examples I always hear is VHS vs. Betamax.  Betamax was arguably the better technology (I'm told), but VHS won the popularity contest.

How is this relevant?  Well I find this particularly interesting when it applies to development tools, libraries, and frameworks.  Should you pick what you think is the best tool for the job or the most popular tool even if it's not the best tool?  I don't think this is a big deal for small projects since the tool isn't going to just disappear in the span of 6 months, but what about a project that will take 2 years to build and you need to maintain for 5 - 10 years once it's running in production?

A simple example that I'm currently struggling with is Bootstrap 3 vs Foundation 5.  I know I had a post a few months ago and I said Bootstrap 2.3.2 was the best framework available, but with the latest versions of both frameworks I'm now torn between the two.  Here is what I'm weighing between the two frameworks:

Foundation 5

  • Out-of-the-box this meets 95% of our requirements
  • Roadmap is deliberate and consistent
  • Seems to be geared toward business applications (e.g. comes with validation plugins)
  • Small community
  • Small pool of 3rd-party plugins/customizations
  • Primarily backed by a company
  • Paid support is available

Bootstrap 3

  • Out-of-the-box this meets 80% of our requirements
  • Roadmap is driven by community pressure
  • Seems to be geared toward small websites
  • Large community
  • Large pool of 3rd-party plugins/customizations
  • Primarily backed by 2 developers at Twitter and the community
  • No paid support

In this scenario, I want to pick Foundation since it's so close to everything that we want in a framework, but Bootstrap's popularity and everything that comes with it is a huge asset.  It's such an asset that I feel compelled to use Bootstrap and take the time to make it what we need it to be just so we can leverage all of the resources surrounding it in the future.

Should I use the best tool for the job today or the most popular tool in order to make development easier at some point in the future?  I don't have an answer yet.  I honestly have both integrated into my project at the moment and I'm trying to find a critical fault with one of them to make my decision easier, but so far nothing's managed to sway me further in either direction.

Responsive Frameworks: February 2014

Bootstrap 2.3.2 was hands down the only sane choice for a web framework 6 months ago (for the types of applications my team develops).  Now that Bootstrap 3.1.0 is out we should just be using that right?  While I believe that’s a valid assumption, the project that I'm about to start working on is a pretty big deal so let’s give the internet one more chance to tell me there’s something better.

Son of a... apparently in the last 6 months everything has changed.  Here is my new short list of frameworks:

  • Bootstrap 3
  • Froundation 5
  • Grumby 2
  • Pure CSS
  • InK

Where did all of these come from?  Apparently responsive frameworks are popping up like weeds.  Alright, Bootstrap and Foundation were the main two I considered last time so let’s leave them for last.

Grumby:  I didn’t get into it too much.  It appears to be one of the more popular up-and-comers, but I still can’t find a lot of good resources.  It’s open source, not backed by a large community or company.  It’s quite possible this will become something great, but the support isn't solid enough to build our business on it.

Pure CSS: Built by Yahoo!, which is good.  Tiny and efficient.  Only a CSS framework.  Only at version 0.3.0 which is way to early to adopt; been burned before.

InK: Built as a Bootstrap replacement with a minimalist design, it’s extremely lightweight but delivers tons of features.  Large companies haven’t started using it, but smaller ones have.  It’s not quite ready for wide adoption yet, and doesn't have a large community or company backing it.  Too risky right now.

That just leaves the two big contenders from last time: Bootstrap 3 and Foundation 5.  The assumption at this point is that Bootstrap will win, so let’s see what Foundation 5 is like.  To be honest I don’t remember why I ruled it out last time, but I do remember it was easy to rule it out.

It turns out that I completely ruled out Foundation 3 and 4 without fully understanding what the framework was, all because they didn't recommend or officially support jQuery.  Instead they have their own jQuery-like framework call Zepto.  I get why I ruled them out, but I wish I wasn't so dismissive when I first looked.  Foundation 5 however, admits that jQuery is the better choice and completely dropped Zepto.  Alright, so what is Foundation 5 all about?

Apparently, Foundation 5 is pretty awesome.  Bootstrap is really a turn-key operation; pick it if you want everything to work out of the box and you plan on it feeling like a Bootstrap site.  You could change it but it would take a lot of undoing what the framework has already done for you.  Foundation on the other hand, has everything that Bootstrap offers plus all of the things I noticed were missing (e.g. business application features).  The only think it doesn't have is the sex-appeal right out of the box.  Foundation is also backed by a company that you can pay to answer support issues and apparently just helps out for free sometimes as well.  The downside of Foundation is it doesn't have a huge community like Bootstrap so you’ll get your hands dirty figuring things out, but the a lot of the Bootstrap community stuff isn't production-ready code anyway.

Researching more into the company behind Foundation, this is really a company of designers who built a framework for themselves and then released it.  Digging even more, these are guys that want to design things the “right way” and aren't pressured for features like the Bootstrap guys are.  They've made a design choice and do everything to protect their minimalist, flat design.  Since it’s a fairly plain design, it also means it’s easy to build on… it’s literally the foundation of your application.

I really need to do some more research into Bootstrap and Foundation, but I’m really leaning towards Foundation at this point.  It just seems like the better long-term product for business applications and they’re backed by designers making consistent choices.