Future of Coding

Reflection 12

Jan 16 - July 09 2018

It’s been a while

Jan 16 - June 04

I went from one extreme to the other. I used to do a reflection every two weeks (which was too much), but now I haven’t done one in 6 months! Maybe every month or two is a good ideal target, but we’ll see.

Let’s quickly summarize the past half-year:

A Productive FRP Month

June 04 - July 09

After completing my bouncing ball in Wolfram, I read Conal’s orignal FRP paper and saw that he solved the exact same problem, almost the exact same way! Finally I was convinced to buckle down, print out papers, and read them seriously. Since then I’ve read ~25 papers, which is a lot for one month! I’ve learned a ton about different FRP paradigms, arrowized vs non-arrowized, the difficulties in implementation, spacetime leaks, etc.

I spend a lot of time last month working on various essays and blogs - it was fun and useful and I wrote a lot and got a lot of internal clarity about why I’m working on what I’m working on - but it also feels a bit indulgent. I’d like to do a bit less of this next month.

Once I got clarity on the problem I was solving (DOM recursion without hacks), it only took me a little while to find the Reflex FRP library, and then another few days to get it working and solve the “motivating problem” I had set up for myself. I had a very slow feedback cycle programming in Reflex - it wasn’t very fun, which is partly why I’ve been avoiding doing more of it. However, I’ve since learned that it might get easier with ghci integration, which I have get to try. I’d like to spend more time with Reflex in the coming month. In particular, I’m curious to learn about how it works internally (can it be replicated in JS?), and more about the “dynamic” abstraction.

Last week, besides writing essays, I spent two days responding to Glen’s Fuzzyset Explorable. This also felt a bit indulgent, because I was following a thread that isn’t directly related to what I’m working on, but it also felt like time well spent. I got more clarity on my vision for visualizing programming - in other words, I realized how un-clear the vision is, and how I’ll need to put pen to paper and get more concrete to actually realize it. I’m excited to hear Glen’s response to this work. It’s exciting that we’re so aligned in terms of working towards making programming more comprehensible! Maybe we could collaborate somehow.

I’ve come so far, and am where I started

One thing to note is that I was working on very similar problems almost a year ago on Sept 21, 2017, but I didn’t know nearly enough about FRP then to put my intuition into words, nor prevent myself from foregoing my approach for the “more traditional state singleton stream model.”

I still want to visualize all the FP list operations, just like I did last September.

There’s something pulling me towards this line of inquiry. I can only hope it’s not confirmation bias or some such.

Where am I going?

Ultimately, I’m trying to create a programming environment. Maybe it’ll be:

(What will help me pick between these three options is answering the question: can I build this in JS or do I need a runtime, like ghcijs? As well as: do I need to create my own FRP library from scratch or can I use an existing one such as Reflex?)

Additionally, I’d like to write an essay about comprehensible programming, but that’s much less the focus than I made it last month.

Hopes for next month

As I said above, I’d like to spend more time with Reflex building things and Figma drawing out pictures of stream/list combinators. Let’s be concrete!

(And let’s spend less time writing essays and blogs, and getting distracted, if I can help it.)

I’d also like to do a bit more freelance work if I can find it. I have two promising leads, so we’ll see where those go. If nowhere, I’ll brainstorm a bit for this.