4 ms·
Expresso: A simple expressions language with polymorphic extensible row types
- edgarbob 6y agoAre 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 6y agoTypes 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.
- throwaway894345 6y agoI 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 6y agoWell-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 6y agoDevelopers don't find functional languages helpful? Do you somehow believe that only Java programmers are called developers or what am I missing here?
- _bxg1 6y agoMaybe they meant "the particular developers that [they] make tools for"
- dunefox 6y agoDoesn't seem like it.
- throwaway894345 6y ago> 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 6y agoI mean, Scala is functional, pretty popular, and has a familiar syntax. Also ReasonML, if that counts.
- dunefox 6y ago> functional languages rank lower than other language paradigms on just about every index Because what is popular isn't what is best. > but retain the more structured (and probably more human-readable) syntax There is nothing more structured or readable about C-like syntax.
- throwaway894345 6y agoMy target audience is developers generally, not functional programmers specifically, and developers disagree with your assessment. Sorry.
- _bxg1 6y agoIt'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 6y ago> 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.
- wtetzner 6y agoPeople that prefer functional languages seem to be the only ones that care enough to put in the time to build them.
- lalaithion 6y agoThis 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.
- tathougies 6y agoCool! This is perfect as a little scripting language for Haskell.
- cgrealy 6y agoI get that the name references “expressions”, but the coffee cup and the misspelling of “espresso” really bothers my inner pedant. :)
- poizan42 6y agoIt's also already the name of a popular tool for designing regular expressions[0] (and may be infringing on their trademark) [0]: http://www.ultrapico.com/Expresso.htm http://www.ultrapico.com/Expresso.htm
- wtetzner 6y agoI would think the domains are different enough that trademark infringement shouldn't be a concern.
- poizan42 6y agoMaybe, but I think they both belong in trademark class 9 (Electrical and scientific apparatus). Ultimately a court of law would have to decide. But why even take the change?
- alexmingoia 6y agoLovely. Great work! I’ve been waiting for a language with ergonomic records using row-types.