Re:Yes, Python is Slow, and I Don’t Care
by fiddlerwoaroof on Friday September 08, 2017 @10:41AM
(#15200504)
Yeah, Common Lisp, Racket and Smalltalk all are dynamically-typed languages that offer these sorts of features. Racket can solve this through its powerful reader/macroexpander. The others do it by having you develop inside your run-time environment where you can take advantage of all sorts of interesting information only available at run-time.
Let me introduce you to Racket. It started out in life as Scheme, and became something more.
DrRacket, it's IDE, is fantastic. The main reason why? You can trace every function call, and every macro, to its definition with a quick mouse-over, even if said definition is in another file or library, even if said definition is only conditionally created.
There isn't really a reason a dynamic language can't do tracing like that, or mass renames across files... Because some already do.