Open ptaoussanis opened 6 months ago
Hi Peter! This is not about your OSS, but Clojure in general. Given the quality and how clearly explained I think your videos are I feel a video about interactive programming should be useful for beginners and people that never used Lisps. A video that shows the power of the technique and maybe some common pitfalls.
I think there is still a ton of confusion about repls (since most languages have these shells now) and what is different about Lisps in this respect, specially on the interactive programming area. I think explaining/demoing this works better in video than in other medias like blog posts, because it is about the flow.
I know there are some videos already covering this topic but always buried into some other content. I'm not aware of anything that can be used as a reference to send people to see what we mean by interactive programming.
Thanks for all the cool tools!
@jpmonettas Hi Juan, thanks for the kind words - and for the awesome FlowStorm! Really cool stuff, and very impressive. What inspired you to start the project?
Re: your suggestion-
I'm surprised to hear that there's not already enough solid content re: general interactive programming. To be clear: I have no idea, it's not something normally on my radar either way - but I would have guessed that there should be a lot of that kind of content around by now. Is there really not? Maybe it's just a discoverability issue?
Is there something in particular that you'd like to see more of? E.g. real-world problem solving at the REPL? Concise / reference-style content? Something else?
@ptaoussanis glad to hear you find FlowStorm helpful!
What inspired you to start the project?
A mixture of things tbh. On one side, like 15 years ago I was bored playing with macros and thinking what can I do with this programs that can re-write programs feature. So first thing was, "what if I have something that add printlns for me on some points of interest when I need to debug something?". And then it was one thing leading to the other, from printing serialized values to the console, to collecting serialized data, to just collecting the pointers, then experiments trying to draw executions trees. I was also a Cider debugger user, so I got the coordinates idea from it, and after that for each POI I was collecting pointers to the values together with pointers to code. After having programs flow recordings I started (and still continue) thinking of useful ways we can visualize and explore programs executions.
On the other side, I have always been struggling with how rudimentary is my approach to understanding a code base I don't know or that I forgot about. Most projects don't have diagrams and stuff like that, so I just start poking at the code which feels inefficient. I would love some "google maps" like tool so you can view a system at different zoom levels. I have also been playing for a long time with tools to aid with "loading a system in my mind" from static analysis to runtime analysis with FlowStorm.
I'm surprised to hear that there's not already enough solid content re: general interactive programming
I haven't seen any well explained video with the only objective of explaining this approach to programming of starting an empty process and then building it by having a "conversation" with the thing you are building. Also the terminology is already confusing, since all languages today have REPLs, when people hear REPL development they assume python shell or js console and then there's is nothing new to learn. I've also found people in the Clojure community, specially beginners confused about these things, which make sense since afaik it isn't taught in university, or in any books I know of.
I would have guessed that there should be a lot of that kind of content around by now. Is there really not? Maybe it's just a discoverability issue?
Maybe there is and I just haven't found a simple well made demo of the subject. Most demos I've seen are about how you can tweak a running program without having to restart it, which is just a part of interactive programming, which you can do in most languages these days, even in C.
This idea just came to me while watching your videos, given that you use interactive programming in a clear way to explain your libraries, and also your videos are clear and to the point. So when I saw this issue I just added it here without too much thinking haha, so take this just as that.
When I get some time and feel inspired by it I'll try to create a script outline about this stuff and see if it still makes sense to me, and maybe even give it a try!
I don't have a specific suggestion for a video. Rather, I suspect beginner-style videos will increase the awareness/reach of your work. I'd consider that a worthwhile pursuit.
@jpmonettas It's nice to hear about some of the FlowStorm backstory, thanks for sharing!
When I get some time and feel inspired by it I'll try to create a script outline about this stuff and see if it still makes sense to me, and maybe even give it a try!
I'd definitely encourage you to! Maybe something with you working with/on FlowStorm might be fun?
I've recently started including longer-form, beginner-oriented documentation and demos with my libraries, e.g.:
If there's interest, I'm happy to create more content like this.
Please specify/upvote via comments which libraries you'd like content for, and whether the preference is for written docs or videos.
Some ideas include: