8 tips on how to choose a technology
Deciding on technologies
When deciding on which technologies to focus your time and energy on to learn, or whether it makes sense to use one over another on any given project, it comes down to a number of different factors. Here are some of the different reasons for choosing one technology over another.
Purely for technological reasons
That something is better suited for the task in terms of being able to process web requests quickly enough, or that there are already plugins available that meet your requirements.
You enjoy it
If two technologies are about equal in terms of most other areas, choose the one you enjoy more. If you enjoy what you're doing you will likely end up producing better work.
For forward momentum
If you see a trend showing one language catching on and another falling behind, choose the one that's moving forward more quickly.
A strong community
If a technology has a strong community backing, it's more likely to be supported for longer and for there to be more plugins developed for it and resources available to learn it.
Your team knows it
If you're working with a team of 10 developers, all who know something particularly well, then it makes sense to choose what your team will be able to support over a technology that everyone will have to learn.
You need a job
This is another pragmatic reason, but one that is equally valid. Everyone has priorities and responsibilities, and it makes more sense to learn a technology where the jobs are right now.
This really goes along with the community point, but I thought it is worth mentioning that if a technology or project is documented well, you'll hopefully run into fewer difficulties learning it and be able to find solutions when you get stumped by something.
I would always choose a technology that is open sourced rather than closed sourced and whose direction is dictated by a single company. The company will make decisions with their best interests in mind, whereas the community behind an open sourced project will tend to be more democratic.