
How Developers Use Dynamic Features of Programming Languages: Smalltalk [pdf] - mpweiher
https://users.dcc.uchile.cl/~rrobbes/p/EMSE-features.pdf
======
stcredzero
Here's a trick I miss from Smalltalk. (VisualWorks in particular.) While
stopped in the debugger, you can easily write a script to search all existing
strings for a match, even a regex match. Then you can very easily ask a string
you're interested in for its "owners," inspect those objects and browse their
code.

You can write code very complex conditional code for debugging, without the
tons of roadblocks an environment like VisualStudio will throw in your way.
Then your conditional debug code can find a particular instance and tell that
specific instance to change its class to a special debugging subclass.

There are many other tricks, but the combination of just those two tricks give
you debugging "superpowers."

~~~
skadamat
There's so many nice things like this that Smalltalk offered. Fundamentally,
they were inspired a lot by systems thinking / theory and related fields like
biology. They seemed obsessed (in a good way) with allowing deeper
understanding. Powerful debugging is def. a key thing here!

~~~
MaxBarraclough
> they were inspired a lot by systems thinking / theory and related fields
> like biology

How's that?

~~~
i_feel_great
The objects are "alive", even the ones in the debug stack. You can "talk" to
them and get their state, ask them to evaluate an alternate flow etc, for any
line in the stack.

In fact, the stack itself is just a normal property of the system that shows
up when the system encounters something it does not understand, and asks you
to provide an answer.

Smalltalk is absolutely weird.

