Hi Florin, Le 08/10/2014 04:45, Florin Mateoc a écrit :
Hi again,
I don't understand the self-defeating part. Indeed, I do start with some knowledge, and because of that, initially I can come up with some external representation, which reflects that understanding. After staring at it enough (in its dynamic behavior), I can notice ways to improve things. I "milk" the representation until the initial behavior is barely recognizable. At that point it is not helpful anymore. I need a different representation now to stare at, since I have the nagging feeling that I am still leaving something on the table. How do I get to the next one? Moving in the design space sounds exactly right. So, how do you do that?
No idea yet. I have tried to embed that kind of philosophy in the previous to last programming language I helped design and implement, but didn't manage to setup the right PhD subject and candidate to integrate that into the IDE/Compiler. I approached a visualisation 'guru' who was very interested, but we didn't manage to get the subject / project of the ground. It may have been a bit over-ambitious :)
That is a very nice way of expressing it, except I would still say that it is not the visual system themselves that have the natural abstraction capabilities, it is a specialized part of our brain that extracts that automatically/unconsciously for us (what I called pattern matching (since it can only identify/notice things that it can match somehow)). But you expressed much better than I did why this is/would be so valuable. And I will check out the reference, thank you - the title sounds promising :).
Recommended. I also have praise on the E. Tufte books of course.
Well, same here, and right now I am busy with another spare time project anyway (but I couldn't resist asking about your tools :) ), but if I ever manage to get back to polish that algorithm which has been in the back of my mind during this discussion (for the longest common subsequence), and which I worked on just for fun anyway, but which left me, as I said, with the nagging feeling that I could do more (and I don't mean some peephole optimization), I will try out some of these visualization techniques to see if anything comes out of it.
Please explore when you'll have time, and describe what you end up with. I have the feeling that Pharo is moving towards providing building blocks to reuse as foundations for that kind of work: Roassal, parsers, ASTs, traces, code models, etc... so that we may build any needed visualisation, as Moose is using for software in the large. I'm currently on a medium to long term quest to learn in depth / maybe improve the AST automatic generation in SmaCC; it should give me a core foundation (a common API for the ASTs for all langages that SmaCC can parse) to build upon interactive visualisations IDEs for the programming languages I'm getting involved in: yesterday C, now R, tomorrow (I hope) Fortran and Python. But this is more about static analysis than runtime behavior analysis, unless I turn to VectorFabrics underlying tech... Hum, this one is ... interesting. It opens new ideas. Thanks a lot, this is really great! Thierry