Remix.run Logo
fidotron 2 days ago

The confusion is possibly almost appropriate, given so much of his work was on creating systems which avoid confusion through using proper synchronized communication channels. The null pointer stuff is famous, but it's occam and the Communicating Sequential Processes work that were brilliant. Maybe it's also brilliantly wrong, as I think Actor model people could argue, but it is brilliant.

My favourite quote of his is “There are two ways of constructing a piece of software: One is to make it so simple that there are obviously no errors, and the other is to make it so complicated that there are no obvious errors.”

While we hope it's not true, if it is a very deserved RIP.

nextos 2 days ago | parent | next [-]

CSP and Hoare logic were brilliant. He was a huge proponent of formal methods.

He famously gave up on making formal methods mainstream, but I believe there will be a comeback quite soon.

On generated code, verification is the bottleneck. He was right, just too early.

dang 13 hours ago | parent | prev | next [-]

(btw the "confusion" here was confusion about whether he had actually died. this comment was originally posted to https://news.ycombinator.com/item?id=47316880, which was the thread we merged hither)

jacquesm 2 days ago | parent | prev | next [-]

And here we are throwing all that brilliance away with Async abominations. Software can be so simple and elegant.

eru 2 days ago | parent | prev [-]

Actor model would also be brilliantly wrong: it doesn't compose smaller correct systems into larger correct systems.

(Software) Transactional Memory and other ideas inspired by databases have a much better shot at this.

YorickPeterse 19 hours ago | parent [-]

Is this why software transactional memory is so prevalent today and the actor model is barely used?

eru 15 hours ago | parent [-]

Locks are even more prevalent today. And so was leaded gasoline.

(To be less snarky, locks are one way you can implement both actor model and Transactional Memory. But just like JMP instructions in your CPU, it's probably better to provide programmers with a higher level of abstraction.)