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

I've sometimes been able to attain the Zen of Fixing the 800 Compiler Errors, but feels like it just drains my willpower over time, and I remember just often giving up as a beginner

Related to this topic, this is a lovely paper on finding concrete example data to explain type errors. (even if the lang can't actually run without typechecking)

Eg in this figure: "Ahh, it tries to run 1 * true, I see why that is wrong!"

ranjitjhala.github.io/static/dynamic…
At the end of the day, I really identify with this principle from the Scratch team:

The OCaml compiler is the pedantic person in the meeting who won't let us proceed until we resolve every tiny detail

The Typescript compiler is the helpful detail-oriented person who says "FYI this detail matters, let's come back to it later when the time is right"
If we're defusing a bomb, would happily hire the OCaml compiler

But if we're doing exploratory design work, nothing could possibly kill the flow more.

Programming tools for sketching must allow us to paint in broad strokes and defer the details!

• • •

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!

PDF

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

22 Dec
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
spreadsheets as maps, legible views of the organic chaos brewing underneath Image
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
13 Dec
I'm building an extension that makes Twitter a better memex:

⭐️ Highlights: see someone's best tweets, not just most recent
📆 On This Day: revisit past tweets for inspiration
🔍 Search: find tweets to quote, w/ shortcuts for useful filters

DM me if you want to try the beta!
Early reviews are in 🤓

DM me if you want to give it a spin
Also, recommend this thread on why/how to weave together thoughts on Twitter. Totally changed the way I use this thing.

Goal of this extension is to better align the product with this style of use. Less news, more ideas

Read 10 tweets
6 Dec
I'm skeptical that anyone can design truly great software tools if they haven't personally experienced the problem firsthand.

Here's a short story about my encounters with the limits of empathy... (with an optimistic conclusion!)
While in college, I joined an early stage ed-tech startup founded by some classmates. My first project was to design and implement a reporting interface for teachers and principals to view results from student feedback surveys.
I was totally new to the problem space so I knew I had a ton to learn. The company had a few customers already, so I tried talking to educators in those districts. After a bunch of conversations I started feeling like I understood the rough landscape.
Read 24 tweets
16 Nov
The tragedy of modern computing: too often we conform to the software, rather than molding it to our needs.

How can we empower everyone to edit their tools? Here are 3 ideas I think can help us get there:

(1/n)
1) Customization by Direct Manipulation.

Back in the stone age of CLIs, you had to fumble around in the dark, with no visibility.

GUIs were a huge step forward, letting us directly see and act on the objects we care about.
But then, what happens when you want to go beyond the existing features of your GUI software?

Time to do some programming.. which means right back to the stone age, where you can't see your objects.

Even "user-friendly" customization tools like AppleScript have this problem.
Read 11 tweets
13 Nov
Just assembled a new bookshelf to hold some of my favorite books about computing ☺️
Two of these I see mentioned less often:

- A People's History of Computing in the US: great counterweight to hero narratives in computing history

- Changing Minds, by diSessa : incredibly deep insight into designing empowering computing environments for kids
Also, The New Media Reader is incredible. Felt like someone had perfectly curated a collection for my interests
Read 5 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!