Hey everyone! I'm relatively new to backend development and have a background in AI research. Recently, I came across a claim that Python isn't widely used in backend work, though I don't see this reflected in any industry stats. I'm curious to understand where this idea is coming from. I've done some personal research and noticed that the transition from Lua to PyTorch was largely influenced by community factors, which made me wonder about Python's role in backend development.
I know it might not be the go-to language for backend compared to others, but I've heard suggestions that it falls short because of memory management issues, like leaks. Could you all share your thoughts on this? Should I consider picking up another language for backend, or is Python still a solid choice for someone just starting out? Thanks a bunch!
7 Answers
Python's lack of real parallelism does hinder its scaling capabilities for high-traffic backends. It makes managing large requests per second challenging. But, do remember there are many factors beyond just the language to consider for a successful backend.
From my experience, Python sees a lot of backend use, but maybe it shouldn't. It’s brilliant for experimenting and tools like Jupyter are top-notch, yet for performance, reliability, and security, languages like Rust or Java often outperform it. Projects can become pretty complex as they scale due to its limitations.
If AI research is your main focus, stick with Python. While many languages can perform backend tasks, learning a new one just for optimization might not be worth it at first. Python does have higher memory requirements and can be slow to start, but it's flexible and allows for rapid development. Plus, memory leaks can happen in any language!
Whoever told you that Python is falling behind is just misinformed. Python still has a solid footing in backend development.
Python is often praised for its user-friendliness and extensive library support, but it's also criticized for being slower and weakly typed. Despite that, I use Python as my primary backend language and love Django. Those features can be advantageous, even if some engineers don't see them that way. I think the trade-offs are worth it!
Yeah, there are definitely strong points to Python’s design. But I also get that some find its strengths underwhelming compared to other options. It's a mixed bag!
Just a heads up, Python is actually strongly typed; it just lacks static typing!
I've worked on one of the largest sites online, and most of our backend is in Python. If you know how to leverage it properly, Python can be powerful for backend development. For resource-intensive tasks, we use a mix of Go and Rust, but Python handles a lot smoothly if you know what you're doing.
Here are some challenges with Python as a backend language: dynamic typing can lead to hard-to-find bugs, deployment often requires complex setups like containers or virtual environments, and it has the Global Interpreter Lock that can hold back performance. Despite these, I've used Python extensively—mostly for tasks where it's the right fit, but I switch to something like Go for performance-critical stuff.

That's true, but won't there always be other conditions influencing its use? It's not just about parallelism.