You are viewing archived messages.
Go here to search the history.

André Terron 2021-08-06 05:59:45

Exploration: How much can debugging resemble music playback?

As I was working on an exploration on debugging interfaces, I came across the concept of using music controls for code execution (just for fun). What buttons would you expect to be there, and what would you expect those buttons to do?

I'm also looking for other debugging projects for inspiration, and I'd love to hear what are your essential debugging tools and workflows!

Thank you!

Florian Schulz 2021-08-06 07:38:06

Really cool metaphor! A few things that triggered:

  • playlists (lists of function execution?)
  • songs and albums, album covers (functions and collection of those)
  • next song in queue
  • Volume control (control how much details of the code are exposed?)
  • like a song (function)
Jarno Montonen 2021-08-06 08:01:45

Something that came to my mind from this is that: what if debugger played sound effects for different operations on a line you just stepped over. Like high ping for setting a high number value to a variable, low for setting a low value, some drum for reference access, different instruments for different mathematical operations etc.

I'm wondering if developers could learn to hear anomalies in algorithms and patterns etc.. Like "this is not how this algorithm or pattern should sound, so there must be mistake somewhere". Or learn to hear how values on a tight loop develop for example. Certainly it should be possible to at least hear if a value in a loop decrements instead of increments.

Chris Knott 2021-08-06 09:16:40

I like this interface as long as the debugging model is "record and replay". Most debuggers use an "execution control" model where you are stopping (and potentially changing) the program as it runs.

André Terron 2021-08-07 20:45:11

Florian Schulz great ideas! I was so focused on the debugging, I didn't realize are a bunch of other parallels that can be done!

@Jarno Montonen I wonder how to make this in a way to make it sound good (or at least not terrible). I don't have enough music theory knowledge, but I'll definitely look into it

Chris Knott I'm curious, why would the "execution control" model be bad in this situation? I was planning on at most doing "record and replay" but just because it would be easier, I'd love if you could expand your opinions.

Thanks everyone for sharing your thoughts!

Chris Knott 2021-08-08 10:20:20

Basically because programs can have side effects in a way music/film can't. If you have a program that makes a random Tweet, or writes a file, then you have to decide what skipping back and forth over this line does - i.e. does it repeatedly execute the side effect?

In a normal debugger like Visual Studio, which doesn't record and had stepping back added on later, it repeats the side effect. I think users feel much safer playing with a recording which isn't actually running while you are debugging.

André Terron 2021-08-08 18:06:26

That makes a lot of sense! I do feel that seeing how a code behaves for different inputs can be helpful, but if there are side effects, it will definitely be more confusing, and likely have undesirable outcomes. I'll keep this in mind if I decide to do an exploration focused on "execution control".

Thanks again for sharing!

Mariano Guerra 🕰️ 2021-06-06 11:48:42

How much intersection/overlap do you think there is between Future of Coding and Tools for Thought "movements"?

Kartik Agaram 2021-08-08 00:55:34

This looks very relevant to this thread: https://calculist.io

🔗 Calculist