Darklang devlog #2: What next?
dev.to
dev.to
Difficult-to-understand features of a programming language shouldn't even be 'unlocked' unless there is some sort of need demonstrated by a line profiler or whatever.
As an example, Dark has "live values" which is where at any point in your program, we show you the actual value for the expression you're on. We use "traces" for this, which means the input (usually a HTTP request) as well as saved results of every expressions.
To accomplish this, we need a language where we can mark which functions are pure, where we can instrument the runtime, and where we can play the runtime back in our editor, filling in the saved trace values.
So nothing wrong with python, but it doesn't have any of those properties.
Similarly, we want your program to deploy instantly. That means that we need a technical way to deploy in 50ms (not sure that's available in python), but we also need language features that support that (such as feature flags built in, and the ability to safely make changes to programs). Otherwise, you'd find it's super easy to break your program with a typo.
This stuff is plausible in Python and many other languages, but seems super difficult.