https://futureofcoding.org/ logo
#share-your-work
Title
# share-your-work
s

stevekrouse

05/09/2022, 4:08 PM
For a couple years, I keep returning to ideas of composability, remix-ability, coding in small pieces, getting to snap them together and apart fluidly, like legos, and with lots of collaborators. This is what excites me about functional programming, how it lends itself to abstractions that compose really well. However I was recently inspired by @JP Posma to throw elegant composability out of the window and simply enable coding in the small by appending small programs together... ...and what we came up with is called twittereval. The idea is you add the words "eval" to a tweet's URL and then we evaluate it (and all the tweets above it or referenced) as JavaScript. It's obviously silly but also kinda neat, and I thought it would be thought provoking to this community. Excited to hear what ideas and suggestions you guys have! I'd also really love it if anyone tried it out and made anything cool :) https://twitter.com/stevekrouse/status/1523449402009948160
❤️ 5
🤣 2
d

David Brooks

05/09/2022, 4:11 PM
just in case you haven't heard of it (you probably have), check out "flow-based programming"
s

stevekrouse

05/09/2022, 4:15 PM
Thanks! Quite familiar with that kind of thing. I normally refer a similar but slightly different category of things as "node and wire" programming. I'm somewhat into it, but not really for reasons of modularity & composability. I normally think of node-and-wire environments as a UI that's an alternative to text, so the semantics aren't as relevant
🍰 2
d

David Brooks

05/09/2022, 4:23 PM
It does get a bit mixed up with all the similar-looking tools out there, but Morrison's original idea definitely puts modularity and composability front and center. An "old school" flow-based programming program can be put together in text, for instance.
s

stevekrouse

05/09/2022, 4:24 PM
Oh interesting, can you point me to a good resource?
g

guitarvydas

05/09/2022, 6:15 PM
a) I want to know more, but I don’t use Twitter much. Where should I look? b) Knee-jerk thoughts about composition, FBP, etc.: <to come>
d

David Brooks

05/09/2022, 9:08 PM
Sure! His (Morrison's) website is a pretty good primer: https://jpaulm.github.io/fbp/index.html he also wrote a book about it: https://www.amazon.com/Flow-Based-Programming-J-Paul-Morrison-ebook/dp/B004PLO66O
g

guitarvydas

05/09/2022, 9:29 PM
Most FBP discussion is on discord https://discord.gg/tTgUa99c (there is, too, a google group and slack group)
The secret sauce of composition is - independence (AKA concurrency[^parallelism] (I have begun to call it 0D (zero dependencies))). The secret sauce of FBP is concurrency. Once you have 0D, you can draw diagrams (if you wish), incl. node-and-wire diagrams. Trying to draw diagrams in a sync-based paradigm (i.e. just about every existing programming language) meets with resistance, and, eventually, hopelessness and bloatware. [^parallelism]: Parallelism is often conflated with concurrency, but is only a subset of concurrency. Rob Pike’s talk (“Concurrency is not Parallelism, It’s Better”) gave me the words for dividing-and-conquering these concepts ...
d

David Brooks

05/09/2022, 9:35 PM
oh wow I didn't even know about the discord. thanks! 👍
k

Kartik Agaram

05/10/2022, 6:23 AM
I can't see anything. Am I too late?
What do y'all do for sandboxing? 🙂
d

David Brooks

05/11/2022, 5:07 PM
I use NixOS @Kartik Agaram, if that's what you mean?
k

Kartik Agaram

05/11/2022, 5:18 PM
No, my question was for Steve. Eval open to the internet is a bit nerve-wracking 😄
s

stevekrouse

05/11/2022, 5:19 PM
It's all client side evaluation
You may have to join the Twitter community to see those tweets. I didn't think so but things about Twitter communities can be buggy
👍🏽 1
d

David Brooks

05/11/2022, 9:56 PM
I don't have a twitter account, and I could see those tweets just fine: https://twitter.com/stevekrouse/status/1523449402009948160
k

Kartik Agaram

05/12/2022, 3:42 AM
Oh you're right. I can see https://twitter.com/stevekrouse/status/1523441421562236928 when not logged in, but not when logged in.