Thinking a bit more about this it seems to me simply that concurrency is
needed when a program needs to have some specific behaviour in the time
Many if not most of the IT programmers I have dealt with appear to have no
real understanding of the time domain nature of any particular problem (real
time or otherwise) - they think this is just down to bigger hardware or
something else and they are only required to provide the logic.
We are all the victims of this in our use of standard software which
regularly shows unresponsive behaviour. Actually printing in the background
was a pretty major achievement for word processors yet there are many other
places where timeouts and concurrency would save us from an endless wait to
regain control of our desktops.
More seriously in the internet this lack of regard to the time domain leads
to meltdowns and the world wide wait.
These are problems which were solved in the telecoms world many decades ago
for one simple reason:
The time delay between someone answering the phone and the speech path being
connected all the way back the originating end before the person says hello
is absolutely critical to the user experience 'ello 'ello. This time was
measured to be incredibly short (about 100 millisecs or so). The enormous
efforts of the telephone industry to achieve this using customised hardware
and custom programming languages leaves us with a rich set of tools where
all these problems are already solved...
So we find that only by providing easy to use and natural constructs for
control of the time domain element apparent in almost all programming
problems can we hope to overcome these problems. The rest of the IT world
struggles on with inappropriate technology when the answer is now readily
available thanks to Ericsson. And it's an FPL!
NOTICE AND DISCLAIMER:
This email (including attachments) is confidential. If you have received
this email in error please notify the sender immediately and delete this
email from your system without copying or disseminating it or placing any
reliance upon its contents. We cannot accept liability for any breaches of
confidence arising through use of email. Any opinions expressed in this
email (including attachments) are those of the author and do not necessarily
reflect our opinions. We will not accept responsibility for any commitments
made by our employees outside the scope of our business. We do not warrant
the accuracy or completeness of such information.