If you were looking to build the backend for a web app, a microservice for it or an open source project, how would you evaluate which language and framework to use?<p>Here are some of the things I assume would matter.<p>- Developer experience (Type safety, type checking, dev time, debugging, error handling)<p>- Performance (request/s, memory and CPU useage)<p>- Popularity (how many devs know it, community support, libraries etc)<p>- Familiarity with the language (your own)<p>Is there anything else? I know it depends on the specific use case so maybe is not applicable generally (but I was wondering about this from the perspective of supertokens.io - where I work)
I have a simple website hosted on AWS S3 that's a work in progress. I plan to use Lambdas written in Python since the volume is so low and the functionality is simple.<p>My main considerations were that Lambda is cheap and scales, Python has tons of tutorials if I get stuck, and the experience will be useful at my current job.
We use Elixir/Phoneix at Papercups for our backend.<p>Good:<p>* Friendly developer community and very active Slack channel<p>* Makes websockets much easier to get started<p>* We like the simplicity of Phoneix framework (We avoided rails because we didn't like the magical parts at times)<p>Bads:<p>* I miss types (We at least use TS in the frontend)<p>* Deployments are more complicated and I had some trouble figuring out the build release process.<p>We had no familiarity with Elixir when we started. We decided on Elixir since we thought it went very well with email messaging. We've been wanting to try elixir and realized that if we didn't use Elixir then we would never switch.
How many years ago could I have written a program in this language and still have it work today?<p>If I don't use excessive libraries, how many distributions will my programs run on reliably without a tambourine dance?<p>If I write my code in a certain restricted style, can I still understand it after a year of not looking at it?<p>How likely is my code to work, at least partially after it is put through various bit-rot processes?<p>How much existing code example and solutions is there on the web, outside of StackOverflow, which still works when used today?<p>(I chose Perl for my project.)
If it is a commercial application, it is all about time to market. How fast can you get something in front of customers. For that, you need to use the language that you already know unless it is something crazy like C.<p>if it is a hobby project that you want to learn and have fun with, then you can choose a shiny language.<p>All the things you listed like Dev experience, performance etc. can be handled by many languages including the universally hated PHP. It really depends on what you are building and what your goals are.