[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: New Book: CONCURRENCY
>The neat thing about occam is that it enables the *ordinary* programmer
>on the Clapham omnibus to engage successfully in complex design and
>implementation. You don't need to be fluent in CSP to get its advantages
>... you just need to use something that has its simple formalisms and
>compositional semantics built-in. And OO just doesn't hack it ...
To add my fourpenny's worth:
I agree entirely that we need tools that do not require explicit maths
each time you design a new system. The brief I gave Jeremy for a PhD
project was (to paraphrase): Older, more mature, engineering disciplines
rely, not upon explicit maths, but upon DESIGN RULES that _encapsulate_
the necessary mathematical principles, and which are easily applied with
only modest knowledge and ability expected.
This is precisely why we use a high level programming language in
preference to an assembler. Those rules of syntax are design rules. They
reduce the number of programs we may write in exchange for certain
guarantees.
To me, by far the most significant result of Jeremy's work was that, not
only are such design rules possible for programs (with formal rigorous
proof), but that they are...
1 Not unduly restrictive
2 Permit _automated_ validation _a priori_ with acceptable complexity
(i.e. applicable
to large programs, not just toys). I wonder how far mechanical
engineering would have
progressed if design relied only upon 'a posteriori' formal methods,
like most of those
touted for software design, which impose mere trial and error.
I have since devoted much thought to whether this allows for a "super
occam", in which no valid program can deadlock.
Ian
PS Just for the record, I seriously doubt the value of inheritance.
Outside of big application frameworks, I have seen precious little
worthwhile use. Somewhere (don't press me for reference) I have seen
published surveys that support the claim of little tangible benefit. At
very least, IMHO it should be confined to compile-time, and not invade
run-time. It's (synchronous) message-passing that matters.
Adoption of new ideas clearly has little to do with tangible benefit and
a lot more to do with fashion, and sounding plausible. A bit like
business computing, which, according to a Harvard Business School
academic, has failed to yield any improvement so far in US business
efficiency!
Dr. Ian Robert East Ian.East@xxxxxxxxxxxxxx
(+44) (0) 1865 373268
57, Kidlington Road, Islip, Oxfordshire OX5 2SS, England