re: Python: Still in favor? VIEW POST

FULL DISCUSSION
 

I've been an active user of Python for maybe 5+ years (and I've continued using other languages as well), and there seems to be no real reason to dislike Python other than FUD ("GIL ruins performance" -type shouting). However there are of course cases where Python isn't the best language, and e.g. Go, C#, Rust, or generally just something else would be better. Nowadays it's actually more like my default assumption, that unless there's any special reason to NOT do it in Python, I'd rather do it in Python (I also quite often fall back to Go as the alternative).

Generally if you want to build something for the long term, something that is potentially going to grow to be massive, or you'd want an ability to easily refactor, then Python is an excellent choice. It's easy for people to learn to be efficient at, so you don't even need to hire "Python programmers" to grow your team. It has an excellent community with strong belief in standards, and tools exist for pretty much everything you can ever imagine. Compared to most other languages it can make a programmer feel like a superhero due to how productive they can really be.

If you're building for web, performance is rarely a concern at all (horizontal scaling is much more important), and PyPy, Cython, etc. can alleviate most of those concerns in other cases. However, if you TRULY need multithreading, or massive concurrency, depending on your specific use-case Python might prove to be problematic (but e.g. gevent, multithreading, multiprocessing, and Stackless Python might be good enough for you anyway).

Going with a big framework like Django is quite often a bad idea, they impose design choices on you without any good reason, but it all depends on your use cases. I've successfully built good software on Django, Tornado, Flask, Falcon, and others so it really matters little in the end.

If you have any special needs in mind, check those first. If you don't, try something lightweight and well known, e.g. Flask, you can always slap on more components later. All those mentioned above are really good choices, and there are others that are good too.

 

Exactly the kind of information I was looking for. Thanks!

code of conduct - report abuse