This is an article aimed at techies!
There’s a handful of other techies who seem to be thinking along somewhat similar lines to me. Here’s a list of such people and their related projects:
Bret Victor’s Dynamicland
Omar Rizwan’s Folk Computer
Tim Berners-Lee’s SOLID and WWW
Alexander Obenauer’s Itemized and other work
Jonathan Edwards’ Subtext and other work
Beaudouin-Lafon’s Substrates and Webstrates
Chris Granger’s Eve
Rahul Gupta’s Syntropize
Guyren Howe’s FREST
Chris Gebhardt’s InfoCentral
Chris Shank and Orion Reed’s Folk Canvas
Michael Brockman’s Bubble
Federico Pereiro’s Cell and TODIS
Duncan Cragg’s Object Network or Reality Network
I propose to label them all as members the Data-First movement!
There are two other movements related to this: the Malleable Systems Collective and the Local-First movement. The Data-First movement has many similar beliefs to each of these, especially around empowerment and freedom, and in fact lies somewhere in-between, being included in the umbrella of Malleable but itself embracing Local-First.
Clearly, this grouping of related projects should not be based on “similarity to Duncan Cragg’s work”!
So what exactly do these projects have in common that makes them “Data-First”?
Let’s take a quick dip into a major driver behind many of the projects above: app-free computing…
App-free computing
Another name for the core driver behind this movement could be “app-free computing”: operating systems or environments without apps or application programs.
I wrote my thoughts on that here:
In summary: apps take over and trap our data, splitting it all up into islands controlled by far away techies and Big Tech corporations. This is dis-empowering for all of us and leads to mass surveillance, censorship and manipulation. We don’t truly own our own devices, data or identities.
So a key characteristic of a Data-First project is simply that it is exploring ideas that effectively allow us to escape this “app trap”. This goal or end result needn’t be stated by the project explicitly for them to be considered for membership in the Data-First movement project list.
Data-First is more positive!
But: I find the whole “app-trap” angle to be too negative for an ongoing movement.
I think we need to describe what we want, not what we don’t want!
Of course as soon as you dispose of apps, you immediately have no choice but to focus on the data instead. The data has now been freed from the app trap, and now we’ve got to decide what we want to do with it!
So another way of characterising a Data-First project is that it focuses directly on the presentation and management of our data, instead of making us all run application programs to access it.
This should ideally be described by the project as something like “research or innovation towards the future of everyday human interaction with computing devices”. We’re looking more for open source and academic works than commercial ones. If Data-First hits the headlines or the marketplace, then all hell breaks loose and nothing means anything any more.
Data-First needn’t be an operating system, or 3D!
Even though I personally prefer Data-First as an app-free operating system, a browser-like application can still qualify for the Data-First list; at least three of the projects here (SOLID, Webstrates and Folk Canvas) take that approach. As long as it’s driven by a desire to put a user’s data ahead of opaque apps, it’s good.
I also believe that it should work just as well in 3D or XR. I don’t expect any other project in the list to take that view, but a sense of creating an interactive space or a 2D gaming world would be nice. Dynamicland is getting there, given that it all happens within a 3D physical space!
The Data-First Challenge!
I thought it would be interesting to pose a challenge for all these projects to help bring out their features and approaches. So here it is - please show us how you’d implement this in your Data-First system:
Chat functionality:
two users at two devices (let’s say they can already see each other over WiFi)
chat room (message sequence) hosted and owned on one of those devices
both users can create and add messages to the end of the sequence
each can see the sequence update instantaneously with every new message
Gathering Data-First projects
As I said above, all you need if you’re to be listed within the Data-First list of projects is an apparent desire to find ways for people to interact with computers that put their data first, thereby freeing them from apps and application programs.
Below, I will briefly describe each of the projects in the list, in a rough order of “project fame and Data-First-ness”! I also pose some questions that I personally would like to discuss with their creators (within a putative Data-First forum)…
Dynamicland (and Folk Computer)
Summary: Dynamicland’s philosophy is “be present on-site” and “physical” computing: you interact with physical objects in collaboration with others also physically present. Those physical objects are effectively enhanced with computation abilities. There’s a focus on numerical and graphical data types.
Lead: Bret Victor (and Omar Rizwan)
Website: https://dynamicland.org (and https://folk.computer)
Questions I’d like to discuss:
How far can this concept be extended into the internet outside of single sites and their LANs?
Is there really no place at all for a mix of physical reality and Augmented Reality in future? They seem well-related!
Are you likely to focus more on more traditional computer fodder (documents and other 2D content) in future?
SOLID, WWW
Summary: the original HyperData environment, SOLID Deconstructs the already app-free WWW architecture (REST), adding further Decentralisation in the form of user data Pods. You get a data browser … but you also seem to need “applications”.
Lead: Tim Berners-Lee
Website: https://solidproject.org
Questions I’d like to discuss:
Instead of applications being the main way data is accessed and animated, have you considered using the SOLID pub-sub protocol in observer mode, and setting up mutually-linked data to inter-depend and thus “self-animate”?
Related to that, has anyone created a Linked-Data user interface definition schema? This could be activated in the data browser.
Itemized OS, Embark
Summary: taking the PKM world (Airtable, Obsidian, Notion) forwards, Obenauer’s Itemized OS, alongside his work on Embark at Ink&Switch, envisions environments where people can access and mash up their data Items directly. Items have customisable interaction Views. Embark has a spreadsheet-like feel and a dual interface for direct access to data on the left and a data view on the right for rendering maps, calendars, etc..
Lead: Alexander Obenauer
Website: https://alexanderobenauer.com/articles/os/1/
Questions I’d like to discuss:
Can you foresee “Items observing Items”, in a spreadsheet dependency style, being part of this model?
Would Items be able to be published on the internet, then their updates observed by dependent Items using pub-sub?
Could this also work peer-to-peer over WiFi between PCs?
Subtext, etc
Summary: A research odyssey on the good ship Subtext, an evolving programming language. The goal is to find the way for normal folk to use computers that’s in the gap between spreadsheets and “The Stack”.
Lead: Jonathan Edwards
Websites: https://alarmingdevelopment.org/ https://www.subtext-lang.org
Video: https://www.youtube.com/watch?v=4GOeYylCMJI&t=2286s
Questions I’d like to discuss:
You mention “duplex” as your name for the decentralised approach; how does Subtext, etc., fit into that exactly? Or how would it, modulo the awaited solutions to updates, edits, versions, etc?
Substrates and Webstrates
Summary: Substrates are layers of data that can depend on each other; at the top is the lowest level of abstraction, such as pixels, at the bottom are semantically-rich objects. There are re-usable tools or “Instruments” for acting on substrates. (Incoming events or actions from tools are passed down the levels of abstraction to the substrate that can handle them.) Webstrates is a way to mirror a DOM across browsers via a syncing database backend. It allows transclusion and sharing tools to work on page elements.
Lead: Michel Beaudouin-Lafon
Website: https://webstrates.net/
Video: https://youtu.be/ntaudUum06E
Questions I’d like to discuss:
Instead of a per-domain syncing back-end, how about a more general architecture of URLs to shared elements and a globally deployable update protocol?
Eve (no longer an active project)
Summary: “Eve programs are made up of blocks. Data are represented by records, key value pairs associated to a unique ID. There are two sections of a block: one where you search for records, and one where you bind or commit records. Blocks update records automatically to reflect changes in data. Bound records are replaced when data changes, while committed records must be removed manually. Records are unique, uniqueness is determined by a record’s attributes and their values.”
Lead: Chris Granger
Website: https://witheve.com/
Questions I’d like to discuss:
If you continued this project, would one possible extension be manifesting record uniqueness into cross-domain UUIDs like URLs so this would all work over the internet?
Syntropize
Summary: workspaces for accessing live linked data.
Lead: Rahul Gupta
Website: https://syntropize.com/docs
Questions I’d like to discuss:
Are you using something like the SOLID pub-sub protocol in observer mode, setting up mutually-linked data to inter-depend and thus “self-animate”?
Will you have a user interface definition schema? This could be activated in the workspace view.
FREST
Summary: relational data and function invocation by table trigger on arrival of args, which can be distributed across many hosts. All network-addressable data elements also have default renders. “FREST is a set of protocols that define network-first, relation-first, GUI-first data manipulation and programming environments.”
Lead: Guyren Howe
Website: https://frest.substack.com/p/what-is-frest
Questions I’d like to discuss:
Can we find out more, in more technical detail, please?
Have you compared FREST to Eve?
InfoCentral
Summary: Somewhat Linked Data adjacent, specifically states “app-free” as a goal. Alludes to providing the missing decentralised, semantic back-end to novel front-end approaches such as Dynamicland and Eve. “Information should never be trapped at service or application boundaries”. The solution is a decentralised immutable “Global Information Graph”.
Lead: Chris Gebhardt
Website: https://www.infocentral.org https://www.infocentral.org/presentations/DWS2018LightningTalk.pdf
Questions I’d like to discuss:
You mention the importance of Declarative programming in an app-free world, but is that only relative to local mutable data, or across the internet?
If across the internet, are changes detected only through polling or through a secondary notification mechanism; you mention something like subscribing to mutable indexes (i.e. search engines)?
Folk Canvas
Summary: In-browser declarative programming; spreadsheets and spreadsheet like interactions with page elements including text and graphics; transclusion, cross-linking within the page, etc.
Lead: Chris Shank and Orion Reed
Website: https://github.com/folk-systems/folk-canvas
Video: https://www.youtube.com/watch?v=mz1F55UoVQs&t=2182s
Questions I’d like to discuss:
You want to use Web architecture, so can page elements have URLs?
What would your architecture be for decentralising this and having it work the same but across the network, perhaps syncing like webstrates?
Bubble
Summary: Semantic Web plus LLM. Some quotes: “Breaking down the walls between ‘apps’ through shared semantic understanding; Distributed networks of personal knowledge spaces; Git as a synchronization and distribution layer; UI as a projection of semantic knowledge; Direct manipulation of the knowledge graph through conversation; Treating all computation as queryable/manipulable knowledge; Using rules and inference instead of traditional programming“. In short, I’ve no idea what it is, but it looks interesting!
Lead: Michael Brockman
Website: https://github.com/lessrest/bubble
Questions I’d like to discuss:
Ummm… so… what is it again?
Cell and TODIS
Summary: A notation for data and functions. “Single representation of data; Single dataspace; Call and response; Logic is what happens between call and response; Interface is call and response”
Lead: Federico Pereiro
Website: https://github.com/altocodenl/todis
Questions I’d like to discuss:
Do you have some simple examples to work through to see this working in a Declarative mode?
Does the “single dataspace” (presumably spanning internet domains) have globally-unique IDs pointing to instances of your data structures?
The Object Network / The Reality Network
Summary: an app-free, desktop-free operating system presenting instead a single global 3D Virtual World with all of our live digital property pinned together and around us. Described as “Live HyperData”:
Lead: Duncan Cragg
Website: https://duncancragg.substack.com
Questions I’d like to discuss:
What specifically within my approach don’t you resonate with?
[Template for projects]
Summary:
Lead:
Website:
Questions I’d like to discuss:
Plan
My plan is to contact each lead of each project and show them this page to see what they think. Then we can bring up some kind of forum and a webpage and/or a wiki.
I’ll update this page as things evolve, including filling out and updating those entries as I find out more...
Can you suggest a project for the Data-First movement list? Is that a good name for it? Drop your thoughts into the comments below.