Add content about PyPY's CSP ability (Communicating Sequential Processes)
Created originally on Bitbucket by Anonymous
Hello.
I am just about to start an asynchronous project. The ASyncio approach, much like Javascript callbacks looks way way too complicated. I much prefer the the model of Communicaint Sequentil Processes (CSP), supported by GoLang, Erlang, and maybe (?) by PyPy with Gevent.
I have long been interested in Gevent, but reportedly on cPython, there is a garbage collection bug.
Plus everyone else is using ASyncio. Very hard not to use the mainstream approaches.
Which brings me to PyPy. I suspect that PyPy + Gevent gives me CSP. But I am not sure. Your web site does not mention it. Here is what it says:
◦ Stackless: PyPy comes by default with support for stackless mode, providing micro-threads for massive concurrency.
I have been in the Python community for many many years. I know about stackless. I know about micro threads. Since the Python remote calls are blocking, it is not at all clear from your home page, how to do asynchronous calls from micro-threads. Time to switch to Go. So last night I was reading the GoLang tutorials. Beautifully done, a big brand name, it scales great, but static binding is bad enough to bring me back to PyPy.
Could your home page instead say something like:
GoLang, Erlang and PyPy (with Gevent) support the concept of Communicating Sequential Processes. In contrast, PyPy and cPython’s asyncio as well as Javascript support the concept of callbacks. There are many who believe that CSP is much easier to program than callbacks.
And then a link to a page that introduces the CSP ideas.
The idea here is to compete with cPython by correctly supporting CSP, made famous recently by GoLang. I think that would bring you a lot more users, and eventually more money as well.
Frankly I am not at all sure if CSP on PyPy would work, and be supported. if it does, then you would have a major advantage over cPython, and I would have a very interesting talk for the local meetups and European conferences.
Plus it would solve my immediate problem, and the problem that a good friend of mine is facing.
I look forward to hearing what you have to say about this.
P.S. By the way, I am the guy who had dinner with the PyPy core developers at the great Italian restaurant at the EuroPython conference.
Christopher Lozinski