Subtext: uncovering the simplicity of programming
News:
11/1/22
Interaction vs. Abstraction: Managed Copy and Paste.
To appear at PAINT'22. [recorded demo]
10/19/21
Returning to the beginning: Typed Image-based Programming with Structure Editing
at HATRA'21.
[blog post]
[paper]
[recorded talk].
12/9/20
Here lies Subtext
10, which tried to solve the Update Problem. I'm publishing it mostly to share the design rationale. The most
theoretically interesting bit may be Feedback.
4/28/20
Subtext 9 has fallen between the cracks, and all it gets is this lousy blog post.
8/29/18
Postscipt to PPIG talk:
Managed Copy & Paste
6/14/18
PPIG'18 video submission:
Direct Programming
10/3/17 LIVE'17 video submission: Reifying Programming
1/1/16 Subtext tried to hide inside Chorus
12/1/14 Subtext 5 video from Future Programming Workshop:
Two-way Dataflow
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.
[Screencast]
[Onward!09 paper]
- Subtext 2 introduced a new representation of
conditional logic called schematic tables.
[Screencast]
[Onward!07 paper]
- First Class Copy & Paste formalized the core theory of Subtext 1.
[Tech report]
- Subtext 1 was the starting point that has served as a
manifesto and roadmap. Received the 2015 Most Notable Paper award
from Onward!.
[Screencast]
[Onward!05 paper]
- Example Centric Programming was my first exposition of the ideas
behind Subtext. [Onward!04 paper]
Social matters