userland - hisham · userland hisham muhammad creating an integrated dataflow environment for...

20
Userland Hisham Muhammad creating an integrated dataflow environment for end-users [email protected] @hisham_hm LIVE 2019 - Athens, Greece

Upload: others

Post on 01-Oct-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece

Userland

Hisham Muhammad

creating an integrated dataflow environmentfor end-users

[email protected]@hisham_hm

LIVE 2019 - Athens, Greece

Page 2: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece

A quick introduction

PhD at PUC-Rio

programming languages group: LabLua

sneaking into HCI classes (EUD, systems thinking…)

thesis: “Dataflow Semantics for End-User ProgrammableApplications” - case studies on LabVIEW, Pure Data, Excel

Page 3: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece

An itch that goes way backGeneral insatisfaction with computing

that love/hate feel that drives people into PL research

Deep nostalgia for the Apple II days

that sense of ownership and power that users have lost

A deeply ingrained OSS ethos

if you don’t like it, change it

Page 4: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece
Page 5: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece
Page 6: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece

That sense of ownership and power

Divide between end-users and programmers

we still have that power! but we took it away from users

But we are still on super clunky tools

a screenful of terminal emulators? really?

Page 7: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece
Page 8: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece

Can we do better?

Page 9: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece

Lessons learned from success stories

Programmable environments users love

LabVIEW, Pure Data (Max/MSP), Excel

What do they have in common?

Page 10: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece
Page 11: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece
Page 12: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece
Page 13: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece
Page 14: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece
Page 15: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece

Userland

Integrated Dataflow Environment

inspired by the common core of dataflow apps

a “shell” for multiple types of applications

implemented as modules (“mods”)

Page 16: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece

Demo time!

Page 17: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece

Current status

Ongoing prototype written in Lua

using Love2D graphics engine

Application modules in Lua

spreadsheet, shell, synthesizer

Fleshing out details of the semantics

Page 18: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece

Future directions

Robust core

“rewrite it in Rust?”

Stable API for application modules

UI improvements for multiple modes of interaction

mouse/touch friendliness, etc.

Page 19: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece

Thank you!

https://userland.org

[email protected]@hisham_hm

Page 20: Userland - Hisham · Userland Hisham Muhammad creating an integrated dataflow environment for end-users h@hisham.hm @hisham_hm LIVE 2019 - Athens, Greece

Appendix: Classification, as of todayBox-line representation: not yet (intended)Iteration: not yet (intended)Subprogram abstraction: not yet (intended)Selector/distributor: sort of (shell)Flow of data: UnidirectionalSequence construct: no (not yet?)Type checking: no (not yet?)Higher order functions: noExecution mode: data and demand-drivenLiveness level: 4 (live)

Dataflow model: staticN-to-1 inputs: noSeparate edit/use views: noTime-dependent firing: yes (synth)Rate-based evaluation: synchronous (synth, shell)Indirect connections: noDynamic connections: no (not yet?)Textual sub-language: imperative (shell), functional (spreadsheet)Scripting: Lua