Author: Chance Coble for MSDN Magazine
Asynchronous programming is considered so difficult by many programmers that they create synchronous version of programs that could run more efficiently as asynchronous applications just to avoid the assumed complexity of asynchronous code.
Until recently those choices had little consequence. However, with new opportunities in distributed computing such as multiĀcore processors and service-oriented architectures, developers are beginning to feel the burden. A classic example of this is in I/O operations, where processor time could be employed more profitably while an I/O-bound operation is taking place. Plenty of applications exist where many files are read and processed or where a complex orchestration of Web services is called upon to retrieve data that is processed and then sent to another service.
In reality, an asynchronous program is a simpler arrangement than a synchronous one. An asynchronous program purposefully says nothing about the sequence of the commands to be executed. It is a lazy specification and thus should be simpler to define.
Full Story from MSDN Magazine
Related Links
Solving 11 Likely Problems In Your Multithreaded Code
Design Considerations For Parallel Programming
The Rise Of Functional Programming: F#/Scala/Haskell
Improved Support For Parallelism In The Next Version Of Visual Studio


