[HN Gopher] Expresso: A simple expressions language with polymor... ___________________________________________________________________ Expresso: A simple expressions language with polymorphic extensible row types Author : wtetzner Score : 37 points Date : 2020-06-12 18:11 UTC (4 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | lalaithion wrote: | This is amazing! What I really want on top of this language is | the ability to take protobuf or cap'n'proto definitions and be | able to use them seamlessly in this language, and then spin up | AWS lambda or GCP functions that use this language + proto | service definitions to communicate with the outside world. | throwaway894345 wrote: | I wish there were more statically typed embeddable languages that | weren't functional. I mostly make tools for developers and that | audience doesn't especially find the functional syntax or | paradigm to be very helpful. | centimeter wrote: | Well-designed type systems tend to show up in functional | languages for good reason, especially if we restrict ourselves | to small languages. It's much easier to make coherent typing | rules in languages with clean semantics. | dunefox wrote: | Developers don't find functional languages helpful? Do you | somehow believe that only Java programmers are called | developers or what am I missing here? | brundolf wrote: | Maybe they meant "the particular developers that [they] make | tools for" | throwaway894345 wrote: | > what am I missing here? | | Java isn't the only non-functional language and by virtually | every measure, functional languages rank lower than other | language paradigms on just about every index (e.g., TIOBE | doesn't have a single functional language in their top 20). | If I had to guess, people find the spartan syntax hard to | read and gratuitously unfamiliar, especially considering | there are many highly-ranked languages which borrow | functional concepts but retain the more structured (and | probably more human-readable) syntax. | smabie wrote: | I mean, Scala is functional, pretty popular, and has a | familiar syntax. Also ReasonML, if that counts. | brundolf wrote: | It's my guess that a rich static type system would be harder to | implement for a non-functional language, due to mutability and | such. Though there could also just be cultural overlap between | the people who want to write a small statically-typed language | and the people who like the functional paradigm | throwaway894345 wrote: | > It's my guess that a rich static type system would be | harder to implement for a non-functional language, due to | mutability and such. | | Only if you represent (im)mutability in the type system, and | I would argue that you shouldn't for an embedded scripting | language. We don't want to constrain every aspect of the | program to the type system; we just want some quick assurance | that the shapes snap together properly. | | > Though there could also just be cultural overlap between | the people who want to write a small statically-typed | language and the people who like the functional paradigm | | No doubt. | edgarbob wrote: | Are there any good starting places for learning the necessary | type theory to understand this stuff? I really like the idea of | extensible row types, but struggle with trying to understand the | research papers. | bjourne wrote: | Types and Programming Languages by Pierce. Available online if | you search for it. Expresso appears to be, more or less, an | extension of the toy language implemented in that book. | tathougies wrote: | Cool! This is perfect as a little scripting language for Haskell. | cgrealy wrote: | I get that the name references "expressions", but the coffee cup | and the misspelling of "espresso" really bothers my inner pedant. | :) ___________________________________________________________________ (page generated 2020-06-12 23:00 UTC)