I think the most important thing you said (slide 33) was that kids "should learn about Sequence, Concurrency and Event-handling (interaction) at the same time". This means getting in early, before the rot sets in. Once anyone has mastered all the nonsense and accepted it, and allowed their ego to profit from penetrating the obscure notation, you've had it. They never go back.
The recent arrival of a far better GCSE Computing (OCR), where programming is at last included, and without reliance on any single PL, is an opportunity. There is instead a reliance on pseudocode. Simon Peyton Jones appears to have influenced things. Perhaps a nudge here might see the pseudocode extended to include a parallel and ALT construction, along with communication primitives.
That leaves prioritisation, which IMHO is as important, and I've never felt happy with PRI PAR and PRI ALT, particularly with the combination. Badly missing prioritised vectored interrupts, which I grew up on, I proposed a 'when' construct for Honeysuckle, affording pre-emption. The trouble with that is that its component processes are more sequential than parallel, and must communicate somehow. All I could come up with was shared variables, with a little protection back from restricting assignment to one process each. There is some basis for this in Tony Hoare's original book, in his 'alternation' operator, but nowhere near enough. I'd really like to see a debate resume on what sort of prioritisation construct we need, and how to manage pre-emption. Theory is lacking, but I don't think we can wait for more.
I completely agree we are facing an exponentially worse situation wrt software development given the exponential rise in core count. We must begin with the youngest, I think.
On 30 Sep 2012, at 11:42, David May wrote: