Computing for Humans

Philosophy

Capabilities of humans

a

interactive

visual

symbolic

Capabilities of the dynamic medium

a

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

a

Demo

a

Transcript

a

Two-way Dataflow

a

Direct Programming

a

Reifying Programming

a

Schematic Tables

a

Spreadsheet interface

Coda

a

SIEUFERD - Direct Manipulation of Queries

a

Reltron

a

Gneiss

a

Object Spreadsheets

a

Espalier

a

ZenSheet

a

Bret Victor

Drawing Dynamic Visualizations

a

Reform

a

Playfair

a

Mikaël Mayer

MikoWord

a

Sketch-n-Sketch

a

Chris Granger

Eve

a

Luna

a

Apparatus

a

Visualization

Polestar

a

Lyra

a

Designing a Flexible and Supportive Direct-Manipulation Programming Environment

a

Natural Programming

a

HARC

a

lively.next

a

Flex Group

a

p5.js-editor

a

DUX

r

Development as an Uplifting ExperienceDevelop with Joy!

Requirements

Status quo

Workflows

Specification

Roadmap

Architecture

a

Implementation

Inspiration

Click here to center your diagram.
Click here to center your diagram.