What to consider when choosing a framework ?

When I started doing side projects and deciding which language/framework/technology to use I kind of felt like being overwhelmed by possibilities. Naturally I ended up googling for “Python vs. Ruby vs. Javascript”, “Bootstrap vs. Foundation”, “Backbone vs. Angular vs. Ember”. In the end it was not useful and I just ended up going with gut feeling.

I found this slide deck to be pretty awesome. Basically it untangles some of the considerations you should make when choosing a framework, technology, language, etc.

It focuses on client-side javascript frameworks but I think it applies to most of the technology decisions a team has to make when choosing technology A instead of technology B for a given task.

I’ve spent countless hours wondering what to use for my side projects and I think this slide deck focuses on what matters.

I think Sarah Mei (@sarahmei) does a better job at explaining than I do but basically her system focuses on 4 key aspects:

  • interface – are introductory tutorials easy to grasp? Is the list of features suited for the project that you are doing
  • activity – is the project dead or are there people working on it and making it better? are issues being answered and pull requests being merged?
  • popularity – Is it easy to find help when you run into a problem (blog posts, stack overflow, twitter, books)?
  • accessibility – how natural does it feel for you to use the framework. Depending on your background some technologies might feel more natural than others.

Back in the day I used to focus a lot on interface. But as time goes by I am starting to see that I care more and more about the other factors.

For instance, doing a simple hello world tutorial and thinking “this framework is rad!” and then trying to do something complicated that you can find in real-life production grade applications and feeling like “I am fighting with the framework! this is shit!” is a bit annoying. The same applies to trying to find somebody smarter than you that is writing about good practices and tricky edge case situations while working with the technology at hand.

So, yeah, technical decisions matter. And this is an awesome way to give some meaning and depth to them other than “gut feeling”.

P.S. The slide deck – https://speakerdeck.com/sarahmei/unpacking-technical-decisions-mountain-west-ruby-conf-2014 Sarah Mei’s Twitter – https://twitter.com/sarahmei