Computing for Humans

Philosophy

Capabilities of humans

a

interactive

visual

symbolic

Capabilities of the dynamic medium

reactive

can show multiple representations

connected

Information management

Principles

persistent

version-controlled

shared

access-controlled

extensible

arbitrary relationships

Key concepts

Content

a piece of information

Property

relationship

Built-in properties

object's

type: Type

name: String

type's

containment: Truth

main representation: Property

Data source

API

<subject: Data>'s <property: Property>: Data

whose <property: Property> <condition: Condition>: Set of Data

Condition

one of

Negated Condition

negated condition: Condition

Equals

object: Value

In

objects: set of Value

Numeric

<

<=

>

>=

String

starts with

ends with

contains

matches

Activity

special content that stores state of manipulating content

Generic data browser

Representations

special derived property

Computation

Principles

direct manipulation

continuously display the output and operate on it

visualize structure clearly

concreteness

default values of types

create by example, then abstract

operations

bind property to another property

existing

new

bind property to data set (map)

existing

new

= name object

make conditional based on another property

split data set

Derived property

Language

refer property

map

aggregate

built-in: count, sum, average etc.

custom: reduce

recursive reference

example: linear layout

element's left = if is first then 0 else previous element's right
element's is first = previous element is null
element's previous element = element whose index is the element's index - 1

union

filter

sort

create record

header: type

subcolumns: fields

conditional (switch)

header: column reference

subcolumns: cases

Implementation

Inspiration

Jonathan Edwards

a

Chorus

Demo

Transcript

Two-way Dataflow

Direct Programming

Reifying Programming

Schematic Tables

Spreadsheet interface

Coda

SIEUFERD - Direct Manipulation of Queries

Reltron

a

Gneiss

Object Spreadsheets

Espalier

ZenSheet

a

Bret Victor

Drawing Dynamic Visualizations

a

Reform

Playfair

Mikaël Mayer

MikoWord

a

Sketch-n-Sketch

a

Chris Granger

Eve

a

Luna

Apparatus

a

Visualization

Polestar

Lyra

a

Designing a Flexible and Supportive Direct-Manipulation Programming Environment

a

Natural Programming

HARC

a

lively.next

Flex Group

a

p5.js-editor

DUX

r

Development as an Uplifting ExperienceDevelop with Joy!

Requirements

Status quo

Workflows

Specification

Roadmap

Architecture

Implementation

Inspiration