I'm a software dev that frequently uses software visualization and I'm wondering why so many people don't. I posted this question to hear your thoughts on the topic. Please share them with me :)
I don't because I don't know any software viz tools that seemed to provide me with a tangible benefit. Can you recommend some you find useful?
Whenever I have had to work on an existing Common Lisp code base or even my own CL code that I come to after a time, I use dtrace.lisp [1], [2].<p>I just choose to trace the application package/s and not the 3rd party packages it uses, at least for the 1st run. Then I run any app feature that I want to explore. What I get is the truth, the pieces of code which have been executed to fulfill that feature. I then read the relevant source code shown by the tracer doing deep dive/high level reading as I deem fit. For complex features on a code base that is new to me, someone who gives me a high level overview helps, but even if not, the tracer helps me do it. I don't know but `dtrace` seems to be `detective trace`.<p>I haven't found yet more joyful experience of software visualization than a session with dtrace, especially when I combine it with live updating the app source code and see the change reflected.<p>Outside the lisp world where I can't do such tracing, well, I quirk!!!<p>[1] <a href="https://github.com/deadcode/Learning-CL--David-Touretzky/blob/master/dtrace.lisp" rel="nofollow">https://github.com/deadcode/Learning-CL--David-Touretzky/blo...</a>
[2] <a href="https://bitbucket.org/dmsurti/dtrace" rel="nofollow">https://bitbucket.org/dmsurti/dtrace</a>
My personal view on this matter is that people in our industry believe high quality code means it's easy to read/understand. So assuming that the code is of good quality, the IDEs refactoring tools should suffice for navigating and understanding the code.<p>Now I admit for large projects (~ >50k loc), visualisation could prove to be very useful for architects or new people joining the room. But most visualisations tools are very text oriented, because of the underlying language itself. So what you end up with is the name of the class/package/variable in a rectangle with lines drawn to another class. From where I stand, that's very easy for me to either quickly draw on paper or imagine it in my head. So the tools I've come across don't add much value.<p>Another point which is only speculation is that a number of users are not visual, and have a different way of processing data. They'd rather read/hear about the details and numbers to "understand" what is happening, rather than visualise them.
Because the source code itself is already a visualization of the software. It's easier to navigate around the code directly, using grep or IDE features to discover where identifiers are used, than it is to go back and forth between the code and a separate simplified representation.
I have the same question, and a speculative answer for it. Here it is, because none have been useful enough in long run.<p>I've concluded this by asking two question:<p>-Has no one made one? Not true at all. We have always more apps & software in general that you think.<p>-Is there any reasons for not knowing any good tools and not using them extensively other than they have not been useful in long run? No.
Very interesting question and one I've been thinking about recently. For now it seems to come down to "there are no good visualization tools", at least any that are commonly known, but I suspect this will be a huge growth area in coming years.<p>Would love to hear about any good ones.
I had never heard the term before; after looking it up on Wikipedia, I have never heard of any of the software packages listed. I don't know what I would do with such a tool. If I'd ever needed one, I imagine I'd already have gone looking for it, so I guess that these software visualization tools must be solving problems which don't really exist in my part of the industry. Maybe this is the sort of thing you need if you're trying to wrangle some giant mess of a business app with millions of lines of Java? I don't know, I've never gone near that world.
The software visualization tool I know is this <a href="http://gource.io/" rel="nofollow">http://gource.io/</a><p>In my opinion, it's not that useful. Any visualization tools should help the users understand and interpret the information.<p>But with this tool, all you can learn from the visualization is that code bases grow....<p>If there is a visualization tool can generate diagrams of a large code base and help me understand the code, I will buy it.
Visualization tools are like daily standups and burndown charts. They only beneficit the management. It's just one extra task for developers that doesn't get the job done. I think they're pretty useful when you first jump into a new piece of code and want to have a quick overview. For people who work on the code everday, it becomes quickly obsolete.