43 ms·
Isn't this the case with any Python development in general? Once you start building at scale you'll be forced to use Cython extensions and other non-native pyth
by Abishek_Muthian 7y ago
Isn't this the case with any Python development in general? Once you start building at scale you'll be forced to use Cython extensions and other non-native python code.
- TeMPOraL 7y agoIsn't this the case with most of Python? It did a great job of pretending to be an efficient language by having libraries pawn off the heavy lifting to companion C implementations. I wonder what's so special about Python that it does this much more often than any of the other languages I know.
- fnord123 7y ago>I wonder what's so special about Python that it does this much more often than any of the other languages I know. You answered it: > It did a great job of pretending to be an efficient language by having libraries pawn off the heavy lifting to companion C implementations. That's a feature.
- a_t48 7y agoThe C++ side of ROS is better but still not amazing.
- stinos 7y agoIsn't this the case with any Python development in general? No this isn't generally true for Python, and I'm not sure why you'd be forced to use Cython for things at scale. Unless you have some particular type of software in mind perhaps?
- Abishek_Muthian 7y ago>Unless you have some particular type of software in mind perhaps? Webservices. May be its fine for couple of hundred users, but when there are thousands of concurrent users with heavy I/O I've been forced to replace asyncio with uvloop, replacing coroutine with gevent, implementing pre-fork worker models etc. to get decent performance. I've since then moved any webservices development to Golang and has been perfect. I understand there are large scale companies like Instagram which supposedly use Python and I don't detest it. It's just there are better tools for job now, especially for a lean startup and of-course Python has it's advantages like being a good first programming language and large library ecosystem.
- moksly 7y agoWe’ve build a few enterprise sized applications in python and has a much better time of it than we ever did with the C#(that still powers most of our software). Dynamic types aren’t exactly great, but Python is generally really good at getting things done. I probably wouldn’t use it if you had millions of concurrent users instead of the thousands we do, but for most projects it will work just fine even when the projects grow in size.
- stult 7y agoThe comment above is true of ROS, full stop. Even in C++ without involving Python. Especially if you have any real time requirements. It uses sockets for interprocess communication, which adds massive amounts of overhead. Replacing ROS and using straight function calls sped up a simulation of a system I was running from 10x real time to 1000x, for example. That's fine for certain applications but just didn't work for my particular use case.