Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This has to be one of the clearest academic papers I have ever read. Aside from the content, the author does a really good job explaining his thesis. I wish more academic papers were written this way.


I wish that none were written this way: Using a sample size of 4, the paper proposes some layer model. Already the first language (erlang) does not correspond to this model, yet the model will later be concluded to be the way to go: "A surprising result is that the four resultinglanguages have a common structure (comment: no, they don't). [...] I postulate that this common structure will be part of one possible definitive programming language".

Then we have four conclusions:

1. the notion of declarative programming is a the 'core' of programming languages

2. it will also stay there

3. it is concluded that message passing "seems to be the correct default for general purpose concurrent programming" (my emphasis)

@1: what's the 'core'? Without any useful definition, this is a meaningless statement.

@2: aha! The core seems to change over time. OK, I rephrase my last question: what's the 'core' today?

@3: First, it's a weak conclusion that something 'seems' to be the case. But, ignoring the odd usage of the word 'correct', how does the author support this conclusion? It seems like the author thinks that presenting a couple examples for your proposed solution (message passing) allows to conclude that a competing solution (shared memory programming) is worse. I fail to see evidence for that. Yeah, programming with locks is harder than programming with actors. But it's also more expressive, so the comparison is unfair. If you want to compare erlang to, say, java, you need to compare it to programming with higher level data structures (queues, actors, ...).

btw, this one's a gem: "Declarative concurrency is a deterministic form of concurrency that is much simpler to program with than the shared-state concurrency used in mainstream languages such as Java [18]" -- if you look at [18], it doesn't support the simplicity claim; it's a reference to Doug Lea's "Concurrent Programming in Java". The simplicity claim remains a claim. That may be sloppy writing. Or not.


I believe this was an invited talk at FLOPS, so the standards and expectations of rigor are a bit different.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: