in short: why a new language rather than extending a language that loves to be extended?
maybe they want to exclude mutable state totally? even then, wouldn't it be easier to hide the relevant special forms?
in short: why a new language rather than extending a language that loves to be extended?
maybe they want to exclude mutable state totally? even then, wouldn't it be easier to hide the relevant special forms?
> and i don't want to be that guy,
Nah. Be that guy. They are all valid questions.
> unless the type system (not mentioned here)
I had bits in about the type system but it got cut cause, well, it was too long. It has static types, (not many, the basic types required to parse json) plus first order functions. There are no user defined types beyond ad-hoc via maps/vectors. And it has "strong" typing and does type inference.
> but surely this screams out to be implemented in lisp
One of the reasons this developed into its own language is historical. It started off very, very simple and slowly evolved into a domain-specific language. But there are a set of design requirements that complicate the situation: 1) easy to deploy changes and patch running instances (response time is critical), 2) embedding in a service, interoperatibility with the service, and so on.
> want to expose a limited interface to the users?
Yes, indeed. Part of the goal is to make the language as simple as possible for analysts to use. Obviously you need to be technical to some degree to write in a functional language, but we were trying to make it a business-logic layer on top of the infra.