It's great because of how accessible it makes compilers to average programmers, and, as a bonus, it also throws shade at the overly dense compiler textbooks:
"Classic compiler books read like fawning hagiographies of these heroes and their tools. The cover of Compilers: Principles, Techniques, and Tools literally has a dragon labeled “complexity of compiler design” being slain by a knight bearing a sword and shield branded “LALR parser generator” and “syntax directed translation”. They laid it on thick." (chapter 6)
Having read Compilers for a compilers course in college, Crafting Interpreters was a fun read on many levels.
I believe that structured concurrency will (slowly) cause a massive paradigm shift with regards to concurrency in the same way that structured programming [2] did, and just like "Go To Considered Harmful" kicked off structured programming, "Go Statement Considered Harmful" will be looked to as the work that kicked structured concurrency off. (It's also fun that they have similar titles!)
In fact, I think that someday, someone will prove a "Structured Concurrency Theorem" that is to concurrency what the Structured Program Theorem [3] is to programming in general; I believe the Structured Concurrency Theorem will say something like:
> Any concurrent program can be rewritten to an equivalent program that uses structured concurrency.
I could be wrong, but I would bet heavily on this. In fact, I am betting heavily on it by making a language based on structured concurrency that would compete with Rust. I'm so confident in it that I would bet that Rust either adopts structured concurrency or will be replaced by languages that do. This is despite Rust's current popularity.
Also, I've been exploring ways to prove the Structured Concurrency Theorem. I'd love to be the one to prove it.
[1]: https://vorpus.org/blog/notes-on-structured-concurrency-or-g...
[2]: https://en.wikipedia.org/wiki/Structured_programming
[3]: https://en.wikipedia.org/wiki/Structured_program_theorem
I agree with everything you have said, but I think it won't matter, for three reasons:
1) The switch to structured programming still happened, even with the performance hit. The advantages were so large that the performance hit didn't matter. I think the same will happen will happen with structured concurrency because I think the advantages are also that much larger.
2) The performance of structured concurrency can be improved with many techniques, including thread pools (to reuse threads).
3) If structured concurrency starts to take off (and I argue that it is), then system software will be optimized for that case. For example, Linux's clone() syscall might be optimized for the "create thread" use case. I think other OS's would do the same.
Nevertheless, you are completely right.