HACKER Q&A
📣 oli_kitty

Do long-lived homogeneous projects in Python exist?


A friend of mine is looking for a job (he's currently a Scala eng) and he asked me if it made sense to switch to Python. Do you think the future of software development lies in further embracing heterogeneity (integrating diverse technologies like JVM, Rust, Go, Python, etc), or should we aim for more homogeneous environments for the sake of simplicity and coherence? In the light of recent ML/AI/LLM developments it seems to me that projects in that domain if written entirely in Python are a piece of cake. Does anyone do it at scale?


  👤 rossdavidh Accepted Answer ✓
Irrespective of ML/etc. developments, heterogeneity is always there. CSS is one of the least liked languages in widespread use, and it is still everpresent. After a decade of attempts to replace SQL with JS, it appears that SQL is becoming actually more ubiquitous. Efforts to replace R with Python have been ongoing for years, and R is still being used in many new projects, often begrudgingly by Python programmers who would prefer not to be.

I am primarily a Python programmer, and I think it's a good idea to be able to program in Python, because it's core competency is that it is pretty good at lots of things (web scripting, data science, ML, etc. etc.). However, sometimes you need the best language for [x], and that language is often something written for [x].

Part of the reason why, is that the "simplicity and coherence" that people think they will get from a homogenous environment, rarely pans out. Ten years ago people were trying to use JS for everything, and it seemed like it would drive backend languages like Python away, because using JS for both front-end and back-end would be "simpler". It didn't turn out that way.

The fact is that the problem spaces differ more than the languages. Even if you know, let's say, Python web development, it doesn't mean you can do Python data science, or Python ML, or etc. Whereas, if you know Python web development, and you have to figure out Ruby webdev code, there will be a little bit of a learning curve but it won't require as much of a mindset change. If you need to convert Python data science code to R, if you're already familiar with the concepts involved, the language learning is not nearly as big an issue as if you only know Python, but not the domain space involved.

I'm sure there are still places trying to pursue the "one language" homogenous environment. The payoff is not what they were hoping for.