Subtext programming is designed to be easy for developers to write, and use. It is primarily intended for programmers who are not experienced with object-oriented languages themselves, and who want to create small programs without the extra work of developing their code in more formal, syntax-highlighted languages. As the authors suggest, this may make it useful for small companies with just a handful of programmers: “Subtext can be written as a complete computer program, using almost any text editor, within a few hours (and sometimes minutes) at most.”
Subtext programming has some strong similarities to a similar system called Functional Reactive Programming (FRP). The authors believe that both systems are motivated by the same desire to provide programmers with a simple, easy to learn way of creating and writing applications. In a similar vein, they believe that these languages should be usable by a wide range of different programmers and in a wide range of environments, including “assembly-language-like” languages such as Visual Basic. For example, if you use Visual Basic’s.Net on a Linux or Unix server, it could potentially be possible to run your program in a Windows-style environment.
When developing a Subtext program, developers usually write code in a text editor. This text editor is typically the Sublime Text or TextWrangler, or the equivalent. Developers then drag the blocks from their text editor into the programmer’s console, where they can be interpreted by the programmer’s program interpreter, a piece of software that translates the code into an executable form that will run. The programmer is also expected to have some familiarity with both the programmer’s code and the interpretation tools that the programmer uses. The interpreter will translate the code into a format that is readable to the other programmers who work on the project.
The developers’ code is not the only part of the programmer’s source code. Many interpreters can support a series of metadata files, or meta-tags, which are interpreted as well, although not directly by the interpreter.
Subtext has some features in common with another programming model known as “model-driven programming.” Model driven programming is designed to create applications by modeling the data that the application is intended to process and how it is going to be stored and manipulated. Both Subtext and model are driven programming model the programmer’s code as a collection of sub-programmers, with the interpreter acting as the programmer and the Meta-interpreter as a set of commands that are interpreted by all of the sub-programmers.
Another difference between Subtext programming and model-driven programming is that, in a model-driven programming, the programmer’s code and metadata are both read and written by the interpreter. In Subtext programming, however, metadata is read by the programmer, while the code that are interpreted by a set of commands, rather than the Meta-interpreter. Both models are used in the design of real-time computer systems.
Metadata is often used by the Meta-interpreter to allow for the ability to customize the output, by allowing programmers to control what parts of the Meta-interpreter are executed and which parts are interpreted. The Meta-interpreter, however, does not have any ability to modify the source code and only acts as a bridge that allows for customization of the Meta-interpreter’s output.
Meta-programs are often referred to as “programmable interpreters.” A programmer’s Meta-interpreter is called “modifiers,” and these modifiers are created in Meta code, and then embedded in the actual source code. When the source code is translated into Meta code, the modifiers are inserted and the translated into Meta code.
When developing a Subtext program, developers often use Meta programs to make sure that the program is as efficient as possible. When developers use Meta programming, they typically do not change or modify the source code. as the Meta-interpreter can be modified and changed easily by the programmer.