Channels ▼   When Tasks Replace Objects  Two issues would emerge
as crucial pinions of program design: the task itself and the
synchronization of tasks. Right now, we don't think in tasks
unless we're working on sever apps. We don't have a good sense
of how big or small tasks should be, how specific or generic to
make them, etc. We also don't quite know how to apply the rules
of task design and implementation. What are the smells and anti-
patterns when it comes to tasks? All this we don't know well,
because we don't yet think in these terms except for narrowly
circumscribed activities.  The second skill that would become
necessary is the synchronization of results. Given that many
programs ultimately seek a result that appears to be sequential,
coordinating asynchronously generated results requires a
recombinational step to produce the correct output. Sequencing
is inherently opposed to parallelism, so techniques that
diminish the penalty of synchronizing would become increasingly
important. Likewise algorith