The story, so far, of ElectronRunner
I figured something out yesterday about devops runtimes and content management, and how to use JavaScript as the core language in a scripting environment.
by Dave Winer Friday, February 17, 2017

I've been working on a project called ElectronRunner.

It started as NodeRunner in an Electron shell, but its gone quite a bit beyond that. 

I've had this thought that Electron was going to be key to getting the kind of scripting I want to do in JavaScript that I do in Frontier.

A few weeks ago I realized that part of what was tedious about doing utility scripts in JavaScript is always assembling the same set of packages. So a common verb set was a goal. I shouldn't have to do anything to be able to call these routines. 

The second part, was, although I didn't know it when I started, putting aside the "async religion" of JavaScript, and flattening the scripting interface. 

What this means is functions return results instead of taking callback parameters. 

So this is how you'd copy a file:

file.writeWholeFile (dest, file.readWholeFile (source))

Turns out there are synchronous versions of a lot of the things that we do in JavaScript. You just have to look for them. They all have huge disclaimers, but those, if you think about it, only apply to code running in the browser or on the server. 

There is a third place. The place where you've had to turn to Python, where JavaScript just won't do, because it's too complex. In the one-off connective glue scripts you have to write to keep an evolving web presence working. That's a key idea. That's the third place. 

I wanted to mark this moment, I think I figured out how it'll work. And rather than lose the thought process that got me here, I recorded a 25-minute podcast, telling the story of how 40 years of dev work led to this place and hopefully far beyond. :balloon: