[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: A path for CSP-based Solutions towards HUGE Industrial Success.
Hi Peter, and others...
Thank you for the useful comments.
+ = TRUE
o = NEUTRAL
- = not TRUE
Obviously: the truth in non-maths is never TRUE or FALSE,
but somewhere inbetween, it is never NEUTRAL either.
> They won't pick it up though because:
>
> o CSP is "different" to what people are used to ... presumably large serial
> designs, threads-and-locks or passive structures kicked around by
> call-backs ...
+ Industry is used to mutexes, because that is the Operating Systems standard.
+ OS's inter process communication via streams, typically between processes
having different addresses is considered inefficient.
+ CS Process is immediately mapped to OS Process, getting the ideas of a
thread based implementation across requires about a week of talking.
o Good OO designers end up with Process (CSP)-based designs!
This can also make it harder for them to believe that
CSP is fundamentally different.
- Large OO designs are intrinsically parallel... (which is the problem)
People realize this quite easily.
> o CSP is remembered from college days - if at all - as some pretty hard
> maths ...
- not TRUE: my experience is that IF people remember Occam, they
remember it as a Good Thing.
+ TRUE: the math is considered "difficult"
> o although most things are an admitted "mess", we're "getting by" ... and,
> anyway, our customers don't know anything can be done about it ...
- not TRUE: The application here is NOT a mess. Some parts are a mess,
but redesign actions are started to solve those problems.
- TRUE for some departments. However, their "mess" is NOT cannot be
solved by using CSP-techniques. They probably simply need a better
organization/people. CSP is NOT seen as the solution, and they are
usually right. Furthermore, they do not have the insight to see
the CSP indeed COULD help.
+ TRUE: customers cannot see the difference.
> o CSP, because it's not the norm, is "high risk" ... unlike what we're
> doing at the moment ...
+ TRUE: it is weird, OO is THE religion.
- It is not that weird: people know TCP/IP and computers. That association
is immediately there.
> All the above I have been told so many times by so many people over so many
> years - including very recently by senior decision makers in one rather large
> and influential technology provider.
I have tried to put it into perspective...
I my opinion there is some truth in everything, but it is not the full
truth. Putting it into perspective is ESSENTIAL to gain the experts.
You have to be telling pretty much the FULL truth.
Be realistic: CSP is not a new world! It does not solve ALL your problems.
CSP-based ideas currently are quite a bit a way from PERFECT.
With current practise, it looks like an ugly rat (see older mail)
Note that at the WoTuG Conference, CSP looks like being a RELIGION different
from OO. Be realistic: do not present CSP as a religion, but as a REALISTIC
MEANS to solve PRACTICAL problems!
> BUT ... we're wearing them down! I am optimistic that a whole bunch of
> circumstances means that resistance, as they say, will soon be futile.
In this series of mails I have tried to put things into perspective
to reach exactly that. I hope CSP academia turn out to be realistic
scientists that try to avoid "religious" "world improving" terminology.
I know this is difficult: I believe in the solution as much as many of
you do.
> Now - much more than the mid 1980s when appication needs/ambitions were
> much lower - would be the time to launch transputer and associated software
> and hardware technologies. The applications really do need them.
I do NOT agree!
There are two reasons to use a parallel processing system:
1. The application is intrinsically distributed.
In that case, there is NO PROBLEM. You are pretty much FORCED to use
Message Passing, therefore the CSP-based ideas are already implemented,
and CSP will help only marginally: indeed, the proving maths help in some
systems.
2. The application needs a lot of performance.
Only few application need a LOT of computing power.
People usually buy a large processor. One large processor is usually
cheaper than a few smaller ones.
Computer power grows exponentially (doubling every 1.5 year).
By using a TWO-processor system, you can only be 3 years ahead (in theory).
In practice, the communication overhead will be too large to get any
benefit at all.
Furthermore, applications that need a lot of computing power can usually
use BSP-based methods or Farming as a solution. The benefit of CSP
in those cases is limited.
Conclusion: the use of CSP for parallel systems is in fact limited!
I think the power of CSP is in:
- LARGE SINGLE PROCESSOR APPLICATIONS, in
which the OO method has proven to FAIL.
- Hardware/Software codesign, see
Handle-C, and similar approaches.
> So, maybe we should stop giving away solutions on a plate and start *selling*
> them instead. They'll take that seriously! Who wants to be a millionaire?
Philips would never buy JavaPP.
Only a limited subset of the library is useful
to us: the CORE. That CORE can be rebuilt within
a couple of weeks. (I know your solution would have
some more MARGINALLY better ideas)
Furthermore, we use a different OO language.
The integration effort is orders of magnitute higher than
building the basic blocks.
A company would never make their core business
depend on some weird academic excercise. In other
words: get real!
To make money, either:
1. Some startup company needs to pickup the ideas.
They get the money, and after years, you might get some
fame and money due to point .2. (you could try to be
that startup company...)
2. You start (in coop with industry) solving real industrial
problems, and start making money as an advice centrum. This
will make the university very happy...
The second option is the one I suggest.
By the way: this mail is not meant personally; I like, and
respect, you, Peter, a lot! If I didn't, I wouldn't even
bother to write this e-mail...!
I'm just trying to put things into perspective.
Cheers,
Marcel