Yeah... that's way, way, way more complex than npm run dev

if i wrap a bunch of abstractions in a `make run` command whats the difference

Hot reloading is about the only difference if you're doing incremental builds.

For that, some languages are blocked by runtimes that don't support it. C can do it [0] so it's not a limitation of the static/dynamic divide.

[0] https://www.slembcke.net/blog/HotLoadC/

NPM is absurdly complex in comparison, it's just neatly abstracted. Maybe somebody will write a cross-platform reactive layer which can compile both natively and to the web?