106 ms·
There are multiple ways we can frame the solution to this. Other developers (all of whom are much more capable than I am) have attempted to address this problem
by w_t_payne 5y ago
There are multiple ways we can frame the solution to this. Other developers (all of whom are much more capable than I am) have attempted to address this problem by designing new languages, or by designing new development environments. (Eve, LightTable, SmallTalk etc..).
It seems to me right off the bat that the nature of the visualisation required is very much an application dependent thing, making it hard to design a general-purpose solution for any but the most trivial of use cases. Secondly, moving to a new programming language (or even a new development environment) is not something that most of us have the freedom to do in our daily work, and overcoming that inertia is a real challenge.
The vision is, however, compelling enough for us to persist. Besides, giving up is never something that I like to countenance. Perhaps there's an easier and quicker way?
Dynamic languages like Python (and anything else with an 'eval') certainly offer the ability to reload program logic on the fly, and it's not terribly difficult to monitor the file-system and trigger re-loading functionality when it changes. Couple this with a data flow framework that guarantees determinism (e.g. a Kahn Process Network), and you've got the beginnings of something that can run and re-run chunks of program logic and compare the outputs. Couple this with some nice building blocks for program-state introspection and visualisation ... and I think you get a significant distance of the way towards the vision of interactive, dynamic, graphically rich (and distributed!) programming.
I.e. rather than looking for a panacea or a magic bullet, we can just try to use the tools that we have today to get as close as we can to the vision that so many of us share.
- shalabhc 5y ago> the nature of the visualisation required is very much an application dependent thing I agree. Here gtoolkit is a recent example that's exploring the building of custom visualizations very easily. It's a compelling environment. > Secondly, moving to a new programming language (or even a new development environment) is not something that most of us have the freedom to do in our daily work, and overcoming that inertia is a real challenge. Couldn't agree more. But over time, things could change. Python was a small language a couple of decades ago. > rather than looking for a panacea or a magic bullet, we can just try to use the tools that we have today to get as close as we can to the vision that so many of us share Yes this is one way to move forward. The main issue I've seen is supporting 100% of Python becomes too hard since this idea is being retorfitted and the language/environment hasn't been designed with this from the start (consider getattr/setattr and IO). So certainly a large subset of Python (or another dynamic language) withing a custom environment could work as a starting point.