Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
User name:
Password:
Save Password
Forgot your password?

 All Forums
 Visual Assist
 Feature Requests
 Some mighty interessting features to pick from
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

Uniwares
Tomato Guru

Portugal
2321 Posts

Posted - Jun 14 2008 :  11:14:49 PM  Show Profile  Reply with Quote
http://www.codeproject.com/KB/cs/concept_ide.aspx

Not all in the scope of VAX, but some are, and I guess MS will take a century more to add half of the stuff only.

Concepts 3, 4, 6, 7, 12, 14 and 15 I can nicely imagine in VAX 11 If you need some beta testers just call.

feline
Whole Tomato Software

United Kingdom
18948 Posts

Posted - Jun 16 2008 :  09:14:35 AM  Show Profile  Reply with Quote
ideas 3 and 4, I do not really understand what it is talking about. From the screen shot for #4 "AcceleratorTrigger" is a code file. #3 sounds like either OFIW of FSIW, which are quite powerful given you can use several space separated words to filter the list.

#4, how does this help? I can see these numbers being interesting out of idle curiosity, but I don't think I have ever actually cared about how many functions a given class contains.

#6, again I am not sure what this is actually talking about. Is this talking about the things we list in the Alt-m list? Or something else again?

If this is talking about types of class members (functions, delegates, variables, enums) then what happens when they are not grouped together in the file?

#7, this reminds me of the top half of VA View.

#12, this sounds like the existing breakpoint condition dialog the IDE already offers, just presented slightly differently.

#14 and #15 - these make me want to run screaming in the opposite direction This sounds like it requires full blown code profiling of the running application, or something similar. That is a *long* way from what VA currently does

Perhaps a better question is what do you think of when you looked at these specific concepts? What are you imagining happening inside your IDE?

zen is the art of being at one with the two'ness
Go to Top of Page

Uniwares
Tomato Guru

Portugal
2321 Posts

Posted - Jun 16 2008 :  09:37:12 AM  Show Profile  Reply with Quote
#3. yes its kind of OFIW/FSIW mix, based on showing related/used types for a given type or file (thus the graph)

#4 Class metrics are something really useful, as it allows you to measure your codes complexity, gives you an automated hint when you should start re-thinking your class design and split functionality into simples classes.

#6 its a visualization of used types, you would use it like Alt+G on a data type, just that you dont need to click on the symbol and press Alt+G, just click it in the bar. If it shows the most related types it would be a very handy feature.

#7, yes exactly, with a bit more information about the files history and a quick filter

#14 and #15: no, it has nothing to do with profiling. This is information already present in VAX and intellisense (or the debugger for #15). Just represented graphically (rules layed out in the article), which I personally think is quite genious as gives you a much quicker and easier understanding of code flow through your classes.

As for your last question: I thought thats it a quite nice approach to some common problems faced in VS. VS is too mouse oriented, requires too many clicks here and there, information is shown in a too precise format often (just look at the call stacks) where a graphical display would be much more informative.
I would like to see some improvements to the visual designers (forms, html, etc) as they are really, really bad. The dynamic code generation really sucks. Did you ever try to make a diff of the generated code after adding a simple label to a form? Well, forget it. It rearranges all the code.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
18948 Posts

Posted - Jun 16 2008 :  4:30:33 PM  Show Profile  Reply with Quote
I am obviously thinking in totally different terms here, so I am still a bit confused

#3, what is the definition of a "related" type? I can see "used" type, it is any type / function / class that the current file uses. Looking up every place that uses the current file is going to be quite a lot slower, since that is basically Find References across the class and every class member.

#4, that is a good answer I normally know when my classes are to big, but they are normally to big for a very good reason *sigh*

Would some form of "Code metric" dialog you triggered via a command work? I am thinking that a dialog box appears listing these metrics for the current file / class. Consider a C++ file where the file contains 3 classes, you either need to say "give me the metric's for class X" or just report all classes defined in the current file.

#6, I am not sure how this would work. If you are sitting in a function what does it show you? The types the function uses? For a long function / complex class you can easily have 30+ types. Again what do you mean by "related types"? I can think of several different possible definitions here.

I am concerned that you are going to get such a "long" list it starts to become hard to use.

#7, are you aware you can ask VA to include modified methods? This gets plenty of information into the list.

I am really not sure about filtering the list. I *really* like the idea, but I am cautious for two reasons. Firstly it needs a bit more screen space - unless you are running on a massive monitor VA View is already crowded. Secondly, how much use would it really be? Would it be more useful than scrolling through the last 10 items?

#15, currently I don't think VA knows anything about the debugger. Considering the fun with virtual classes, pointers, run type information, this one scares me, since I just don't see how you can hope to do it from the outside.

#14, perhaps I am being too cautious here, but I keep thinking of all of the bug reports where people use macro's to generate half their classes. #ifdef blocks, different code for different OS's, etc.

Also, how can you actually make sense of these diagrams? From my reading of the article I assume there will have to be tooltips that tell you what the things are as you hover over them. Speaking as someone who wants to only use the keyboard, and views the mouse as "evil", that does not sound very useful.

I have experimented with diagrams myself, and the big problem I always have is you cannot get enough text into them.


Dynamically generated code, I do know what you mean. When I worked with Qt I always wrote all of my GUI's by hand in code. This was slower than using a designer for simple forms, but if you needed to do anything clever... it was actually quite a good system and if you were sensible you ended up with usable, good quality code.

zen is the art of being at one with the two'ness
Go to Top of Page

Uniwares
Tomato Guru

Portugal
2321 Posts

Posted - Jun 16 2008 :  4:42:26 PM  Show Profile  Reply with Quote
I could continue to argue about some of the features but i think it doesnt make much sense as long as it stays between the two of us. Lets see if someone else comes up with some pro/contra opinions here. Maybe some of the VAX developers will eventually see it too...
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
18948 Posts

Posted - Jun 20 2008 :  10:17:21 AM  Show Profile  Reply with Quote
I have mentioned this internally, as you say, lets see what someone else makes of this

zen is the art of being at one with the two'ness
Go to Top of Page

sl@sh
Tomato Guru

Switzerland
204 Posts

Posted - Jun 30 2008 :  1:00:39 PM  Show Profile  Reply with Quote
#1+4+10 Code stats: I've seen these in various IDEs now and while I don't see it as really important, it can sometimes help - just by unobtrusively reminding people working on a module to keep it reasonably short!

#3 CodeFileCrawler: while this looks a lot like VAView functionality, I like the approach of using different criteria for filtering besides the name, e. g. search within a namespace or classes derived from a specific root. Maybe such criteria could be added to VAView?

#6 Click Strip: I don't like the name, but I love the concept! I'm constantly navigating files by following references, and having a sidebar that shows a list of symbols referenced within my current local context would speed up this process a lot! Basically it's the alt-g functionality, but without the need to press alt-g.

#7 Ashes: I remember having seen sth like this... maybe in Eclipse? Anyway, another useful feature, I'd call it a 'most recently changed' list, with added statistics that might help remembering just what kind of changes you have been making, without having to actually switch to that file. IIRC a similar suggestion has come up before on this forum, no idea what came of it though...

#12+ I have the strong impression that the concepts 12+ all depend on runtime information and thus cannot be easily reproduced by VAX (or at all). The explanations refer to instances and call stacks which you won't know about until you're actually running the program.

Regarding the 'Minis' and automatic diagrams I am wondering however, if it would be possible to automatically draw some kind of 'call hierarchy' diagram that points out all possible calls relative to the current position. I sometimes do such diagrams by hand when I try to get an overview for some big module I'm not familiar with.
Go to Top of Page

Uniwares
Tomato Guru

Portugal
2321 Posts

Posted - Jun 30 2008 :  1:12:06 PM  Show Profile  Reply with Quote
sl@sh, you are right, the 12+ features are depending on generated code and .pdb information, no magic behind it though. Not even recflection needed.

As for the minis, they are in this case drawn from class information and the call hierarchy is derived from the current call stack in the debugger. Its a bit far from VA's current functionality, but hey, who knows what the guys can come up with.
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000