The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

VS C++ Express Edition first impressions.

Okay, I've spent ten minutes using a Microsoft IDE, and here are my impressions:

1) The option "run" AKA "Start without debugging" is assigned to Ctrl-F5, while "Start Debugging" is F5. Is VS really aimed at the sort of amateurs who debug more often than run?

2) Lame inline error-checking. When I screw up my syntax, the green bar left of the window turns yellow--barely visible, and without any clue as to the problem. If I call a function that doesn't exist:

int a=notAppearing();

...then it gives no indication that this is wrong, until I build.

3) After building, when errors are displayed, there are no links to the place in my code where the error occurred. How frickin' hard is that?

4) The "output" window is defaulted to float, ie, popup when running. This is easily fixable, but WTF were they thinking? Like I need another popup to close every time I "start without debugging".

5) The help utility helpfully has a link to my privacy rights. That is, they are spying on me when I look up "How to remap hotkeys" or "How to disable popups".

6) "Build" is titled "Build Solution". As far as I can tell, the "Solution" is my little program. At first I thought it was some sort of super-smart "Let me write your app for you" thing. No such luck.

7) As far as I could tell, there's no way to jump to a function or variable by clicking on it. (In eclipse, this is done by holding ctrl and clicking.) This is a real loser, unless I'm just not seeing it.

Why exactly would I use this?
nameher
Saturday, May 27, 2006
 
 
> Why exactly would I use this?

Because you don't want the responsibility of making a choice. You want the freedom to exactly do what MS allows you to do. Silly.
son of parnas
Saturday, May 27, 2006
 
 
>1) The option "run" AKA "Start without debugging" is
>assigned to Ctrl-F5, while "Start Debugging" is F5. Is VS
>really aimed at the sort of amateurs who debug more often
>than run?

Having a debugger step in when something goes wrong is very useful. The cost of running with the debugger is vanishingly close to zero, and having the debugger halt execution and give you dynamic stack traces and expression evaluation abilities at the point of failure is often very productive.

I don't know that I agree that anyone who runs with a debugger is an amateur. Good programmers will always ensure that their code is as error free as possible, but having an automated tool assisting in the background to catch anything you might have missed isn't a bad thing.

>2) Lame inline error-checking. When I screw up my syntax,
>the green bar left of the window turns yellow--barely
>visible, and without any clue as to the problem. If I
>call a function that doesn't exist:

>int a=notAppearing();

>...then it gives no indication that this is wrong, until
>I build.

Not sure why an IDE should be expected to compile on the fly and diagnose every possibly error. Having said that, the VS.NET IDE is actually pretty good at indicating possible compilation errors while you're editing *when it can do it cheaply*.

>3) After building, when errors are displayed, there are
>no links to the place in my code where the error
>occurred. How frickin' hard is that?

Double-click on the error and it takes you to the line of code that's at fault. The actual error is more often than not underlined using Microsoft's red squiggle.

>4) The "output" window is defaulted to float, ie, popup
>when running. This is easily fixable, but WTF were they
>thinking? Like I need another popup to close every time I
>"start without debugging".

I've never seen this. Sure, you can float any of the tool windows in the IDE, and I'm sure for some people that's a nice thing (I'm with you here though; it's not for me).

>5) The help utility helpfully has a link to my privacy
>rights. That is, they are spying on me when I look up
>"How to remap hotkeys" or "How to disable popups".

I'm not sure that I see the relation between Microsoft having a privacy policy available in online help and "they are spying on me".

>6) "Build" is titled "Build Solution". As far as I can
>tell, the "Solution" is my little program. At first I
>thought it was some sort of super-smart "Let me write
>your app for you" thing. No such luck.

A solution is just a collection of projects. Nothing more. When you build, the default is to build the solution (ie: all projects in the solution, in the appropriate order based on their dependencies). Just like running "make" and having a bunch of related applications and libraries built in the right order.

7) As far as I could tell, there's no way to jump to a function or variable by clicking on it. (In eclipse, this is done by holding ctrl and clicking.) This is a real loser, unless I'm just not seeing it.

Hit F12 when the cursor is positioned on the object you want to jump to.
Andrew Lighten Send private email
Saturday, May 27, 2006
 
 
"Why exactly would I use this?"

Clearly, since its feature set is not perfectly identical to the feature set of eclipse, you have a moral obligation not to use it.
BenjiSmith Send private email
Saturday, May 27, 2006
 
 
Okay, I've spent ten minutes using a Microsoft IDE, and here are my impressions:

1) The option "run" AKA "Start without debugging" is assigned to Ctrl-F5, while "Start Debugging" is F5. Is VS really aimed at the sort of amateurs who debug more often than run?

If you don't like the default kust remap your keys in 10secs.

2) Lame inline error-checking. When I screw up my syntax, the green bar left of the window turns yellow--barely visible, and without any clue as to the problem. If I call a function that doesn't exist:

No that yellow bar shws the changes you have done which is not yet saved. When you save it the bar turns green. It has nothing to do with error in code.

int a=notAppearing();

...then it gives no indication that this is wrong, until I build.

It does in c# with a red squiggle underline but can be difficult in C or C++ as there maybe global functions that are linked at build time.


3) After building, when errors are displayed, there are no links to the place in my code where the error occurred. How frickin' hard is that?

It does. Go to the error list (not the raw comiler output window)

Error    1    The name 'newfunc' does not exist in the current context    F:\SimpleDelegate\Program.cs    59    25    SimpleDelegate


4) The "output" window is defaulted to float, ie, popup when running. This is easily fixable, but WTF were they thinking? Like I need another popup to close every time I "start without debugging".

It doesn't in mine but as you said can be chnaged easily and then save the layout

5) The help utility helpfully has a link to my privacy rights. That is, they are spying on me when I look up "How to remap hotkeys" or "How to disable popups".

You can disable searching online help and only refer to local help.

6) "Build" is titled "Build Solution". As far as I can tell, the "Solution" is my little program. At first I thought it was some sort of super-smart "Let me write your app for you" thing. No such luck.

Then learn the IDE and its concepts. A solution is a set of projects. A project can be a .NET dll, a C++ exe , an installer msi etc. All the projects can be sontained in a solution.

7) As far as I could tell, there's no way to jump to a function or variable by clicking on it. (In eclipse, this is done by holding ctrl and clicking.) This is a real loser, unless I'm just not seeing it.

I don;t know what you mean. There is a
Why exactly would I use this class view and a toolbar where you can click and go to a function or variable.
Otherwise right click on the variable and go to definition or references

Learn the IDE first.
nullptr
Saturday, May 27, 2006
 
 
>Is VS really aimed at the sort of amateurs who debug more often than run?<

That statement identifies YOU as an amateur. Therefore the rest of your comments should be ignored.
TrollHunter General
Saturday, May 27, 2006
 
 
"Hit F12 when the cursor is positioned on the object you want to jump to."

That works. That was really my biggest objection. Without that I probably wouldn't bother with an IDE.

I stand by my "amateur" comment, though. People who don't understand their own code go straight to the debugger when anything goes wrong. VS seems to be pandering to that. And Ctrl-F5 is an obnoxious key combination.

VS has some advantages over Eclipse, of course. It's much faster, and doesn't grind my hard drive swapping in and out different parts of itself every time I click a button.

"Learn the IDE first."

Obviously, when I've spend 10,000 hours with Eclipse and 10 minutes with VS, my opinion is skewed. Try to understand I'm being funny here, like:

Objection #8: Why can't I customize Visual Studio with ELisp!
nameher
Saturday, May 27, 2006
 
 
F5/Ctrl-F5 have been the default debug/run keystrokes in VS for many years.  If they changed them now they'd probably hear a whole lot of bitching.  As mentioned they're very easy to change.

VS isn't perfect but your list is weak and not very entertaining if that was your intent.
Doug Send private email
Saturday, May 27, 2006
 
 
"People who don't understand their own code go straight to the debugger when anything goes wrong."

And people who understand their code really really well don't use debuggers? Kinda makes me wonder *how* they got such a good understanding of their code in the first place.
BenjiSmith Send private email
Saturday, May 27, 2006
 
 
"People who don't understand their own code go straight to the debugger when anything goes wrong."

People who don't understand their own code use an IDE... if you weren't an amateur you'd code notepad and compile by the command line.  Do you really need to highlight syntax errors?  Only amateurs type code incorrectly.  I don't see why you'd need "jump to a function or variable by clicking on it" because if you understand your own code, don't you know already where it is?
Almost H. Anonymous Send private email
Saturday, May 27, 2006
 
 
Clicking on a function to go to its source is a time-saver, even if you know where it is exactly. Likewise, little things like pressing ctrl-space to complete variable names saves keystrokes, rather than covering up ignorance.

The question is: Is a debugger a time-saver? Does it help get the job done? Yes and no. Stepping through code to find bugs may well be the more efficient way of finding them. This tends to be true when:

1) The code is unfamiliar to you.
2) The code is a mess (howsoever familiar a mess it may be).
3) Logging is minimal/non-existant.
4) You don't have a clue, and are fishing for one by step-step-stepping.

The most typical mental dialogue when debugging is:

"Is that it? [the bug]"
"Is that it?"
"Is that it?"
"Is that it?"
"Let me change this doo-hickey here."
(repeat)

Needle-in-a-haystack debugging, really.
namehere
Saturday, May 27, 2006
 
 
No, the real value of the debugger is that when an exception occurs it pops you into the debugger right where the error is.  Certainly you don't run the debugger to step through your code base from the beginning everytime to press F5.

There's no reason NOT to run the code through the debugger -- which is really the entire point of having it the default option.
Almost H. Anonymous Send private email
Saturday, May 27, 2006
 
 
So I get:

