More times than I’d like, I’ve put much effort in researching for this decision, and soon, the moment passes, and I don’t even want to continue with my project anymore. It gets shelved even before I could decide all the details. Yet, I do have to choose a language and most of the times a framework/library to make my work easier. Yes, but the way I decide has become much simpler and straightforward.
Doesn’t matter that much. Unless my project is going to have a life of several years, and is going to be worked on by a team of developers, this decision doesn’t even matter that much. Sometimes even in that case. The biggest example is Facebook which probably demanded super high performance, was initially developed with PHP. When it comes to implementing new ideas, it’s way more important to ship a working prototype than whether you have made the best decisions.
Can be revisited. When I make software, more time is spent on solving the problems that are not language-dependent. In comparison to actually designing and implementing the project, the effort for changing the programming language later is quite low. So, I start the POC, and once I’ve made significant progress, I re-evaluate whether some other language would do this easier/better. Almost always, there is no significant benefit, and even if there is, it’s quite simple to rewrite what I’ve done so far.
Bird in the hand. Instead of thinking what might be best suited for the project, and spending effort learning from scratch, it’s better to get started with what I already know and could make quick progress on the idea. By the time I get a handle on that new tech, my motivation could shift and I risk dropping the project altogether. Whereas, if I have a working material product, no matter how small it is, it would motivate me to invest even more time and effort.
Having said all that, if my project/POC demands I use a certain language or technology, obviously I have no decision to make. For example if my POC is to add a search index function to my project using ElasticSearch, of course I have to learn and use ElasticSearch.
Also, if you are working on a long-life project, which will involve a team of developers working on it, then you have to go through the usual process of making the best choice. But even in those cases, you might have to start with a POC.
So stop worrying about which language or framework or tool you should use. Get started with what you already know and make something.