The why and how of triple scripts

It can be a little more complicated, but compilers are basically pure functions. The general expectation is that a compiler will read in a bunch of source files, process them, and then output a program. This is how the Go compiler works, for example, it's how GCC works, it's how the Roslyn and Mono C# compilers work, and it's how tsc and even JS bundlers work, too. Most compilers work this way. They're usually designed to run inside a terminal emulator, or maybe there's a project configuration setting that allows a button in an editor like VSCode to kick of the work. The thing is, though, they're just reading and writing files.

Whether you're developing something written in Java or C++ or for any other contemporary development toolchain, you'll need to make sure those tools are installed and set up. This can be a slight problem. Web browsers can read and write files, too, and it turns out that everyone already has one installed. What's the significance of this?

Suppose you were to write a program that does the same kind of work that conventional toolchains do, and you managed to implement and distribute it as a single file that can run in a web browser, then you will have created something that is almost certainly less hassle to get started with than the setup involved with any of the conventional toolchains themselves. The only setup that would be necessary for anyone to use your new compiler would be to get that file, and that's almost no hassle at all. And if people are trying to get that file because they want to build the source tree of your project that they just downloaded, then you could just put that file in your project, so they get a copy at the same time they get your source code.

Understanding this, one should realize that this puts us at a place where programmers across the world can eliminate a massive burden for ourselves and our prospective collaborators. It is a given that every programmer will spend some time struggling with their toolchains and pouring untold effort into the steps that are usually described as "setting up a development environment". (That is, if is actually discussed, and not left as an implicit step for others to figure out on their own.) Programmers who truly seek productivity gains and the acceleration of human effort as Engelbart described should be motivated to work towards enabling a way of working that resembles this workflow wherever possible, even if those programmers have misgivings about the particulars.