My Authors
Read all threads
Adding typed holes to John Tromps Lambda Diagrams would make programming feel like playing a puzzle game where matching spots light up, and allow to animate program transformations as visually discontinuity-free flow of parts of the program through the program. Flow of types too.
It may occupy the perfect sweet spot between textual and visual programming. It's visualincidencecomplexitycompact and higher-order functional thus truly scalable despite being graphical. It's somewhat humanimagerecognitionemploying per se. Add support for type synonyms sketches?
It'd nicely complement Conal Elliotts Tangible Variables (TVs) making it Bret Victor immediatefeedbackish at runtime too. Reason: It allows for both "minimum initial exposure" and FAPP limitless "progressive exposure" whereas TVs alone have issues with the latter.
What I'm referring to
Lambda diagrams (therer just unannotated untyped unsugared):
tromp.github.io/cl/diagrams.ht…
Tangible Values
Lambda diagrams allow browsing code in an (optional) trippy zooming user interface (ZUI) like tracing a circuit. Without jumps!! When zooming out (out the code dependency DAG) then alternate supercontexts could be accessed via inverse tabs (tabs with a common cutout).
Quick direct and mentally cheap access to all the alternate usage supercontexts is essential. Faded overlay horn shaped zoom funnels diverging on the thin side can give *visible connections* in a more conventional non zoomable view. (This is not specific to lambda diagrams.)
Here is the aforementioned inverse tab view (left center green). And how to go too far with it (left bottom). Again this is not specific to lambda diagrams (thus none here) but it is especially suitable for them since when they nest their "wirings" connect without spacial jumps.
Here is a structurally more interesting example: qsort. Note: let in variable scopes are nicely visible. There's some "syngraphic sugar" here: e.g. "then" is placed as if it where the result value of "if". Rotated 90° like this it matches John Tromps Lambda Diagram orientation.
Have imports and exports for typed lambda diagrams fine grained on a per function basis? Functions must (!!) be allowed to be members of several disjoint modules simultaneously. Code is not a tree but a DAG. Escape the demonic clutches of the tree shaped file systems (pet peeve).
To escape depencency hell and plumbing hell: Identify functions by hash, maintainerentity key, (and artificial distinction alias?) Somewhat like #unsion The rest is rights management and governance. Update propagation horizons, keep ad free space,... ATM I deem #holochain best.
Make all functions and modules come with associated pages with a global (ad free) doku wiki. Immediate in context viewable. (and local vicinity as in birds eye graph option). The yet unformalized fronties of knowledge have the least structure so even a DAG is too restrictive.
Ultimately I hope that a lambda diagram + tangible variables + (see former tweets) approach with minimal initial exposure and boundless progressive exposure might lead people to *learn coding by enjoyable accident*. Starting to end the end-user vs coder discrimination.
Missing some Tweet in this thread? You can try to force a refresh.

Enjoying this thread?

Keep Current with Lukas Süss

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, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


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

Become a Premium Member ($3.00/month or $30.00/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!