Not every language needs to do everything. It'll be great if they improve concurrency but Python is in my opinion best used as a glue language or a language for rapid development. Other people probably have other great uses for it but no one sane uses Python for its performance. If concurrency is your thing, probably shouldn't be writing in Python, there's Go or Java that work great in that realm.
Also, you don't need this performance. You might think you do, but I can assure you you don't!
Prove concurrency is the bottleneck. With actual numbers, facts and research and real-world benchmarks on your entire stack.
Fix the actual performance problems (they are probably IO, Database, serializing and such). Add an async worker or two.
Rince, repeat.
Is Python itself the actual performance problem? You've reached the bottom. Now go spend $2000/year on larger or more servers. Because an engineer rewriting your stack in go/haskell/erlang costs ten to hundred times that.
Same goes for Ruby.
And all this assumes you have managed to get enough users and grow large enough that performance is an actual, real problem, hurting your bottomline or growth.
All these interpreted languages (well, maybe not PHP) solve this by making such communication out-of-band. Asynchronous workers are common and "Good enough" for 99.99% of all startups.
I think this is a very practical view on the subject. Unfortunately programmers often have an engineering mindset where they want to build the best in every aspect. What your saying echoes my experiences, use a language like Python that you can get a lot of shit done in a short period of time, come back and optimize it when its feature complete and you can tell people want to use the thing you made. Despite knowing Haskell and Rust my most successful projects were written in PHP and Python, some of which are still being heavily used 9 years after their creation. They were thrown together in short time and because of the rapid development cycle those languages fit well into, the sites quickly evolved to meet the users need.
I'm sure there are cases where you need rock solid performance and concurrency but I don't think that's the norm.
The proof is also in Twitter (Ruby on Rails), the OP explaining Youtube runs Python, and many more such gigantic success-stories. Starting with a platform that "does not scale".
And that ignores all the projects that failed: many more. It's far worse to fail when you've just spent years engineering a concurrent messaging protocol for a failed project, than when you spent four days of Rails scaffolding for a failed project.
This just makes me think: when is python going to get its shit together and get concurrency working properly?
stormcrowsx 15 points · Jan 2017
Not every language needs to do everything. It'll be great if they improve concurrency but Python is in my opinion best used as a glue language or a language for rapid development. Other people probably have other great uses for it but no one sane uses Python for its performance. If concurrency is your thing, probably shouldn't be writing in Python, there's Go or Java that work great in that realm.
berkes -1 points · Jan 2017
Also, you don't need this performance. You might think you do, but I can assure you you don't!
Same goes for Ruby.
And all this assumes you have managed to get enough users and grow large enough that performance is an actual, real problem, hurting your bottomline or growth.
[deleted] 2 points · Jan 2017
Performance isn't everything, there is latency too, specially in distributed/SOA architectures where latencies add up.
berkes 0 points · Jan 2017
All these interpreted languages (well, maybe not PHP) solve this by making such communication out-of-band. Asynchronous workers are common and "Good enough" for 99.99% of all startups.
stormcrowsx 2 points · Jan 2017
I think this is a very practical view on the subject. Unfortunately programmers often have an engineering mindset where they want to build the best in every aspect. What your saying echoes my experiences, use a language like Python that you can get a lot of shit done in a short period of time, come back and optimize it when its feature complete and you can tell people want to use the thing you made. Despite knowing Haskell and Rust my most successful projects were written in PHP and Python, some of which are still being heavily used 9 years after their creation. They were thrown together in short time and because of the rapid development cycle those languages fit well into, the sites quickly evolved to meet the users need.
I'm sure there are cases where you need rock solid performance and concurrency but I don't think that's the norm.
berkes 1 points · Jan 2017
The proof is also in Twitter (Ruby on Rails), the OP explaining Youtube runs Python, and many more such gigantic success-stories. Starting with a platform that "does not scale".
And that ignores all the projects that failed: many more. It's far worse to fail when you've just spent years engineering a concurrent messaging protocol for a failed project, than when you spent four days of Rails scaffolding for a failed project.