I find Twisted python (http://www.twistedmatrix.com) very easy to debug once
you understand how Deferred work. Especially if you're using their unit test
framework Trial. I will definitely agree you that you end up spending a lot
of time porting non-async code into your async stuff, to the point where you
become kind of obsessed with it. With twisted you're feeder Queue example is
as simple as deferToThread() and then praying you don't have any locking
problems :D.

On Thu, Oct 6, 2011 at 1:38 AM, Dave Aitel <[email protected]> wrote:

>  So while I'm in the process of running a large asynchronous event-driven
> product in a VM in another window, it's a good time to read all sorts of
> things about asynchronous programming.
>
> Frankly, I'm not a huge fan of it, but Chris is, and he's a better
> programmer than me, so we'll leave it at that. Largely, I think people are
> fans of Async because most languages and kernels are terrible at threads.
> Python, for example, does not have threads. "No worky worky", as we say
> around here.
>
> The downside of async is that it is basically impossible to debug, and you
> need a programmer as good as Chris to even begin to use it well. Likewise,
> the locking/blocking problems don't go away, they just get mapped into a
> more inscrutable form.
>
> So for systems that have working threads, you use them for anything
> IO-heavy (aka, web servers/crawlers/other useful hacking tools). But since
> almost no system HAS working, scalable, threads, people get excited about
> async.  And then you spend your whole life saying "Hey, this thing I do
> sometimes has to do a lot of work on the CPU, so let's put it in another
> thread please". Or "Hey, this whole giant DB library we have to use isn't
> built from the ground up to use Async, so we need it to be in its own thread
> and manage a feeder Queue to it".
>
> And then eventually you're like "Why on earth am I spending so much time
> worrying about how efficient an algorithm that runs on one machine is?" and
> you go off and build something that scales horizontally onto multiple
> machines. (Where "multiple" is > 100).
>
> But in the meantime you have things like asyncore and Node.js and stuff. I
> can't do them justice, but these posts below are the funniest thing you'll
> read since Steve Yegge <http://steve-yegge.blogspot.com/>.
>
> http://teddziuba.com/2011/10/node-js-is-cancer.html
> http://teddziuba.com/2011/10/straight-talk-on-event-loops.html
> http://www.unlimitednovelty.com/2011/10/nodejs-has-jumped-shark.html
>
> -dave
>
> --
> INFILTRATE 2012 January 12th-13th in Miami - the world's best offensive 
> information security conference.www.infiltratecon.com
>
>
> _______________________________________________
> Dailydave mailing list
> [email protected]
> https://lists.immunityinc.com/mailman/listinfo/dailydave
>
>
_______________________________________________
Dailydave mailing list
[email protected]
https://lists.immunityinc.com/mailman/listinfo/dailydave

Reply via email to