Sam Lindley is a Reader in Programming Languages Design and Implementation at the University of Edinburgh. In this episode, he tells us how difficult naming is, the different kinds of effect systems and handlers, languages much purer than Haskell, and Modal logic.
[…] languages much purer than Haskell […]
But are they more pure than C?
http://conal.net/blog/posts/the-c-language-is-purely-functional
[…] our languages get more and more and more and more bloated with additional things. And at some point, we have to start again, and we should do that every so often.
Yeah. […]
transcript (0:56:58)
So which existing language(s) will be replaced?
The backers of Rust made a bold decision - a language to replace C - and as a result there are now several C-Rust translators to ease that process:
- Citrus / Citrus · GitLab
- GitHub - jameysharp/corrode: C to Rust translator
- GitHub - immunant/c2rust: Migrate C code to Rust
- GitHub - CrownBristol/crown: Crown is an ownership analysis guided C to Rust translator (built on top of C2Rust).
Even the likes of DARPA is getting involved:
- DARPA: Translating All C to Rust (TRACTOR) - The Rust Programming Language Forum
- DARPA suggests turning legacy C code automatically into Rust • The Register
In contrast:
- GitHub - dkorpel/ctod: Automatically translate C code to D
- GitHub - d-elicio/C-to-D-Transpiler-Project: A simple transpiler project that converts source code written in C to D code. The conversion takes place through a series of steps, including lexical, syntactic, and semantic analysis. The final result is a D code equivalent to that written in C.
This has to be the future of programming languages - the replacement of older one with new ones - because this:
(source)
has gone on for far too long already:
[The colloquial definition of] insanity is repeating the same mistakes and expecting different results.
Narcotics Anonymous
(…the mistake here being: starting another programming language because existing ones “get more and more and more and more bloated”! )
That last part is very true. Since I am not from the Anglosphere I was wondering what a “Reader” is in this context. So I looked it up and apparently it is a “professor without a chair”. Well, that cleared up my confusion. : )
It’s like a State, but you can’t change the wrapped value, only override it locally.
What if we replace C with Haskell?