The goal of this project is to create a programming environment that is fun and efficient, where you can directly see and interact with the code you are editing.
There are two elements: Circa, a programming language; and Plastic, a cross-platform graphical tool for creating Circa code.
Features of Circa are:
Live coding. The user can examine and modify code while it is running. There's no need to restart the program to make changes.
Code is primarily saved as text, in a human-readable format that looks like a modern programming language.
Traditional visual programming (with a dataflow diagram that has lots of boxes and arrows) is supported.
Editing text files at runtime is also supported. The system can handle arbitrary changes to the source code of a running program. The current state of the program is preserved across a reload (as much as possible).
The format of compiled code is as canonical and simple as possible. It should be easy to introspect on code, and to reason about the code, without actually running it.
It should be easy to write tools which help the user create or modify code in novel ways. For example, imagine a drawing program, where the user clicks and drags to draw a square, and the end result is a small program with a "draw_square()" call.
