Subtext: uncovering the simplicity of programming
PPIG'18 video submission:
10/3/17 LIVE'17 video submission: Reifying Programming
1/1/16 Subtext lives on inside Chorus
12/1/14 Subtext 5 video from Future Programming Workshop:
9/11/13 Screencast on types in Subtext 5:
type as subtext
8/21/13 First public demo of Subtext 5 at the IFIP Working Group 2.16 on
programming language design.
What is Subtext?
Subtext is an ongoing experiment in radically simplified programming.
It is radical in that I am willing to throw away
everything we know about programming and start from scratch.
This approach antagonizes both academics and professionals, but
it is what I must do.
I am focusing first on application programming, i.e.
websites and mobile apps and desktop apps.
Roughly speaking the goal is to combine the full power of an app framework
like Rails or Android with the simplicity and usability of a spreadsheet.
Subtext is not a Domain Specific Language but rather a general purpose
language designed from the ground up to make application programming
radically simpler and easier.
The history of Subtext
- Subtext 3 and 4 were successive experiments in a new semantics
of mutable state
I describe as synchronously updateable views.
I learned from those experiments that I need a type system,
which Subtext 5 incorporates.
- Coherence was a proposed semantics of mutable state that
I abandoned when I discovered it was irredeemably nondeterministic.
- Subtext 2 introduced a new representation of
conditional logic called schematic tables.
- Subtext 1 was the starting point that served mostly as a
manifesto and roadmap. It introduced the fundamental idea
of synthetic trees that has remained at the heart of Subtext
(although under a series of aliases).
- Example Centric Programming was my first exposition of the ideas
behind Subtext. [Onward!04 paper]