
In my previous job we used Clojure. TBH I really like Clojure, the constructs of the language are really elegant and I had a lot of fun coding in it. Though for Neera, I decide that Node.js + React will be our primary tech stack.1
Why? Because I belive Javascript ecosystem has the greatest momentum. The Javscript ecosystem is huge, and it only getting better. I used JS 5 years ago during an internship and I hated it. Now everything in JS is do damn smooth. Their package manager just works2. There is a library for pretty much everything. If there are things which are bad with JS, they will be fixed very soon, because there is so much incentive to fix it. So we would rather ride with the wave than against it.
Ultimately the language and its constructs play a much smaller part in the big picture, what matters is “can you deliver value quickly?”. Clojure has really nice constructs, but in JS I don’t have to write so much code. I use an off the shelf library and I am done. If you had to write that library in Clojure, maybe the process will be much faster, but you don’t have to, so don’t bother.3
Related reading:
We do use tech stack where it makes sense, for example Python for datascience.
In comparison, python package managers still feels broken. I frequently run into installation issues, even with things like conda.
There are also other advantages. For example hiring in JS is much easier and you need to hire less because usually the same person can handle both back and frontend.
I really like the thought put into keeping things simple and "boring".
Q: Do you envision revisiting the same choices at a different stage of the product cycle?
Q: Do you think the tech stacks are snapshots in time (that can be easily transitioned from) or as commits (irreversible choices)?