|
| 1 | +--- |
| 2 | +title: Steve Krouse Research Statement |
| 3 | +--- |
| 4 | + |
| 5 | +# Steve Krouse Research Statement |
| 6 | + |
| 7 | +## Motivation / context |
| 8 | + |
| 9 | +It is a loss every time someone want to modify the software they use but cannot. It is a unnecessary drudgery when someone wants to leverage automation but cannot. It is a so limiting that the only way to justify the cost of new software is mass adoption. It is a daily tragedy that millions of ideas to improve our individual and collective virtual worlds aren't even conceived, because people don't waste time thinking up improvement they have no possibility of causing. |
| 10 | + |
| 11 | +My aim is to make software fully malleable to empower all users of computation to better augment themselves and their communities with bespoke tools, while at the same time leveraging open-source collaboration to share the best innovations as widely as possible. As a secondary effect, I hope that empowering people to customize their computers will create a _Precision Land_ (a la Papert's _Mathland_) that will be a natural place for billions of people to assimilate powerful ideas and other augmented thinking abilities. |
| 12 | + |
| 13 | +My perspective was shaped by learning Logo, Scheme, and Haskell as a child, and then finding Bret Victor in college, which then led me to Alan Kay, Douglas Engelbart, JCR Licklider, Chris Granger, Jonathan Edwards, Paul Chiusano, Conal Elliot, Cyrus Omar, all of the guests on my podcast, people I met through Twitter, and the wonderful people of the Future of Coding Slack community. You can [learn more about my context here](https://futureofcoding.org/about#me). |
| 14 | + |
| 15 | +## Theory of change |
| 16 | + |
| 17 | +Innovations in computing and software have come in all shapes and sizes: |
| 18 | + |
| 19 | +* Startups - Historically: Apple, Microsoft, Amazon AWS, NeXT, Lotus, Salesforce. Mathmatica. Today: Notion, Coda, Luna, Glide. |
| 20 | +* Non-profits: Mozilla, WWC, Wikipedia (which started as a startup) |
| 21 | +* R&D Labs: Xerox PARC, Bell Labs, and today's Protocol Labs |
| 22 | +* Academia: LOGO, Haskell, Scratch, Scala, Jupyter Notebooks |
| 23 | +* Military Funding: ARPANET |
| 24 | +* Open source: Linux, Python, Ruby/Rails |
| 25 | +* Tinkerers / collaborative circles: steam engine, Wright Brothers |
| 26 | + |
| 27 | +My current strategy is to do an "unbundled" version of academia, where I copy many of their practices but from outside the system: I have an adviser, Jonathan Edwards, and the plan for the next 3-5 years is for me to work up to something akin to a "PhD thesis." Between now and then, I plan to publish about one paper a year to build up to the main thesis. We hope to ratchet up the quality of each paper, and the rigor of the places of publication over time. By doing academia in this self-styled way, we avoid: |
| 28 | + |
| 29 | +* applying |
| 30 | +* moving |
| 31 | +* going to classes |
| 32 | +* teaching |
| 33 | +* "paying dues" via working on other peoples' projects |
| 34 | + |
| 35 | +But also have to do without: |
| 36 | + |
| 37 | +* legitimacy |
| 38 | +* being forced to do things that I would be thankful for in retrospect |
| 39 | + |
| 40 | +The goal of the PhD thesis is to prototype and demo a system that plausibly points towards a vision of malleable and empowering computing. Like Douglas Engelbart did at "The Mother of all Demos", I aim to "deal lightening from both hands." The demo will show: |
| 41 | + |
| 42 | +* how simple customization to ones' running software can be quick and easy. |
| 43 | +* the ability to replace pieces of functionality with other widgets. |
| 44 | +* a compelling story for managing and merging widely-branching variants |
| 45 | +* the ability to mix and match existing widgets, hooking them up to rapidly create a new tool for personal or collaborative use. |
| 46 | + |
| 47 | +After watching the demo, people should be inspired to think up all the ways they could customize their own workflows to better suit themselves and their communities. They should return to "normal life" constantly dissatisfied with their disenfranchisement to effect change and put their new continuous stream of improvement ideas into practice. Hopefully recognize how much better and cheaper software could become if we could unleash the power of full collaboration in this way -- 10x more powerful than what open-source accomplished. |
| 48 | + |
| 49 | +As long as we're dreaming here, I would want this demo to sit at the top of Hacker News for the day, getting thousands of upvotes and comments. The paper, co-authored with Jonathan Edwards, would get accepted to a reasonably prestigious conference, such at Onward! and it would inspire other work and be cited well. Of course, a true marker of success would be if startups or companies would "steal" the work and incorporate its ideas into their products. |
| 50 | + |
| 51 | +Depending on how things go, I am also open to working at an R&D lab (a la Protocol Labs), potentially commercializing my "PhD thesis" into a startup (a la Google), or sustaining the project via a non-profit (a la Scratch or the Scala Foundation). |
| 52 | + |
| 53 | +## Related Work |
| 54 | + |
| 55 | +None of these ideas are new or original. I simply have the naivety of youth to think that I might be able to pull it off. |
| 56 | + |
| 57 | +This project is most closely related to the field of end-user programming (Nardi, Lieberman, Webstrates), including the most successful end-user programming environment the spreadsheet (Forms/3), HCI work on customization of user interfaces (links), and the Smalltalk language and operating system. Recently, Ink & Switch has been working on a system called Farm with similar goals to personalize software. |
| 58 | + |
| 59 | +Additionally, there has been a lot of work in industry on "app builders", such as Bubble, DropSource, website builders, such as Webflow, prototyping tools, such as Facebook Origami, and BaaS platforms such as Firebase and Parse. |
| 60 | + |
| 61 | +I also plan to draw on category theory, type theory, denotational semantics, functional programming, reactive programming, and the mathematics of composibility. TODO contextualize: Conal Elliot's work on FRP, Gniess, Statecharts, stream vizualization debuggers, and distributed semantics such as ScalaLoci. |
| 62 | + |
| 63 | +## Composibility |
| 64 | + |
| 65 | +The heart of this project is composibility / modularity. It's key to understanding and customizing small parts of existing projects, as well as to mix and match pieces of functionality created independently,which unleash the explosion of creativity that this multi-level open-source would allow. |
| 66 | + |
| 67 | + |
| 68 | + |
| 69 | +## PX of Programming |
| 70 | + |
| 71 | +* Palletes/GUIs everywhere |
| 72 | +* Immutable Editing |
| 73 | + - one multiverse |
| 74 | + - definitional definitions in terms of all influences |
| 75 | + - no definitions? just subexpresions via edit semantics, recurisvely? |
| 76 | + - terms are just terms (no definition, they are themselves). you can then specify compute/storage/runtime to eval |
| 77 | + - an evolving definition is a starting definition and then all the ways that future definitions might appear, maybe of same type or different (higher-kinds?) |
| 78 | + |
| 79 | +## Prototyping Tool |
| 80 | + |
| 81 | +It has remained a "holy grail" problem to allow non-programmers, such as designers, to fully customize the look-and-feel and interactive behavior of user interfaces. |
| 82 | + |
| 83 | +a, x, y, t, hardware, random => b, B/E hardware |
| 84 | + |
| 85 | +## Composable Backend |
| 86 | + |
| 87 | +* Another "holy grail" |
| 88 | +* E/B => E(E/B) for two points in time, but Conal urges against but I wonder what would happen if augmented with the right Editor |
| 89 | + |
| 90 | +https://github.com/stevekrouse/futureofcoding.org/blob/d94466ff52c8bce66796347ac4d86f974a8e7ab3/drafts/dctp.md#multi-node-dctp-potential-draft-2 |
| 91 | + |
| 92 | + |
| 93 | +--- |
| 94 | + |
| 95 | +* http://pchiusano.github.io/2017-01-20/why-not-haskell.html (and https://keep.google.com/#NOTE/19E9vy_KEQPhV20jOMXF4loIxGQnzjXg8zZuDm12FMyWxBXdyFjK8Miy91MnvEUz_pTgt, inspired by https://twitter.com/jasoncrawford/status/1114198663436234752) |
| 96 | +* http://www.klokmose.net/clemens/wp-content/uploads/2010/10/a29-tchernavskij.pdf |
| 97 | +* http://www.klokmose.net/clemens/wp-content/uploads/2016/06/webstrates-hm.pdf |
| 98 | +* http://www.klokmose.net/clemens/wp-content/uploads/2015/08/webstrates.pdf |
| 99 | +* http://www.altocumulus.org/Fudgets/Intro/concept.html |
| 100 | +* http://www.cse.chalmers.se/~rjmh/Papers/whyfp.pdf |
| 101 | +* https://www.ics.uci.edu/~redmiles/ics227-SQ04/papers/Hypertext/Primary/p31-nelson.pdf |
0 commit comments