Segmentation fault: line xyz [however it's phrased]

...and VS takes me to that line when the error occurs. While that would use the debugging metadata in the executable, I'm not sure it's actually a function of the debugger itself.

But I'll assume it is--and it's a good feature. But it's not the REAL use of a debugger. The real use (from every observation I've made) is that of stepping through code at length, looking for poorly-understood bugs.
namehere
Saturday, May 27, 2006
 
 
Well you don't just get the line the error occured, you get the stack frame and you can inspect the contents of variables.  That information is extremely useful.
Almost H. Anonymous Send private email
Saturday, May 27, 2006
 
 
Going back to my original rant..  using the debugger is no more egregious than using inline syntax checking, online help, or anything else in the IDE.  None of these things are earth-shatteringly useful...  but do improve the experience of programming.  I'm not sure why you'd rant against one moderately useful feature while praising the other moderately useful fetures.
Almost H. Anonymous Send private email
Saturday, May 27, 2006
 
 
"The real use (from every observation I've made) is that of stepping through code at length, looking for poorly-understood bugs."

By definition, aren't *all* bugs "poorly-understood". If they were well-understood, they wouldn't be bugs, would they?

A debugger is useful when I know that my application state was correct at Point A. Then, somewhere between Point A and Point B, something goes wrong with the state. Maybe one of my objects is null (and it shouldn't be).

I don't know how *you* approach a problem like that, but I set a breakpoint and Point A and step from A to B until I find the problem.

If I understood the bug to begin with, I never would have written the buggy code in the first place.
BenjiSmith Send private email
Saturday, May 27, 2006
 
 
"Okay, I've spent ten minutes using a Microsoft IDE, and here are my impressions:"

Wow! The fact that you judge an IDE after only 10 minutes of use says it all. You obviously have some preconceived notions about this IDE if you were only willing to give it 10 minutes before flushing it down the drain. I bet you gave Eclipse at least a week to grow on you.

Next time spend a little more time before deciding to publicly trash something you never intended to give a fair shot to anyway. And as your open source counterparts would typically say, RTFM.
anon
Saturday, May 27, 2006
 
 
And as a seasoned developer I can say that it is easier to just start the debugger than to start in run mode and have to restart in debug mode if you find an issue. As someone else said, there is virtually no penalty for running in debug mode over run mode. So why would you even need run mode at all?

You don't run in debug mode solely when you want to debug something. You run in it all the time knowing that you can stop and debug IF you ever have the need to. But then again, maybe Eclipse has a huge penalty for running in debug mode and you've just never had the luxury of using a REAL IDE. Who knows...
anon
Saturday, May 27, 2006
 
 
"and have to restart in debug mode if you find an issue"

Well, my point is, you wouldn't do that. I guess the "penalty" of being in debug mode is not so much CPU cycles as it is having the attitude of "When something goes wrong, into the debugger I go." The _default_ for VS seems to align with that attitude. That's my problem.
namehere
Saturday, May 27, 2006
 
 
"When something goes wrong, into the debugger I go."

I still don't quite get it.

If you have such disdain for debuggers, what do you do when someone reports a bug?
BenjiSmith Send private email
Sunday, May 28, 2006
 
 
"When something goes wrong, into the debugger I go."

...And the alternative is what?
Almost H. Anonymous Send private email
Sunday, May 28, 2006
 
 
"And as your open source counterparts would typically say, RTFM."

Actually, they should say WTFM - "Write The F'ing Manual" - because we all know how well open source is documented.
R. Stoolman
Sunday, May 28, 2006
 
 
Gee wiz, you yung'uns sure know how to complain. When I see a peculiarity in my code, and by jove, that happens, I go and print that fine sourcecode. Sitting in a comfy chair, with a scotch and a sigar I read the code meticulously and it's always jolly good fun when I spot that nasty bugger of a mental mishap. Interactive debuggers are useless! Sometimes, my coworkers (they're good chaps, don't get me wrong!) tell me that they fix their bugs the same day they find them using these 'debuggers', but I know better. Those who run too quickly are bound to stumble and fall, so I take my time. My great great grandfather used to debug his code that way, and if it was good enough for him, then by jove, it's certainly good enough for me.
Old school
Sunday, May 28, 2006
 
 
@Old school:
Hear hear!
J. Send private email
Monday, May 29, 2006
 
 
Capital, old fellow!
Chris Nahr Send private email
Monday, May 29, 2006
 
 
Hillybilly *and* stiff uppah lip, egad. How can one argue with that?
Raj Chaudhuri Send private email
Monday, May 29, 2006
 
 
Oh my, what a troll.

Let me stop VS and start Eclipse instead. What are the default hot keys?

"Debug Last Launched"  F11
"Run Last Launched"    Ctrl-F11

MUCH better than Visual Studio!
Dmitri Chatokhine
Tuesday, May 30, 2006
 
 
> Try to understand I'm being funny here

Laugh? I thought I'd never start.

Wednesday, May 31, 2006
 
 
... And C++ doesn't even have the 'final' keyword! Sheesh.

Visual Studio sucks. Eclipse all the way.
Mr. Powers Send private email
Friday, June 02, 2006
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz