3 ms·
This is an excellent article--if you aren't familiar with Armin's writing, you should read all his stuff, he always writes insightful long-form posts which do a
by rdegges 14y ago
This is an excellent article--if you aren't familiar with Armin's writing, you should read all his stuff, he always writes insightful long-form posts which do a tremendous job of making complex topics understandable.
I'd like to just point out that in regards to this article, the whole pub-sub pattern for handling realtime web applications applies not only to python, but to all languages and frameworks. Putting your core application logic behind a pubsub channel is an excellent way to maintain a stateless architecture for large applications while keeping complexity low.
- gregwebs 14y agoIt applies especially well to Python (and MRI Ruby and many others) that aren't capable of holding open connections. There are more options in other languages and frameworks. Lift does real-time without Redis (using the an OS thread per active connection in a container with continuations). Haskell (async run-time is transparent) can easily hold open thousands of idle connections.
- lucian1900 14y agoSaying that "Python and [...] aren't capable of holding open connections" is just plain wrong. There are many solutions for that, the obvious one for Python being Twisted.
- freyrs3 14y agoThere are plently of ways of holding connections open using Python. Twisted, Gevent, and other connection pools have all solved this problem. Though, some of them are not quite as elegant as Haskell's approach.
- gregwebs 14y agoThanks for qualifying that statement for me. Also, there is the multi-core issue for Python & MRI Ruby (leading to memory bloat).
- Kilimanjaro 14y agoI agree, the guys at pocoo are kicking the python's ass with werkzeug, flask, jinja and a bunch of cool projects. http://www.pocoo.org/team/ http://www.pocoo.org/team/