Live data from Hacker News

The Future of Asynchronous IO in Python

medium.com

41–50 of 51 posts

Re: The Future of Asynchronous IO in Python

#41
post #17

It's frustrating. Many people want an interprocess subroutine call, and few OSs have the right primitives for it. (QNX does, and Windows sort of does, but the Linux/Unix world does not.) There's an endless collection of kludges so program A can call program B implemented on top of pipe/socket like mechanisms. OpenRPC and CORBA are out of fashion. Google protocol buffers help, but don't come with a standard RPC mechan…

Do you have a link for description of how it works in QNX?

I guess it's about the QNX message passing APIs http://www.qnx.com/developers/docs/6.4.1/neutrino/sys_arch/i...

Re: The Future of Asynchronous IO in Python

#42

I'm sorry to be negative but the grammar mistakes in this article were glaring.

This is something that one should get over. Some of the most brilliant, and downright nice, people I've ever worked with had average to poor grammar and spelling. I'm much better off from having worked with, communicated and laughed with them over my life.

Re: The Future of Asynchronous IO in Python

#43

Do we really need to reinvent the wheels? Microservice, the async craze feels like, we now need to create a single wheel that is made up of many wheels, and spend an enormous time making it look and feel like a single wheel that was working fine, never mind that it serves absolutely no difference to the end user, it will make our next few years interesting because the old way of creating the wheel is boring and unexc…

Well, here is a good article: https://plus.google.com/+RipRowan/posts/eVeouesvaVX It seems that Amazon started using microservices in 2002. Do you think 12 years is not enough to learn on mistakes?

do they really use 'microservices'... or just services (SOA)? what are microservices anyway?

Re: The Future of Asynchronous IO in Python

#44
post #40

> (The GIL) is there for other scripting languages too (Ruby, Perl, Node.js, to name a few) I don't know about Node, but I know it's perfectly possible to write "proper" multi threaded programs in Perl (and has always been since the version string started reporting support for threads, which should be a good 15 years ago). It's not terribly relevant to the article (because you normally don't write multi threaded prog…

True, also relevant is that interpreter threads are officially discouraged now. http://perldoc.perl.org/threads.html#WARNING

Re: The Future of Asynchronous IO in Python

#45
post #17

It's frustrating. Many people want an interprocess subroutine call, and few OSs have the right primitives for it. (QNX does, and Windows sort of does, but the Linux/Unix world does not.) There's an endless collection of kludges so program A can call program B implemented on top of pipe/socket like mechanisms. OpenRPC and CORBA are out of fashion. Google protocol buffers help, but don't come with a standard RPC mechan…

This x1000. Has anyone used posix queues on linux for this? I work on a rube goldberg app that uses a custom protocol to talk to a c++ app that has a plugin system (bi directional comm between host and plugin dll), that talks to external processes over ipc. The ipc part is the cherry on top.

Re: The Future of Asynchronous IO in Python

#46

Earlier quoted context omitted.

> Many people want an interprocess subroutine call, and few OSs have the right primitives for it. (QNX does, and Windows sort of does, but the Linux/Unix world does not.) Could you please elaborate on Windows part of your statement? What particularly are you referring to?

COM/DCOM have offered a relatively usable solution for interprocess and cross-machine RPC for... quite a while. I used it to do interprocess communication back in the VB6 era (it was built-in), and in fact I did it by accident . I picked the wrong checkbox in the project options, so I ended up with the user interface of my application and the backend literally running in separate processes. Other than the performance…

> I picked the wrong checkbox in the project options, so I ended up with (...)

You accidentally summarized my experience with development on Windows in the nineties :-)

It's funny that what was designed as a feature of the ecosystem (tooling that abstracts complexity), completely turned me away from Windows development and into Linux development. Development on linux was, at the time, much cruder and closer to the metal. The positive note was that everyone was on the same boat, so documentation of low level routines, as well as community support, were flawless.

(not that I can, to this day, understand documentation created by kernel hackers, such as the documentation of nftables, tc or the ifb module, but I digress)

Re: The Future of Asynchronous IO in Python

#47
post #20

Earlier quoted context omitted.

Maybe I'm dumb, but doesn't splitting up a web application into micro services have many other benefits such as modularity, constraining complexity, code reuse etc.?

Modularity: No. Your headache in creating a system of micro services will just be that much greater if you don't have modular code. I wouldn't call that a benefit even if it does end up with you writing more modular code. Constraining complexity: It actually makes complexity worse (what do you do when microservice A goes down? times out? returns data you can't deserialize? takes too long?). These things you do not ha…

Bingo! It's extra funny when someone that dislikes distributed systems is pro SOA. How do SOA advocates not realize they are signing up for distributed systems? If you think keeping business logic decoupled is hard, try keeping network logic decoupled, oh and that unreliability thing, too.

Re: The Future of Asynchronous IO in Python

#48
post #17

It's frustrating. Many people want an interprocess subroutine call, and few OSs have the right primitives for it. (QNX does, and Windows sort of does, but the Linux/Unix world does not.) There's an endless collection of kludges so program A can call program B implemented on top of pipe/socket like mechanisms. OpenRPC and CORBA are out of fashion. Google protocol buffers help, but don't come with a standard RPC mechan…

is this 2004? D-Bus has been around for 9 years.

it’s not an OS primitive (yet: kdbus), but why does it need to?

Re: The Future of Asynchronous IO in Python

#49

Earlier quoted context omitted.

>A system which serves millions of users spans multiple machines. It's much easier to scale and evolve your stack if you're keeping it decoupled. It can be much harder. Let's say that you have a zipcode address conversion library and you're deciding whether to use it within the web stack (option A) or to create an additional service with a REST API on a separate machine (option B). Microservices! Option A means that…

I don't see why would you need to have a load balancer for the zipcode service; if the service truly scales linearly with the number of application servers, you can simply tie them together 1-on-1 with simple configuration.

What, so one extra zipcode server for every application server?

Re: The Future of Asynchronous IO in Python

#50

Earlier quoted context omitted.

I don't see why would you need to have a load balancer for the zipcode service; if the service truly scales linearly with the number of application servers, you can simply tie them together 1-on-1 with simple configuration.

What, so one extra zipcode server for every application server?

Or N-to-1. You still don't need load balancing, if it truly scales linearly, just configuration.
Post reply on HN