Slide 1

Slide 1 text

Metaphors we compute by Siva Swaminathan 7 November 2020 http://sivark.me

Slide 2

Slide 2 text

Promoting end-user control of the computing experience Interesting ideas are in the air; more people are starting to grok an expansive vision of computing. These incredibly subversive ideas are, however, fighting against the inertia of dominant attitudes, so it's worth contextualizing the contrasting vision before digging deeper into it.

Slide 3

Slide 3 text

The civil war on General Purpose Computing

Slide 4

Slide 4 text

Drowning in devices ~10 networked devices per person (~2020 US; exponential increases anticipated)

Slide 5

Slide 5 text

Computers you put in your body & computers you put your body in "Electric" cars, and "smart" homes are practically the latter (subsuming everything from a bulb to a coffee-maker) Phones, tablets, watches, AR goggles, etc. are practically the former (all the way to cochlear implants, prosthetic limbs, etc.)

Slide 6

Slide 6 text

Locked-down devices "Right to repair"

Slide 7

Slide 7 text

Walled gardens "There's an app for that" A vision of almost-passive consumption Only mode of expression is through choice among given options (Think: Sheena Iyengar, The art of choosing)

Slide 8

Slide 8 text

-as-a-service Trade-off user control for convenience

Slide 9

Slide 9 text

Conway's law, with a vengeance Breaking the universality of computation, both incidentally and deliberately Products & services solve well-defined needs, but typically compose horribly.

Slide 10

Slide 10 text

The software freedom movement Stallman has repeatedly proven to be a visionary genius The right to read Free Software, Free Society

Slide 11

Slide 11 text

Big-tech sees like a state Are we serfs on a feudal estate?

Slide 12

Slide 12 text

Thirst for scale The only way to scale is to impose legibility through Procrustean simplifications Calvin Broadus on Facebook (real-names policy)

Slide 13

Slide 13 text

Ministry of (algorithmic) truth In a medium drowned in content, curation becomes exceedingly important. Centralizing curation is a means of consolidating power. Why not decentralize, instead of ceding control?

Slide 14

Slide 14 text

Always licensees, never "owners" Remote-wiping content from devices (DRM/etc) Surveillance capitalism Could be de-platformed on a whim! (email, social media, payments, shopping, etc) Forced arbitration agreements

Slide 15

Slide 15 text

We shape our tools; our tools shape us "Pull-to-refresh" Why promote outrage-porn? Why only 6 kinds of emoji responses on a FB post? Why does YouTube censor content disagreeing with the WHO? Passive consumption is too easy; deliberate use is not.

Slide 16

Slide 16 text

Why maximize engagement? Because on their deathbed, our users won't be thinking, "If only I'd spent more time engaging with brands." Your app makes me fat

Slide 17

Slide 17 text

Rethinking the computing experience Why Emacs rocks, and the potential for Notion as the desktop "I can be whatever you want me to be."

Slide 18

Slide 18 text

{files, apps, desktop} metaphor sucks Screenful of file/app icons… ugh! (>.<) Forced taxonomy of fierarchical directory structure is unergonomic! Email as a pseudo-todo-list! No natural place for liminal data! (Power-users might use an all-purpose notebook/wiki, but very difficult to tie things together.) The popularity of this gateway (go-to-market strategy) is not coincidental!

Slide 19

Slide 19 text

Crystallizing workflows & processes The hardest part of using an app is actually enforcing enough legibility on one's workflow, with the hope that it matches the assumptions of the app. Why not allow users to app-ify their own flows? (IFTTT, Zapier, Huginn, etc.)

Slide 20

Slide 20 text

B2B no-code products The black hole of Enterprise Software (TM) is largely about encoding & automating processes (Think Infosys…)

Slide 21

Slide 21 text

It's all CRUD clerical work Hardly any of our computer usage is actually computing in the sense of transforming data in motion; it's mostly storing and fetching data, with some trivial decision-making sprinkled on top.

Slide 22

Slide 22 text

"Software eating the world" Most of the hard thinking/transforming/decision-making is actually done by a human brain before feeding it in. All it takes to break the system is for a human to respond "fuck off"

Slide 23

Slide 23 text

It's databases all the way down! The most primitive computing concept is not an algorithm but a database – be it an array, a tree, a file, a filesystem, a website, the web/network, etc. The cloud is more a persistent database than a source of compute.

Slide 24

Slide 24 text

This is why SQL and Spreadsheets are among the most successful "no-code" tools, historically

Slide 25

Slide 25 text

Most apps are just walled DB interfaces! A browser: Viewing/updating webpages Office software: Viewing/updating documents, slides, spreadsheets Viewing audiovisual data (actually, not much else…)

Slide 26

Slide 26 text

Each app is a straightjacket Planning a trip, and booking travel & stay Financial planning Why can't I user Photoshop filters on Instagram, and vice versa? Researching a topic Analyze correlations between my exercise & sleep/weather Widget with real-time bus/train timings

Slide 27

Slide 27 text

How to expose data to the user? Should each tweet/email/post/comment be in a file, or whole corpus in a single file? What about likes or viewing metadata? Financial transaction data? Playlists? etc.

Slide 28

Slide 28 text

What might a usable solution look like? General database of blobs (backed by whatever physical media: RAM, HDD, network, etc) Each blob has custom viewers, depending on its type/format User can assemble blob/views as desired

Slide 29

Slide 29 text

All-purpose command palette Discord "bots", Superhuman email, modern editors Actually an ancient idea… In the beginning was the command line, by Neal Stephenson

Slide 30

Slide 30 text

Is all this reminiscent of something? OOP, MVC, "the Unix way", HyperCard… Decouple storage (backend) from access (frontend) Keep the backend stable, and allow innovation on the frontend (tags, search, AI-assisted, etc.)

Slide 31

Slide 31 text

A great model for practical computing, much better than procedural programming Better organizing principle for the school CS curriculum (Bootcamp graduates "coders" who can design apps & websites)

Slide 32

Slide 32 text

How much of this applies to hip tools like Notion, Roam, etc?

Slide 33

Slide 33 text

Examples of malleable software (Personal favorites) Emacs, Mathematica, Smalltalk (Pharo, Squeak, etc) Notmuch (Next gen.) Perkeep, Urbit, Nyxt browser, Glamorous Toolkit

Slide 34

Slide 34 text

We need personal clouds Devices that can persistently serve our connected clients, as the database backing our applications. (Nextcloud, Urbit, …)

Slide 35

Slide 35 text

How to rethink apps?

Slide 36

Slide 36 text

Customizable dashboards Why is the starting point for a student the same as a researcher is the same as a manager is the same as an artist is the same as…? Warm starts help inspiration-driven workflows Fight context-collapse, defending against the ubiquitous assault on attention

Slide 37

Slide 37 text

Reify intent A todo-list is very similar to long-division/multiplication scheme. Just like we help kids with math, why can't we help adults reify what they need to do, and then help them execute that?

Slide 38

Slide 38 text

Computing, for humans

Slide 39

Slide 39 text

Tools as an essence of being human Culturally, we are active problem-solvers & innovators, with a phenomenal capacity for social learning. Not just tool users, but tool makers. (the heart of convivial technology)

Slide 40

Slide 40 text

Situated software "designed for use by a specific social group, rather than for a generic set of 'users' […] doesn't need to be personalized – it is personal from its inception." Clay Shirky, on Situated Software An app can be a home-cooked meal

Slide 41

Slide 41 text

The IKEA effect "Labor leads to love." Then why alienate and disempower humans?

Slide 42

Slide 42 text

The feeling of home Home is where you are in control, envisioning a multitude of possibilities. Anything else is implicitly tying knots & imposing blinders. Will inevitably lead to feelings of frustration & alienation.

Slide 43

Slide 43 text

The learned helplessness of low expectations

Slide 44

Slide 44 text

Is computing any harder than cooking? Almost everybody learns cooking by adulthood

Slide 45

Slide 45 text

It's all about the onboarding experience A gentle learning curve from novices to power-users Humans are fantastic social learners. Immersed in the right environment, they will absorb ideas quickly.