3 ms·
Programming language theory has been successfully taken over by functional programming, while programming languages in practice, those used by people, are large
by fooker 1y ago
Programming language theory has been successfully taken over by functional programming, while programming languages in practice, those used by people, are largely not functional languages.
This means we users, and specifically for me, compiler developers rarely get to use the fruits such theory and research, making tools a but janky in practice.
- disconcision 1y agoi'm not convinced takeover is a fair description. its true that functional languages are over-represented in the more theory-laden subfields, but this is in on small part because functional languages are easier to reason about. 'reason' here is not intended in any prescriptive sense, just in the sense that they are more mathematically circumscribed. proving anything in an imperative language is going to mean proving it in the purely functional fragment of that language first and then drawing the rest of the owl, so when someone wants to try something new they're probably going to try it in mice first.
- fooker 1y agoYeah that's a fair description for PL theory.
- asplake 1y agoProgramming languages in practice borrow heavily from functional programming. Polymorphic types, closures, generators, immutability, various nomadic things etc all came from there.
- fooker 1y ago> Polymorphic types Pre-dates usable functional programming languages. > immutability Good point. Even if it doesn't have much to do much with functional programming, it did originate from FP languages. > closures, generators, monads These are really concepts needed to make up for the limitations of a pure functional layer of abstraction in a imperative world.
- asplake 1y ago> These are really concepts needed to make up for the limitations of a pure functional layer of abstraction in an imperative world. Yet they have been found to be much more widely useful. Closures as callbacks, generators as the basis for coroutines, and monads for error handling, not to mention things like C#’s Linq.
- fooker 1y agoI don't disagree. The counterparts of these concepts in the everyday programming world are fairly common sense design patterns that have been in use for fifty years. The names and the beautiful theory for reasoning about them come from FP languages for sure, but that's the side effect of all PL theory being approached as FP theory, and are not fundamental to the 'functional' aspect of functional programming.
- asplake 1y agos/nomadic/monadic/!
- mikhailfranco 1y agoDigital monad - doing PLT in Bali?
- fooker 1y agoInteresting scheme