Simply because no existing language was suitable to achieve the goals.
One example is the “deployless” feature - we want each keystroke to be instantly in production without breaking. We have specific features that allow this: partials, incompletes (similar to “typed holes” in some langs), an AST-based editor, feature flags (as part of the language), function versioning. All these allow you to edit code live without syntax errors.
Trace-driven development: trace driven development relies on a mostly immutable language, hooks for tracing in the runtime, knowing which functions are immutable
Some of these could be hooked into other languages probably - maybe we could have made something work. But we’d also have to deal with the whims of that language. App engine used to use a modified version of python, and django didn’t work properly and no-one liked that. So suppose we were using JS or Node as the language - people would want to use existing libraries and upload existing programs and expect them to work, including for example things that rely on specific linux packages or whatever. I’m not sure we could reasonably expect them to work while also supporting the advantages above.
OT: The site is typoed as Lobstrs on your release page. The dark license made me lol.
Whoops, thanks! On both counts maybe?
Why a new language to use your serverless service?
Simply because no existing language was suitable to achieve the goals.
One example is the “deployless” feature - we want each keystroke to be instantly in production without breaking. We have specific features that allow this: partials, incompletes (similar to “typed holes” in some langs), an AST-based editor, feature flags (as part of the language), function versioning. All these allow you to edit code live without syntax errors.
Trace-driven development: trace driven development relies on a mostly immutable language, hooks for tracing in the runtime, knowing which functions are immutable
Some of these could be hooked into other languages probably - maybe we could have made something work. But we’d also have to deal with the whims of that language. App engine used to use a modified version of python, and django didn’t work properly and no-one liked that. So suppose we were using JS or Node as the language - people would want to use existing libraries and upload existing programs and expect them to work, including for example things that rely on specific linux packages or whatever. I’m not sure we could reasonably expect them to work while also supporting the advantages above.