If you're interested in mechanisms for abstraction in code, this demo by @jonathoda is worth watching for a radical perspective.


Two points stick out to me:
1) Programmers grow comfortable working w/ abstractions. But for end users, any abstraction is a barrier.

It's easy to get started w/ spreadsheets because you don't need to learn about abstractions -- just copy paste your formulas!

2) Of course, copy paste can get out of hand quickly. But the demo shows a smart environment where provenance is tracked when you copy-paste, so changes can be propagated between copies as things change.

Great example of the potential of moving beyond dumb text editors.
A fun additional connection: spreadsheets are projectional editors.

Many spreadsheets use relative coordinates internally. You type "A1" but it stores "Left by 2 cells". As you copy-paste the formula, keeps the same relative ref, but points to a different concrete cell each time
The key is that the editor is rich enough to show you some useful projection of the literal internal state.

Similar dynamic in Jonathan's demo as with many projectional editors: because it's not just editing a raw plaintext representation, can do various useful things

• • •

Missing some Tweet in this thread? You can try to force a refresh

Keep Current with Geoffrey Litt

Geoffrey Litt Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!


Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @geoffreylitt

19 Feb
In the early 90s, there was a lot of hype about "component-based software" -- editing different parts of a document with different mini-editors.

Why didn't it catch on? 7 theories I've come across: Image
1) UX quality. If every component is developed by an independent company, who is responsible for unifying it into a nice holistic experience rather than a mishmash?
2) Modality. Different parts of your document operate with different behaviors. How does the user keep track?

(source: Humane Interface by Raskin) ImageImage
Read 11 tweets
29 Jan
The problems described in this OpenDoc video are still so relevant, 30 years later.

"Developers pile on feature after feature. The result is large monolithic applications. Data rich content is hard to share across applications..."

Each cloud its own pyramid, with scarce bridges in between...
Dreaming of a new OpenDoc...

- Little components, each responsible for editing part of a document
- all data stored on a shared user-controlled substrate, not split across clouds. the filesystem is dead, long live the filesystem

Read 14 tweets
28 Jan
a delightful visualization of procedural terrain generation, by @OskSta:


(I could only get it to run in Safari)
My (limited) understanding:

At first, each cell in the output could be filled with any of the tiles.

When you say "this cell must have this tile", that limits what cells could inhabit neighboring tiles.

Which in turn limits the neighbors' neighbors, and so on recursively.
What I find so fun here is that the "debug view" is overlayed on the output, rather than being in a separate pane.

It feels like "just watching the robot do the task", not "reading the code for the algorithm".
Read 5 tweets
22 Dec 20
It's been a fun year working on ways to give end users more agency over their software 🤓

Reflecting on 2020, 3 ideas I'm excited about in this space:

⚙️ Browser extensions: still underrated
🧮 Spreadsheets in more places
🔃 Interop is everything

Details in thread:
1) ⚙️ Browser extensions

One of the main computing platforms of our time allows us to install wide-ranging modifications. This is a big deal and we don't talk enough about it.

I think we are just scratching the surface of what is possible with browser extensions.
Recently I've been hacking on a Twitter extension, and it's reminded me how awesome extensions are.

It feels SO empowering! I just spent a few days adding features I wanted for myself, and now can ship them for others to use too ☺️

Read 15 tweets
22 Dec 20
spreadsheets as maps, legible views of the organic chaos brewing underneath
Every tidy entry in a "project planning spreadsheet" is a portal to its own complex mini-universe
Recommend periodically telling your boss a task will take " between 1 day and 8 months"

Will undoubtedly raise an interesting conversation and remind everyone of the messiness of reality
Read 6 tweets
22 Dec 20
by far my favorite thing about typescript is that i can still run the code when it's not typechecking.

beyond the productivity benefits when working on UI, feels like it changes the emotional relationship from "blocking me" to "helping me"
with some other type checkers it's like "ughhh I just want to RUN the code 😡"

and with typescript it's like "ok nice I ran the code, now the typesystem will help me perfect it 😄"
Obviously error message quality affects the emotional tone too, but whether I can run the code also seems like a huge factor

Read 8 tweets

Did Thread Reader help you today?

Support us! We are indie developers!

This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!