Steve tries to improve programming
Table of Contents
Backstory
- “Bad a math”
- Started with LOGO at 11
- Learned to “anthropomorphize” with the Turtle
- & debugging, and other “computational thinking” skills
- Loved math
- Curious about PL & education
- Went to Penn for three semesters
- Dropped out of college
- Worked at a startup (Looker)
Early inspiration
“Just a matter of months”
With the Silicon Valley mindset, I thought I’d “fix programming” in just no time. Some early prototypes:
- Blocks for JQuery
- Blocks for VueJS - count TodoMVC
- Projectional/Structured Editor for JS
- New take on version control / top-down programming
Slow down & get serious
- Retracing steps, not charting new territory
- Silicon Valley mentality wouldn’t work here
- “Switch gears” & “settle in for the long haul”
Reading History
- Bret Victor and all his sources
- Alan Kay
- Fred Brooks
- Jonathan Edwards
- etc…
- Research for Dark:
Interviews
Freelancing
The sponsorship and Patreon don’t (yet!) cover it (20%)
Current research: UI construction
DCTP
- Conal Elliott’s “original vision for FRP”
- Last paper: why Redux has modularity problems and DCTP solves them
- Very hard to explain (but I am trying nonetheless)
Current work: visualizing DCTP
- I hope seeing the events flow through the streams will help
- Eventually constructing the streams visually
Mission
End-user programming
Enable all people to modify they software they use in the course of using it.
- All software will be co-created by decentralized communities, rather than centralized groups or companies.
- Through the power of crowd-sourcing, the quality of all software will become much higher than existing software.
- All software will be much more composible, interoperable with other pieces of software.
- All software will be arbitrarily customizable, allowing for bespoke, tailored experiences.
- Learning to communicate with computers teaches one how to think more clearly, precisely, mathmatically, and powerfully. If one can manipulate the software one uses, if only one learns how to organize one’s thoughts, many people will self-teach themselvse to do just that.
- As the fabric of the world is eaten by software, the ability to fully manipulate that software one uses is an essential freedom.
Other open problems
- Extending DCTP for multi-computer computation
- Continuing to improve the PX of DCTP
- Version Control in a world of many more forks, at many more levels
- Migration / adoption to such a world
Thanks!