SDIPD

Triple scripts are an embodiment of the SDIPD principle (think "serendipity"). SDIPD stands for "package distribution is source distribution [sic]". (Yes, really. Equality is commutative.)

Given the state of conventional software development, it follows that software obeying the SDIPD principle must eschew with conventional toolchains, requiring instead non-destructive compilation (if any compilation occurs at all). Traditional compilers take as input human readable source code and mangle it to produce an executable from which the original source code cannot be recovered. This implementation detail of computing systems catalyzed the free software movement in the 1980s—later the movement was retrofitted to operate under banner of "open source", a term that arose in 1998 motivated by the release of the Netscape Navigator source code. Much of the free and open source software corpus, however, does not exhibit or enable a form of computing with the goal of non-destructive compilation. Even if the source code is readily available, most projects' build procedures still rely on compilers that perform the destructive process of transforming human readable source code into binary executables and object files suitable for loading into memory when the program is run but unfit for further editing—at least not with the same fidelity as edits to the original ("source") code. With non-destructive compilation, the program maintains some level of readability for humans whether in its compiled form or in its pre-compilation form, and indeed the executable produced by the compiler can be considered equivalent to the original source code from which it was created; that is, it is possible reverse the compilation process to reproduce the original source code with perfect fidelity. That's a precondition for non-destructive compilation generally; for the non-destructive compilation approach that triplescripts.org takes in particular, it's feasible for a human to open the compiler output and modify it directly to effect the sorts of changes he or she desires, with no need for intermediate decompilation and recompilation steps (although this approach is of course available to the machine operator).

Among other properties that triple scripts exhibit, the triple script file format was designed to respect SDIPD. The triplescripts.org reference compiler trplkt applies non-destructive compilation to the programs it processes. (The obvious question is whether trplkt as a program itself exhibits SDIPD, and the answer is "yes"; trplkt is itself implemented as a triple script.)