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.
Maybe, 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?
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.
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.
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
> 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
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.
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.
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.