Hacker News new | past | comments | ask | show | jobs | submit login
Asynchronous Everything (joeduffyblog.com)
29 points by panic on Nov 20, 2015 | hide | past | web | favorite | 8 comments

The main reason Asynchronous programming exist is because file operations are slower than CPU.

With SSD and more hardware innovation how true will that stay ? I do think evangelizing async programming is a good think.

Async programming is essentially deferring some task so that your CPU stays busy.

However you cannnot async your entire application.

At some point you need to gather the various pieces of all your async call to perform some needed calculation. That is the main pain point of Async programming.

The main reason asynchronous programming exists is that useful programs generally have to communicate with some part of the outside world, which does not share the CPU's clock. To a very near approximation, all device I/O is fundamentally asynchronous; synchronous I/O is either an abstraction created by a multitasking operating system, a spectacular waste of CPU time, or a careful optimization used in certain circumstances on an embedded device. Yes, you really can async your entire application; having learned to code on primitive home computers in the '80s, I generally prefer to.

I think it is not just file and cpu and it is not safe to assume that everything depends on a single box in most cases (I think that is safe when talking about an OS as this is) An example would be network calls and database connections. I think Async can be helpful anytime one component can be much slower than others and that component cannot take advantage of all the resources the running machine. Even if that component could take up all the resources you may want to have interrupts or priority as well.

Agreed using procedural application environments, async is hard. But there are message-passing app environment where async becomes easier. They are duals after all.

And the advantages of async (or message-based) software systems are many. Too many to go into here.

There's actually unlimited room here.

Yeah but the internet is full of information, and I have limited time. 'Here' in this context means 'my capacity to contribute meaningfully and efficiently'?

Can you recommend any good literature?

This is really impressive work, and I fundamentally agree with a lot of the ideas presented in it.

Is there anything out there that's open-source that offers access to these kinds of constructs?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact