<Don't strip the meaning away from your runtime>: ...
# share-your-work
m
Don't strip the meaning away from your runtime: Exploring extending programming languages to include descriptions in the domain of the problem and solution Spoiler alert: interactive example inside 🙂 First draft, feedback welcome!
m
damn, this is really cool!
m
we have done something similar in SplootCode (we refer to them as runtime annotations 🙂 https://app.splootcode.io/shared/mattia/for-loops-example/EPdLhGOx7p1SbPDIDisgbfpV
k
That's indeed a very nice feature to have. I know, because I use it regularly.
I think we should expand the definition of code in a language to include some of the tools and conventions that currently surround it.
That's pretty much the philosophy of Smalltalk-80 and its descendants, the quote by Dan Ingalls you cite is an illustration. So, not suprisingly, the Smalltalk community has come up with a very similar mechanism: beacons (https://github.com/pharo-project/pharo-beacon). This is a logging framework designed to make sure that emitting log entries is very cheap if there is no listener. You can leave the emitting code in production software. Beacons are even more powerful because they can be combined with all the other interactive and reflective features of Smalltalk. My favorite example is logging the call stack. You can collect the call stack for each iteration of a loop, and then run the debugger on, say, the 5th iteration.
c
I wish I had these tools in my IDE !!! Back in school when learning programming we've used such a tracer, to a big delight. More on IDEs, I think they are the elephant in the room. Nothing really changed here since the 90s. We need definitively better IDEs, more, an extensible infinite canvas where each of us can program according to her own wishes.🤞