The love-hate rollercoaster of choosing a language / framework

Wow. I’m trying to figure out what language / framework / stack / voodoo to use for some small side projects, and there are a lot of choices out there, and they all seem to have Some Great Feature. Do I stick with what I know (AngularJS) and put up a MEAN stack to try out Node.js? What about trying out ReactJS, because I want to try playing with Observables? Why not Backbone, or Ember or KnockOut? There are more, many many more. It’s amazing to have so many options with such a range of use cases, but it’s also exhausting to have to look at them all with a critical eye. I could dive deep and try Angular 2.0, but that seems like something that should wait for a bigger release. What about leaving JavaScript behind entirely? Well, almost entirely.

I’m leaning towards trying Dart. Google is apparently heavily invested, and the presentations I’ve watched boast some pretty powerful features. The idea of getting scoped variables, optional typing, proper Object structure, and compilation to pure JS to run in any browser is very appealing. The most amazing? In many cases the dart2js compiler produces an optimized js file that runs faster than hand-crafted JS (old source, it’s even better now). That’s impressive. It’s certainly enough to catch my attention, and make me willing to give it a shot.

How do you decide what to use when starting a new project? Do you agonize over all the possibilities, or just pick something and run with it?