Hacker News new | past | comments | ask | show | jobs | submit login
What language to use to build webapp or OSS project?
5 points by advaitruia 4 days ago | hide | past | favorite | 11 comments
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?

Here are some of the things I assume would matter.

- Developer experience (Type safety, type checking, dev time, debugging, error handling)

- Performance (request/s, memory and CPU useage)

- Popularity (how many devs know it, community support, libraries etc)

- Familiarity with the language (your own)

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.

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.


Interesting. Will the lambdas write data back to S3? I.e. S3 will then replace Aurora/Redshift in this scenario?

The plan is to write to a different S3 Bucket since the web hosting bucket has to be public read (until I switch to CloudFront). My use case is small enough that I don't need at DB and I'm not doing anything that would require RedShift.

Cool! Out of curiosity, why not RedShift? Is it a pain to work with? (Never tried it myself.)

The current functionality is just for an email registration list. I might put it in Dynamo if it's easier to use with SES (and cheap). My current plan is to just stick the name/email in an xls and craft the emails (1-3 annually) manually. I really dont need a data warehouse for that.

Ah. Makes sense. Thank you for sharing your thoughts about AWS. Very powerful stuff they’ve got, both for small and large apps. Best of luck with your project!

Thanks!

How many years ago could I have written a program in this language and still have it work today?

If I don't use excessive libraries, how many distributions will my programs run on reliably without a tambourine dance?

If I write my code in a certain restricted style, can I still understand it after a year of not looking at it?

How likely is my code to work, at least partially after it is put through various bit-rot processes?

How much existing code example and solutions is there on the web, outside of StackOverflow, which still works when used today?

(I chose Perl for my project.)


We use Elixir/Phoneix at Papercups for our backend.

Good:

* Friendly developer community and very active Slack channel

* Makes websockets much easier to get started

* We like the simplicity of Phoneix framework (We avoided rails because we didn't like the magical parts at times)

Bads:

* I miss types (We at least use TS in the frontend)

* Deployments are more complicated and I had some trouble figuring out the build release process.

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.


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.

if it is a hobby project that you want to learn and have fun with, then you can choose a shiny language.

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.


Another big factor is the availability of hiring talent. But I guess this already comes under the popularity point.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: