Bytes down - How not to choose your tech stack?
Languages don't matter... or at least not for the reasons you think
How not to choose your tech stack
CEOs don’t need to be software engineers, and there are several billion-dollar companies led by non-tech profiles. However, this percentage drastically decreases when it comes to tech companies, and it goes even lower in Latin America and continental Europe, where tech profiles and engineers are largely absent from the founders' landscape. While this article isn't focused on a specific region, it highlights some critical points relevant to any region. One of them is choosing your tech stack.
I'm seeing many non-tech founders making a massive deal out of the language they will use in their software. They are right to an extent. Choosing your tech stack is no small matter, and technical debt is a real concern. You don’t want to end up in a complete digital mess a few years from now. But wait, does that really matter? Should we be scared of paying technical debt in the future, a debt that's only going to be paid if the product really takes off anyway? That’s reasonable, but there are other considerations you should think of first.
They built Facebook in PHP
Consider this: Facebook, Wikipedia, Tumblr, and Mailchimp were built in PHP.
Spotify and Dropbox are built in Python.
The StackOverflow website, a lot of Tesla and SpaceX software are built in C#. Games like Subnautica and Escape from Tarkov, as well as Pokémon, are written in C#.
AirBnB uses Ruby on Rails.
And yet, some people in startup groups or founders' Slack channels are obsessed with developing only with a specific language because someone told them it's the best tech. They read another article on Medium saying, “Python is dead” or “native apps are much better.” Well, no, that’s amateur thinking and proof they never seriously coded to build something substantial. Anyone who seriously coded and knows their craft about programming no longer makes a massive big deal on language. It does not mean some languages are not much better than others for specific purposes. It means that, in most cases, SaaS product could be written in pretty much any language and would work exactly the same. Later on, when you develop better algorithms and tailored solutions to specific problems, some languages and frameworks will make things easier. On day zero, a random e-commerce application or some standard tinder-like app could work in fucking Java and PhP.
The good language or framework is the one you can build in
The good language or framework is the one you can build in, or somebody you trust can build in, that is still maintained by its core team, that you can maintain, and that makes hiring not too big of a headache.
Guess which languages meet those requirements? Pretty much all of them: C#, Python, Kotlin, Java, JavaScript, React or Angular as framework, and many more. The specific language or framework doesn’t matter as much as long as it meets the previous requirements.
For example, I see business school CEOs who barely ever opened an IDE being very strict about native phone applications because they are supposedly so much better and optimized. Oh yeah, dude, Spotify, Instagram, and TikTok chose to go for cross-platform languages, but your app with zero users needs two separate teams to optimize a founder wellness chatbot? No. Go for simplicity, speed, and ease of shipping.
When it comes to tech, better deployed and imperfect than perfect and only on the product roadmap.
Don't get hung up on finding the "perfect" tech stack. The right choice is one that works for your team, is maintainable, and lets you iterate quickly. Focus on building and deploying rather than perfecting and planning.