Skip to content

Instantly share code, notes, and snippets.

@stevekrouse
Created May 21, 2018 18:15
Show Gist options
  • Select an option

  • Save stevekrouse/19cca1e74160d81181e2dcca17c3ca17 to your computer and use it in GitHub Desktop.

Select an option

Save stevekrouse/19cca1e74160d81181e2dcca17c3ca17 to your computer and use it in GitHub Desktop.

The rabbitholes never end!

  • TOC {: toc }

Artist-Centric Programming Tools

Friday night, Twitter sent me a notification to look at this tweet:

https://t.co/nqIwhoOc39
Recording of our presentation on Artist-Centric Programming Tools at #chi2018

— Jennifer Jacobs (@jsquare) May 18, 2018
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

First of all, I'm amazed and super grateful that Twitter was smart enough to let me know about this.

I only got part-way into the thesis, but I'm pumped to finish it. I got distracted by one of her references, InterState...

InterState

In an earlier entry, I wrote:

how do Facebook’s Origami, CycleJS devtools, and statecharts somehow fit together?

This protoype seems to answer that question! I was so excited that I sent it over to the StateCharts community!

Finished re-watching Tangible Functional Programming

Really wonderful! I missed the beauty here in the first watching. Notes here.

Some interesting links I found along the way:

  • Concur - a new FRP library - Found by searching "Elm Fudgets" after reading about Fudgets on Conal's reccomendation.
  • Forms/3 - I've heard of this before but checked it out after seeing it referenced by Conal, and it's cooler than I remember.
  • Links Lang - I found this after re-reading "What next?" by Graydon Hoare. So cool! Unifies all layers of the stack into one language. Excited to check this out soon!

Open problems as of 5/21/18

As I was falling alseep last night, I thought about the core problems with existing languages:

  1. Redux, Elm, and CycleJS are a pain to code in. Small changes require big refactors. More importantly, emitting actions that can edit state in any way feels similar to the global mutable state we started with, that Andre Staltz argues against in his arrow post.

  2. IO (and async) in an elegant way. Monads and streams kinda stink and feel imperitive the same way Redux does. (Conal agrees.)

  3. In order to build a solution to these problems, it also needs to be somehow inter-operable with existing web frameworks. Relevant questions include whether its interpreted or compiled, etc, etc.

  4. Another open questions is what the backend should look like in order to handle authentication, permissioning, persistance, etc.

  5. Another open question: if you want to add phsyics to an object in your code, why not add the equations from your physics class to your program? In other words, how mathmatical and high-level can we get? What's the highest-levle we can get and still have something computable (with good performance) at the end? Additionally, can we make a declarative langauge that's readable and debuggable? (The Seymour Papert's distinction between LOGO's first-person FORWARD 1, RIGHT 1, and math's third-person x^2 + y^2 = z^2, and how they are really just two sides of the same coin via the derivitive feels relevant here.)

  6. Soundness of the type-system from a Scott, Strachey, and Elliot perspective also feels relevant here. I don't want leaky or infinitely-complex abstractions.

I'm not even sure if these problems are truly problems, or just things I don't yet understand. Yet, it feels very relevant to continue down the Conal Elliot, FRP rabbithole. I hope that the more I understand Elliot's and (also Hudak's Arrowized) FRP, the more I'll be able to explain why I dislike Redux, Elm, and CycleJS. (Yet, I am a bit nervous that I won't like any implementation of FRP out there. What then?!)

Todos as of 5/21/18

I still haven't found a better way to manage these than listing them every log entry. Here are the remaining ones:

  • Prototype TodoMVC in InterState, and read the paper, and reach out for a conversation
  • Finish reading Jennifer Jacobs's Dynamic Drawing, and reach out for a conversation
  • Edit (or throw out) plan v6
  • Hareactive
  • Simon Friis Vindum, including Let's reinvent FRP, and possibly reach out for a conversation
  • Facebook Origami Community
  • Stratchey denotational design
  • Conal's Denotational design with typeclass morphisms, Fran, and basically everything he's done
  • Verlet and ConstraintJS
  • Sean McDirmid (and these papers he referenced)
  • Reach out to Jonathan Edwards
  • make a better system for todos, things-to-research (FoC Research label in Inbox), ideas-to-ponder-on (FoC Thinking label in Inbox), projects/blogs-to-consider-doing
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment