Beta

Slashdot: News for Nerds

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Inside Visual Studio 2008

Soulskill posted more than 6 years ago | from the looking-ahead dept.

Programming 127

mlimber writes "Dr Dobb's Journal has a peek at what is new in Microsoft's Visual Studio 2008. Most of the features discussed in the article are related to .NET, web development, and the IDE itself. However, Herb Sutter, Microsoft software architect and chair of the ISO C++ Standards committee, blogged about some developments on the C++ front. This includes a significantly enhanced MFC for GUI building, and the inclusion of TR1 (library extensions published by the C++ standards committee, most of which have also been incorporated into the next C++ standard)."

cancel ×

127 comments

twitter? (2, Funny)

stoolpigeon (454276) | more than 6 years ago | (#21996024)

how can he not have been here yet? i'm not waiting forever.

CL (1)

Ojuice (638639) | more than 6 years ago | (#21996028)

Yes, but where's the Lisp module? :(

Re:CL (3, Interesting)

plague3106 (71849) | more than 6 years ago | (#21998476)

Why, righ here [lsharp.org] , of course.

Coming? (0, Informative)

Anonymous Coward | more than 6 years ago | (#21996038)

It's already out....

Re:Coming? (0, Offtopic)

Smordnys s'regrepsA (1160895) | more than 6 years ago | (#21996248)

Complaining that /. is "breaking" old news? You must be new here.

Re:Coming? (0, Offtopic)

stoolpigeon (454276) | more than 6 years ago | (#21996250)

i don't know. i checked and he's got a pretty low user id.

Re:Coming? (0, Offtopic)

Smordnys s'regrepsA (1160895) | more than 6 years ago | (#21996334)

Man, I was gonna try a joke based on the whole "number of the beast" bit, but I just found out that it actually isn't 666 [wikipedia.org] .

Sorry for hating you all these years, AC.
...now, to find the owner of TRUE evil!

Kudos to the Visual Studio Team (4, Interesting)

RuBLed (995686) | more than 6 years ago | (#21996060)

All I could say is that the best tool for windows development just got better. The new feature that could impact my work most is LINQ. I dunno but the VS Team of M$ had been doing some good things...

Re:Kudos to the Visual Studio Team (1)

Miguel de Icaza (660439) | more than 6 years ago | (#21996116)

me too

Re:Kudos to the Visual Studio Team (1, Informative)

Anonymous Coward | more than 6 years ago | (#21996372)

Unfortunately for me, they removed the visual XML schema designer which was
nice to get a quick overview of schema (for editing, nobody sane would anything except XML mode).

Re:Kudos to the Visual Studio Team (1)

tieTYT (989034) | more than 6 years ago | (#21997046)

I never used VS XML schema designer, but I really like this product: http://www.liquid-technologies.com/Download.aspx [liquid-technologies.com] I don't think it's open source but at least it's free.

Re:Kudos to the Visual Studio Team (0)

Anonymous Coward | more than 6 years ago | (#21997996)

Man,

to you and all the following posts that reckon vs is the best thing since sliced bread, you just haven't scratched the surface.

When I have to do winders stuff I use Delphi - and still 5.0 Pro cause it just works. Don't own C++ Builder but would if required.

Last year I d/led a trial of vs to check some .net stuff. It sucked abysmally compared to Delphi.

Borland IDEs are light years ahead of anything ms ever put out.

Every bit of ms software whether dev tools or their other apps like iexploder, email, office (classic example the recent excel bug), etc, always have this feeling of flakiness. Like there are so many layers of abstraction keeping you away from the hardcore.

This is all before you factor in winders itself.

Sheesh...

LINQ is over-hyped (3, Insightful)

Anonymous Brave Guy (457657) | more than 6 years ago | (#21999276)

Just for the record, I think LINQ is a neat idea, and as a general principle I'm all in favour of strong abstractions and useful syntactic sugar in programming languages if these make code easier to understand and quicker to develop.

However, I'm worried by a lot of the hype about LINQ that's been flying around in recent months. Earlier this week, I found a code sample in a blog post showing how to use LINQ to find all the items less than 10 in a list. It went something like this:

from n in mylist
where (n => n < 10)
select (n => n)

For reference, here's the equivalent expression in Haskell:

filter (<10) mylist

That's obviously a much more elegant representation of the idea, and while it's not as generic, you also have things like map and reduce available, and a lot more if you need it.

If you don't like the functional syntax, Python's list comprehensions also provide a bit of flexibility, with less redundant clutter than the LINQ:

[n for n in mylist if n < 10]

Even using the standard library algorithms in C++98 — where, let's face it, the use of iterators and of algorithms with predicates is pretty unwieldy in the absence of good syntactic sugar — the code is about the same size as the LINQ version:

find_if(mylist.begin(), mylist.end(), bind2nd(less<int>(), 10))

This isn't intended to be a criticism of LINQ, because LINQ can do far more than just a simple filter operation on a single list. Rather, I am criticising those who over-hype a new technology as if it is the One True Way to solve all remotely related programming problems, and then apply a powerful, generic approach to a simple problem giving a ludicrously over-engineered result. See also: design patterns, template metaprogramming in C++, dynamically typed languages and web frameworks, monads for trivial I/O in Haskell, etc. Like all these other things, LINQ has a lot of potential to improve development when used in the right context, but I fear it will be overused just because it's new and heavily hyped.

Re:LINQ is over-hyped (1)

shutdown -p now (807394) | more than 6 years ago | (#22002174)

LINQ is also System.Linq. Using the latter, your example would be: mylist.Where(x => x 10)

Re:LINQ is over-hyped (0)

Anonymous Coward | more than 6 years ago | (#22002706)

I believe it's really "Linq to Sql" or DLINQ that is getting the most praise. The terminology is all out of whack because of the way people have been using it, but it's how Linq to Sql can take complex linq queries and create dynamic, efficient (at least more efficient than a normal developer can make it given the amount of time spent) Sql out of it that makes it truly impressive.

Re:LINQ is over-hyped (1)

shutdown -p now (807394) | more than 6 years ago | (#22002856)

It is unfortunate that LINQ to SQL only works with Microsoft SQL Server at the moment...

C99 yet? (5, Interesting)

hpa (7948) | more than 6 years ago | (#21996144)

Do they actually have C99 support yet?

Re:C99 yet? (4, Informative)

ireallylovelinux (589360) | more than 6 years ago | (#21996186)

Uh, GCC doesn't even support C99 why would you expect MS to be?
http://gcc.gnu.org/c99status.html [gnu.org]

Re:C99 yet? (0, Redundant)

ad0gg (594412) | more than 6 years ago | (#21996326)

Better question is: Do people still code in c?

Re:C99 yet? (5, Informative)

Anonymous Coward | more than 6 years ago | (#21996404)

Kernel developers, system programmers and embedded developers do a lot of C, so does a lot of scientists who write in C instead of Fortran (as the restrict keyword in C99 solves the main issues with writing numerical code in C). Language runtimes tend to be written in C as well (e.g. the standard python distribution). So yes, people still write in C. Some developers (application developers for example), should naturally not write in pure C for most part (there are obviously some performance critical parts that are suitable for C).

Re:C99 yet? (1)

shutdown -p now (807394) | more than 6 years ago | (#22002268)

MS guys say that their (paying) customers don't ask for the whole of C99, so they won't bother. Some specifically requested features such as "restrict" may be implemented individually, though.

Thanks for asking (5, Insightful)

Tony (765) | more than 6 years ago | (#21996414)

Fuck, yes.

C++ sucks. It's a half-assed attempt at an object-oriented language, combining the easy memory model of C with the simple OO model of Simula. I used to think the only good thing about C++ was templates. Then I figured out that templates suck, too, because they're damned near impossible to debug, for most non-trivial bugs.

I fuckin' *hate* C++. I'd much rather have to code straight C while being punched repeatedly by a baboon.

Objective-C is much less ugly. But then, so is LISP. (Actually, LISP is a damned good language. It's just not *pretty*, in a strictly aesthetic sense.)

So, to not be snide, there are *many* people who still code in C. There are many objective reasons to avoid C++. (This *was* about C++, wasn't it?)

Re:Thanks for asking (1)

jacquesm (154384) | more than 6 years ago | (#21996458)

somebody with mod points please mod parent very far up, thank you.

Re:Thanks for asking (5, Interesting)

iangoldby (552781) | more than 6 years ago | (#21996542)

[C++ is] a half-assed attempt at an object-oriented language, combining the easy memory model of C with ...
Took me a moment to realise you were being sarcastic.

Seriously though, what's so difficult about the memory management model of C? I find it hard to think of anything much simpler. The great thing about C (IMHO) is that if you didn't write it, it won't happen.

Re:Thanks for asking (1)

frodo from middle ea (602941) | more than 6 years ago | (#21997388)

Try arguing that with a Java Programmer.

Re:Thanks for asking (0)

Anonymous Coward | more than 6 years ago | (#21997766)

The great thing about C (IMHO) is that if you didn't write it, it won't happen.

That's also the bad thing about C. If you didn't write something, it won't happen -- and what do you think the odds are that somewhere in your millions of lines of code, you're going to forget to deallocate a pointer?

Re:Thanks for asking (1)

hal2814 (725639) | more than 6 years ago | (#21998484)

"Seriously though, what's so difficult about the memory management model of C? I find it hard to think of anything much simpler."

Well, dynamic memory management isn't even part of the language. It has to be handled by outside function calls malloc() and free(). Other than that, it's pretty easy.

Re:Thanks for asking (1)

plague3106 (71849) | more than 6 years ago | (#21998514)

Seriously though, what's so difficult about the memory management model of C? I find it hard to think of anything much simpler. The great thing about C (IMHO) is that if you didn't write it, it won't happen.

Exactly. Don't write that statement to free memory, and you have a memory leak. Its an important line that needs to be everywhere, so why not have a tool that does it for you, ensuring you CANNOT forget it? That's one less kind of bug I need to hunt down, and I get my work done quicker.

Re:Thanks for asking (1)

fbjon (692006) | more than 6 years ago | (#22000514)

Don't static code analysis tools detect most of those? I haven't used such for C, so I don't know.

Re:Thanks for asking (1)

plague3106 (71849) | more than 6 years ago | (#22000984)

Possibly, but if its baked into the language or framework, that's one less thing static tools need to worry about, and the developers building the analysis toos can put more effort into finding other potential bugs.

Re:Thanks for asking (1)

plague3106 (71849) | more than 6 years ago | (#22001014)

Oh, and baking it in means anyone using the language will have the feature, vs. only those that bother with an analysis tool.

Re:Thanks for asking (1)

jhol13 (1087781) | more than 6 years ago | (#21998602)

what's so difficult about the memory management model of C?
vector a;
  a.push_back(Foo()); // repeat N times ...
  a.clear();

This simple operation in C++ is annoyingly difficult in C.

You also could argue whether garbage collection is simpler.

Re:Thanks for asking (0)

Anonymous Coward | more than 6 years ago | (#22002030)

Seriously though, what's so difficult about the memory management model of C? I find it hard to think of anything much simpler.

Well, C has malloc and free. Lisp has cons. I'd say that's 50% simpler.

C is like the men's shower at the county jail: no problem at all, until you drop something.

Re:Thanks for asking (4, Insightful)

epine (68316) | more than 6 years ago | (#21996590)

The strangest possible criticism of C++ is the superiority of C. Unlike most languages, if you don't like a C++ feature (one that C doesn't have) you don't have to use it, and there is little or no runtime penalty imposed.

The strangest possible criticism of C++0x templates is that they are impossible to debug. It is, after all, the primary focus of changes to the C++ template system to drive diagnostics to the appropriate surface (at long last).

This is the fundamental advantage of a hammer over a pneumatic nail gun. The nail gun might be perfectly safe is used wisely, but human nature decrees that ultimately many people are going to file off the safety, leading to predictably gory anecdotes.

Standardize instead on the hammer, this can never happen. Which is the principle virtue of C.

C++ is probably the worst language ever devised to throw into a room full of monkeys. Many of the people who hate C++ most strongly have an underlying distrustful view of their peers as unwashed monkeys completely lacking in prudence, judgment, or impulse control.

There are situations where C++ simply should not be used, in much the same way that surgery in an African aid hospital lacking electricity and hot water is not your preferred medical option. Under sterile conditions, with doctors you trust, the pros and cons of C++ balance out quite differently.

I've been trying to put this sentiment into words for a long time. In development teams where dog-eat-dog survivalism holds sway (us against the world, me against my teammates, managers against the staff) C++ can only play out in the worst possible way.

Armed with hammers instead (the C language), the tragedy of the commons can't degenerate nearly so far. The virtue of C is that you don't have to like or respect everyone else you work with, which is no small virtue given human is what it is.

Re:Thanks for asking (3, Insightful)

master_p (608214) | more than 6 years ago | (#21997290)

Buddy, only God (or Stroustrup) can write good c++ code. If you have the guts, read this [yosefk.com] . There are humongous flaws with the language (and I say this with 10 years of c++ experience).

The concept of c++ is good: a language close to the bare metal that has the capability to abstract details so as that it reaches higher level language status. But in practice, it has incredible flaws; the implementation is *bad*. It could have been so much better...

Re:Thanks for asking (1)

oliverthered (187439) | more than 6 years ago | (#21997444)

Hey, I like C++, are you using it in a 'good' way (it is very hard to find a good way of doing c++ as it lends itself to so many bad ways of programming).

just look at the likes of QT and KDE great examples of great c++.

Re:Thanks for asking (1)

david_thornley (598059) | more than 6 years ago | (#21997592)

I started to read it. It's rather long, so I'll continue later.

Amazing, isn't it, that after years of C++ coding, I haven't found it particularly difficult. (There are corner cases, which are usually easy to avoid.) Interesting that I found the unreadable templated type definition fairly easy to read (if not immediately comprehending it). Odd that, for somebody complaining about C++, the author doesn't seem to have embraced it, talking about using arrays (which are holdovers from C that should not normally be used) and char *s.

C++ has plenty of warts, but it's a very usable language. It's also real easy to screw it up in many, many ways, so it should be used by people who know something of the language, are prepared to use it as C++ rather than C with a few add-ons, and are intelligent enough not to write code they can't understand.

Re:Thanks for asking (1)

daveisfera (832409) | more than 6 years ago | (#21998914)

Plus, some of the claims from http://yosefk.com/c++fqa/ [yosefk.com] about the "flaws" of C++ are just flat out wrong, so I wouldn't rely on that as too valid of an opinion.

Re:Thanks for asking (2, Informative)

swillden (191260) | more than 6 years ago | (#21998420)

Buddy, only God (or Stroustrup) can write good c++ code.

Bull. I have written plenty of good C++ code, and I've read lots more, over the 16 years I've been using the language. C++ requires discipline, no doubt, but used correctly it can be both extremely productive and extremely efficient.

If you have the guts, read this.

Read it before, disagree with some of it, most of the rest is overstated, there are a couple of real, but avoidable, issues mentioned.

Re:Thanks for asking (1)

Lord Duran (834815) | more than 6 years ago | (#21997778)

You use a lot of metaphors, but even you say, "Unlike most languages, if you don't like a C++ feature (one that C doesn't have) you don't have to use it, and there is little or no runtime penalty imposed." You keep saying why C, the hammer, is better than the pneumatic nail gun - but you just proved that C++ is not a pneumatic nail gun, it's the hammer with a detachable pneumatic nail gun on the side. In most cases, it's C, and a little more. That seemingly little addition makes a difference in design, and that difference is a large part of what makes .NET and other RAD environments so successful. While I'm against the idea of using several design schemes - procedural and object oriented - in the same section of a given project, integrating two separate sections, each written with the more suitable paradigm, would lead to a better product. Using the same language for different schemes, which is one of C++'s strengths, makes for a more seamless, less buggy integration.

Re:Thanks for asking (1)

naibas (109074) | more than 6 years ago | (#21999802)

There is nothing wrong with C++.
There is nothing wrong with C.

I think that epine has it right, that a lot of the rancor over C and C++ is due to abuses of the languages made by unskilled hands. Just as you need the right tool for the job, you also need the right worker for the job. Even with the best tools, you still need an experienced plumber to keep the water in the pipes, and an electrician to keep high voltages out of people, etc.

C is hugely popular, and probably always will be. C++ was created to reap the benefits of C, while allowing people to code in ways that would improve productivity, if so desired, without abandoning all that code that was already written in C.

And it's been my experience that proper C++ (along with competent co-workers) does improve productivity. That doesn't mean it's right in every situation, or that all C code could be "improved" by using the features unique to C++. It also doesn't mean they got it perfect the first time, which is why people are working on new standards.

Re:C99 yet? (4, Interesting)

forkazoo (138186) | more than 6 years ago | (#21996438)

Better question is: Do people still code in c?


Sure, lots of people write new stuff in C all the time. But, even if nobody did that, there are still a ton of people with existing C codebases that they are still working with. IIRC, Win32, Carbon, and GTK+ are all C API's, even if they have bindings to other languages. Lots of video and multimedia stuff is done in C, like the Dirac reference implimentation, gstreamer, ffmpeg, etc. When people talk about how C is dead, and nobody writes anything in C, they generally mean that higher level languages are used to glue together a bunch of C.

Re:C99 yet? (2, Interesting)

JNighthawk (769575) | more than 6 years ago | (#21997898)

Just to lend some more weight to this, Cryptic Studios, the developers of City of Heroes/Villains, code in straight C.

Re:C99 yet? (1)

BeanThere (28381) | more than 6 years ago | (#21997126)

Gee I dunno, maybe because one is made by a bunch of people working voluntarily in their free time, while the other is a massive software corporation selling expensive "professional" development tools whose software runs on most PCs in the world and which makes billions each month. Honestly, we should demand that Microsoft behave like a company of its position *should*, not pretend that making cynical remarks suggesting we should not expect it do so is "insightful".

Re:C99 yet? (1)

Threni (635302) | more than 6 years ago | (#22001598)

> Gee I dunno, maybe because one is made by a bunch of people working voluntarily in their free time, while the other is a massive software
> corporation selling expensive "professional" development tools whose software runs on most PCs in the world and which makes billions each month.
> Honestly, we should demand that Microsoft behave like a company of its position *should*, not pretend that making cynical remarks suggesting we
> should not expect it do so is "insightful".

"We should"...hold it right there. We? Who is we? You don't speak for me. Are you a shareholder? If not, you have nothing to say about what a company does. The fact that they're making a lot of money doesn't oblige them to any particular way of handling standards.

If people who work on stuff in their spare time don't see the need to support a standard, and a company can dominate by selling products which also don't meet that standard sort of suggests that the standard isn't all that important. To be honest, I don't think Microsoft's future is in the area of C/C++ standards. They went 5 years between ie6 and 7, so I can't imagine they're working flat out to fix the last little nerdy irrelevancies which cause their compilers to fail the language lawyers tests.

Re:C99 yet? (2, Informative)

Per Abrahamsen (1397) | more than 6 years ago | (#21996478)

Herb Sutter wrote in his blog (which was linked in the submission) that the only thing from TR1 for C++ not implemented was C99 support. So I guess not.

Re:C99 yet? (1)

Jugalator (259273) | more than 6 years ago | (#21996676)

Do they actually have C99 support yet?
Doh, the spec isn't even finalized. If they had it in now, you'd complain that they were using unfinalized specs. But to answer your question, yes, it's coming in a free update scheduled for Q1 2008.

In addition, we will also be delivering TR1 support. Portions of TR1 are scheduled for adoption in the upcoming C++0x standard as the first major addition to the ISO 2003 standard C++ library. Our implementation includes a number of important features such as smart pointers, regular expression parsing, new containers (tuple, array, unordered set, etc), sophisticated random number generators, polymorphic function wrappers, type traits and more! We are not currently shipping C99 compatibility or support for special math functions.

Inside 2008 VSN (-1, Troll)

Anonymous Coward | more than 6 years ago | (#21996206)

Inside 2,008 Very Stuffed Niggers you might find:

- watermelon pie
- fried chicken casserole
- a heart of darkness

Does it do real time error highlighting? (2, Insightful)

tieTYT (989034) | more than 6 years ago | (#21996378)

Real time error highlighting is the MOST important thing to me when it comes to an IDE. If I forget a semi-colon the IDE should tell me as soon as I go to the next line that I'm missing a semi-colon. It shouldn't wait to compile or run my code, it should tell me as soon as possible. The last version of VS didn't do this (without a plugin), does this version?

Re:Does it do real time error highlighting? (1)

tieTYT (989034) | more than 6 years ago | (#21996384)

shoot, i meant to say "It shouldn't wait for me to compile or run my code"

Re:Does it do real time error highlighting? (1)

pembo13 (770295) | more than 6 years ago | (#21996428)

I'm not a big fan of Visual Studio, but it has done real time error highlighting for a very long time now (relatively long at least).

Re:Does it do real time error highlighting? (1)

tieTYT (989034) | more than 6 years ago | (#21997028)

I don't know what you consider a very long time but at least for VS 2005 you're wrong. It highlights your errors after you try to run your code. That's in no way closer to "real time" error highlighting than compiling my code manually.

I feel that VS is great at doing very high level things. For example, designing a UI or mapping tables to objects, etc. But when it comes to the BASICS, VS pretty much sucks ass. If you compare it to even the shittiest java IDEs, it falls flat on its face in this department. For a list of what VS CAN'T do on its own (that a lot of java IDEs can), take a look at this: http://www.jetbrains.com/resharper/features/index.html [jetbrains.com] (This is a feature list of a plugin for VS made by the same guys that make my Java IDE of choice. I am in no way affiliated with them, I just like their product a lot).

Personally, I care MUCH more about the basics than I do the high level stuff. If given the choice between the features in that link and a real slick UI WYSIWYG, I'd choose the former. I respect others who feel the opposite; I understand its just my opinion. But fact is, some of these IDE features have existed in other IDEs since 2001. Can we get a little embrace and extend here, Microsoft?

Re:Does it do real time error highlighting? (2, Informative)

nxtw (866177) | more than 6 years ago | (#21998270)

I don't know what you consider a very long time but at least for VS 2005 you're wrong. It highlights your errors after you try to run your code. That's in no way closer to "real time" error highlighting than compiling my code manually.


Visual Studio highlights errors in Visual Basic.NET code and has done this since at least 2003.

I'm not sure why they can't extend this functionality to C#; the languages are very similar.

Re:Does it do real time error highlighting? (2, Insightful)

plague3106 (71849) | more than 6 years ago | (#21998580)

They could, but C# developers would crucify them. The community has been very vocal that they DON'T want that feature. Quite frankly, I agree. VB.net has been plagued with problems related to the "on the fly" compliation and letting you change code while the program is running. I don't want to type, fix, type fix. I'd rather get the implementation done and then compile to see if I messed up any syntax. It seems though that between Intellisense and automatic code formatting that I catch most syntax errors anyway. Forget a ; or closing brace somewhere, and watch the formatter screw everything up. Fix the syntax error and reformat, and everything is right again.

I'm not sure how Eclipse manages to get away with this, but it certainly seems to slow things down quite a bit. I can remote desktop to my home computer and use VS2005/8 and notice no more lag than when typign in Notepad, but Eclipse will grind to a halt at times, not to mention having to force it to do it's Intelisense equivolent by hitting ctrl+space.

Re:Does it do real time error highlighting? (1)

nxtw (866177) | more than 6 years ago | (#21998810)

They could, but C# developers would crucify them. The community has been very vocal that they DON'T want that feature.

"The community" is a pretty big group of people. I'm sure there are people that would like the functionality, and as long as you can enable/disable it, what's the issue?

VB.net has been plagued with problems related to the "on the fly" compliation and letting you change code while the program is running.


Visual Studio 2005's C# functionality has on-the-fly code editing for minor changes.

Re:Does it do real time error highlighting? (1)

plague3106 (71849) | more than 6 years ago | (#22000114)

Visual Studio 2005's C# functionality has on-the-fly code editing for minor changes.

Hmm, you seem to be right. It's present in 2008 as well.

Re:Does it do real time error highlighting? (1)

tieTYT (989034) | more than 6 years ago | (#22001490)

>The community has been very vocal that they DON'T want that feature.

Hopefully this will inform the others that VS 2005 does support this feature. I swear, every other reply to my post has been saying, "VS does support it and has for 8 years". To the rest of you; no it doesn't. You're either confused about what we're talking about or very unobservant.

>VB.net has been plagued with problems related to the "on the fly" compliation and letting you change code while the program is running.

NO NO NO! Not while the program is running. That is not what I want (unless I'm in debug mode, that can be useful). I simply want to see my errors as soon as I make them. I can see from your following comments that you did understand me, but I think this sentence will confuse others as to what I'm asking for.

>I don't want to type, fix, type fix. I'd rather get the implementation done and then compile to see if I messed up any syntax.

I respect that. And you should respect that I want to type, fix, type, fix. And more importantly, so should MS. They should make it a feature that you can turn off.

>It seems though that between Intellisense and automatic code formatting that I catch most syntax errors anyway. Forget a ; or closing brace somewhere, and watch the formatter screw everything up. Fix the syntax error and reformat, and everything is right again.

Right, it was a trivial example of the bigger picture. If you look at the features of resharper, you'll see that VS is like notepad compared to what other modern IDEs can do.

>I'm not sure how Eclipse manages to get away with this, but it certainly seems to slow things down quite a bit. I can remote desktop to my home computer and use VS2005/8 and notice no more lag than when typign in Notepad, but Eclipse will grind to a halt at times, not to mention having to force it to do it's Intelisense equivolent by hitting ctrl+space.

Perhaps that has something to do with you remoting. Perhaps that has something to do with the size of the project. Perhaps the ctrl+space thing is a property you can change. Perhaps just eclipse is slow. If you were programming in java, you should take a look at Intellij IDEA. I can almost guarantee it won't slow down in these situations. I've always felt that VS was one of the slower IDEs I've used, while at the same time supporting the least number of basic features.

Re:Does it do real time error highlighting? (1)

fbjon (692006) | more than 6 years ago | (#22001782)

Catching missing ;'s by way of screwed up autoformatting seems like a crude hack. Why not just have the IDE point with its red arrow, "Don't forget to put a ; here at some point!". This shows you all errors, instead of just the first one.


Also, not sure what Eclipse does these days, but I wouldn't say NetBeans is slow because it checks for syntax errors, since there's a deliberate delay between the user stopping typing, and the IDE starting checking. The "forcing code completion" is weird, I'd think it would pop up automatically when typing . after an identifier.

Re:Does it do real time error highlighting? (1)

shutdown -p now (807394) | more than 6 years ago | (#22002768)

If that's the case, then why ReSharper (which provides on-the-fly error checking and highlighting, among other things) is so popular?

Re:Does it do real time error highlighting? (1)

Mongoose Disciple (722373) | more than 6 years ago | (#21998416)

What language are you programming in? VS2005 certainly does it for C#.

Re:Does it do real time error highlighting? (1)

Elgonn (921934) | more than 6 years ago | (#21996434)

I'm quite certain all versions of VS for at least the last 8 years have done that. Plugin? Maybe it doesn't in your language of choice?

Re:Does it do real time error highlighting? (2, Informative)

Saffaya (702234) | more than 6 years ago | (#21996550)

VS 2003 does not (C++) do real time error highlighting.
You need to use 3rd party plug-ins.

Re:Does it do real time error highlighting? (1)

Elgonn (921934) | more than 6 years ago | (#21996840)

Poor C++. I checked and built in support for C++ was included in 2005. I've never quite understood how Microsoft can keep its strange leap frog functionality between 'similar' types of things.

Re:Does it do real time error highlighting? (1)

Matje (183300) | more than 6 years ago | (#21996614)

download the evaluation for resharper. the last version even includes a panel that'll show you all your compile errors in the complete solution. it does much more than that, but you'll notice that out as soon as you start using it ;)

Re:Does it do real time error highlighting? (1)

Jugalator (259273) | more than 6 years ago | (#21996690)

I believe not, but the Resharper and Visual Assist addons have this, for example.
Along with a bit worsened performance due to having to real-time analyze every character you type, but for "modern" computers, this should be less of a hassle. The performance hit is clearly noticeable on this Athlon XP 1700+ though. Kind of funny, but I guess we adjust to what hardware we have, even if it means typing into pretty much a text editor becomes slower!

wake me up in 1998 (3, Interesting)

epine (68316) | more than 6 years ago | (#21996464)

Back in 1998 I would have welcomed a standard compliant C++ compiler from Microsoft. What Microsoft did support, it supported one level deep (e.g. namespaces, many template features) with unbridled hypocrisy.

Fast forward to 2008, if Microsoft can't be bothered, others can, so now they bother. Kind of like arriving at a New Year's party at half past twelve. The champagne is gone, and when you make your grand entrance into the room full of glassy expressions, everyone slaps you on the back and says "hey, glad you could make it". Almost like being there.

Re:wake me up in 1998 (4, Insightful)

Jugalator (259273) | more than 6 years ago | (#21996706)

So you mean this means nothing to the millions of C++ programmers out there? Standard compliance on the by far most prominent OS tend to be a big deal, even if it's coming late. I very much agree with the "better late than never" saying here. If I wouldn't, that would mean I'd be pleased with an old non-compliant Visual C++ 6 compiler, which I would definitely not be.

Re:wake me up in 1998 (1)

z0M6 (1103593) | more than 6 years ago | (#21996860)

Not as if I am going to bother finding out if it is true or not, but I am sure there is better than decent alternatives on the "most prominent" OS

Re:wake me up in 1998 (1)

g051051 (71145) | more than 6 years ago | (#21997526)

Please note that there are lots of Standard compliant C++ IDEs and compilers for the "most prominent OS" that also support other OSes. The world is not Windows...

Re:wake me up in 1998 (1)

fireboy1919 (257783) | more than 6 years ago | (#21997978)

Standard compliance on an often used, though not dominant compiler tends to be a small deal because its coming late.

Fixed that for you. It's not the OS that's in question here. You don't even have to use the VC++ compiler in Visual Studio, much less is it the only choice for the OS.

Re:wake me up in 1998 (1)

shutdown -p now (807394) | more than 6 years ago | (#22002810)

Microsoft doesn't just bring a standard-compliant implementation to the table: they bring one well-integrated into a very good C++ IDE. The debugger in VS2005 and above is really great, especially the visualizers for STL classes (that's when you see e.g. std::list as "std::list[10]{1, 2, 3, 4, ...}", not as "_List{_Size=10,_Head=0x234a3f01}"; now they're also doing it for TR1 types as well). IntelliSense is so-so, but better than all the alternatives (for C++) that I am aware of, except for Visual Assist - at least it can properly deduce types for moderately complicated templates, such as the stuff in STL.

Re:wake me up in 1998 (0)

Anonymous Coward | more than 6 years ago | (#22002820)

Have you been asleep for the last 5 years? In 1998 Microsoft's compiler was something like 68% compatible with the C++ spec. Their FREE 2003 compiler was more like 98%.

More like intellinonsense (0)

Anonymous Coward | more than 6 years ago | (#21996620)

All I really want to know is: will Intellisense actually WORK this time?

Re:More like intellinonsense (2, Informative)

josteos (455905) | more than 6 years ago | (#21996772)

installs Visual Asisst http://www.wholetomato.com/ [wholetomato.com]

Yep. Works great now.

(No, I don't work there. Just been a long-time customer.)

Is it any better than Visual Studio 6? (2, Interesting)

johannesg (664142) | more than 6 years ago | (#21996636)

I still develop in Visual Studio 6. Yes, the language support is somewhat lacking (scope rules for 'for' get me regularly), but to me it just feels so much nicer to work in than the later versions of VS. As if this was the last version that was still for C++ developers: I neither want nor need to develop web pages, C# applications, .NET stuff, or whatever crap they added later, and I sure don't want it to be the focus of the package I'm working in, with C++ thrown in as an afterthought.

Have they brought back the keyboard macro's? They were there in VS6 but I could never find them in later versions.

Re:Is it any better than Visual Studio 6? (5, Interesting)

ThaReetLad (538112) | more than 6 years ago | (#21997128)

Well, we're just completing the porting of approx 1 million lines of VC++6 to VS 2008, and I have to say it's been so worth it. The new compiler picks up on and warns about many more potential problems, and there's also the issue of whole program optimisation. Also the debugger in VS2008 is much better than the VC6.0 one. I have to say, I think VS2008 is pretty great. A lot of the niggly little problems in VS2005 have now been dealt with, and speaking as someone who is just now starting to write some C# after 9 years writing C++ the LINQ stuff and lambda expressions are just great.

Re:Is it any better than Visual Studio 6? (4, Informative)

TheThiefMaster (992038) | more than 6 years ago | (#21997248)

Have you tried MSVC++ 2005?

The debugger is leaps and bounds ahead of the VC6 one.
It supports parallel building of multiple projects on multicore cpus / multiple cpus (massively reducing build time).
Built in x86-64 compiling / debugging (local machine and network) support.
It supports link-time code generation (a major optimization improvement). The Pro version also supports profile-guided optimization.
It supports OpenMP multithreading extensions for C++.
Many many other improvements.

The C++ .net extensions are optional. And, in my opinion, crap. If you want to use .net, you're better off with C#.
Note: VC++ 2005 Express Edition (the free version) doesn't come with the Windows Platform SDK, and if you don't install it is only good for developing C++.net apps.

The ONLY advantages to VC6 are: that it links programs against the VC6 runtime dll, which comes with most versions of Windows, right back to some 9x editions, where with VC2005 it links against the VC8 runtime dll, which most people need to install / you need to distribute it with your program / you need to static link with it, resulting in a larger .exe; and that it supports building .exes that run on Windows 95.
Basically VC6's only advantage is that it's old.

Re:Is it any better than Visual Studio 6? (2, Informative)

Anonymous Brave Guy (457657) | more than 6 years ago | (#21999486)

The ONLY advantages to VC6 are: [snip]

I think you forgot a few. For one thing, VC6 is actually responsive as an IDE, and doesn't go into a trance for several minutes at the slightest provocation. For another, the online help is actually helpful: if you look up a C++ library function, for example, it tells you about the library function, and not some completely irrelevant class with a vaguely similar name in the .Net framework (after taking half a minute to fire up the help system before it does anything else). Then there's the browse toolbar, which was simple and effective, yet strangely is still missing several .Net-friendly versions later despite widespread criticism of its removal.

Yes, at my office we also have people who prefer to use VC++ 6. Sure, there are some minor advantages in the later versions, but I think (and we've measured these things where it matters) that most of those you cited are over-rated. Many of us long for the days when we have a simple, responsive, usable IDE.

Re:Is it any better than Visual Studio 6? (1)

bigstrat2003 (1058574) | more than 6 years ago | (#22000832)

Maybe the C++ editor in newer versions of Visual Studio just blows chunks, but I've certainly never had the problems with responsiveness you cite with VC# 2005. It runs just fine. And this is on a crappy computer, no less... on my good computer, it runs even better.

Re:Is it any better than Visual Studio 6? (2, Informative)

Anonymous Brave Guy (457657) | more than 6 years ago | (#22001006)

Yes, all of this stuff is C++ specific. VC++6 was a decent IDE for its time. When the first version of VS.Net came out, the architecture behind VS moved to a common core for all languages. That was fine if you were using something like C# or VB.Net, as they were new and you had all the .Net trickery to support them. However, a lot of useful stuff from VC++6, such as the browse toolbar I mentioned, couldn't be readily supported in this new multi-lingual architecture and therefore got dropped as MS effectively moved to the least common denominator.

The problem is, while there is a lot of compensating value in more recent VS releases for those using the new .Net languages, the C++ world has been pretty much left out in the cold. In the debugger, we get modest improvements in autoexp.dat, but the managed folks get full visualizers. C++ (and C++/CLI, where applicable) have lagged behind in getting proper designers for forms and such. The help system is so horribly bloated and .Net-centric now that while MSDN used to be the poster child of good technical reference material it is now almost literally useless for a C++ developer. And yes, as mentioned before, the IDE's performance and usability absolutely sucks compared to VC++6, to the point where I have seen experienced developers confront management with some hard facts and refuse to use the "upgraded" versions until compelled to do so.

std::auto_ptr is broken in VS2005 (1)

shutdown -p now (807394) | more than 6 years ago | (#22002514)

Be warned: std::auto_ptr is broken really, really badly in VS2005, with no fix available for now(aside from a recommendation to migrate to VS2008, where this is fixed):
  • https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=319580
  • https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=316513
  • https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=101842
  • https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=98871
  • https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=316513
Note that this bug actually results in some perfectly reasonable, standard-compliant code to crash or behave incorrectly at runtime (see the first link for details on this particular aspect of it); what's worse is that the same code ran just fine under VS2003 (and, of course, under any version of g++ from 3.x up). Also, the compiler won't give any warnings - you'll just get non-working code, which will segfault at best, and quite possibly just silently produce incorrect results.

Re:Is it any better than Visual Studio 6? (1)

Xest (935314) | more than 6 years ago | (#21997272)

Better standards compliance and better compiler optimization as the version numbers increase are probably the primary reasons to upgrade from VS6.

Re:Is it any better than Visual Studio 6? (1)

hesaigo999ca (786966) | more than 6 years ago | (#21998074)

Dude..just cuz u couldn't be bothered to know how an app works, don't say it doesn't. You are complaining about stuff that is all configurable through the IDE, and even your keyboard macros are there, in VS 2005,...maybe I could suggest a good book before blasting the best suite for windows development.

VS 2005 tips & tricks...says a lot about all the stuff u think is missing, but really isn't

Elastic tabstops? (1)

nickos (91443) | more than 6 years ago | (#21996944)

Visual Studio has to be the best piece of software to have ever come from Microsoft. IMHO it would be even better if they would support elastic tabstops, and I know I'm not the only one. [arstechnica.com]

Developers, developers, developers, developers? (2, Interesting)

tieTYT (989034) | more than 6 years ago | (#21997152)

As long as I've known that MS makes an IDE, I've always wondered why they charge for (some versions) of it. The majority of apps compiled on it get compiled to MS Windows binaries. People will need to buy Windows to use these apps. That means more money for MS as more people make useful/necessary apps. Where does MS benefit by charging for the development tools? It seems to me that there would be much bigger benefit to giving away the tools for free. Perhaps I'm greatly underestimating the chunk of change MS makes by selling their development tools. Is that it? Otherwise, please explain it to me.

Re:Developers, developers, developers, developers? (2, Informative)

Jellybob (597204) | more than 6 years ago | (#21997348)

Take a look at the Visual Studio Express range - it's not full featured, but they are given away for free. These days the only people paying for Visual Studio are people who want the Pro features, and software shops, who can usually afford to pay for the software that drives their business anyway.

Re:Developers, developers, developers, developers? (1)

thetroll123 (744259) | more than 6 years ago | (#21997872)

Or to put it another way, "because the market will bear it". Microsoft like money.

Re:Developers, developers, developers, developers? (1)

plisskin (979687) | more than 6 years ago | (#21999282)

Or someone who wants to write MFC apps. I don't think MFC is included in the 2005 or 2008 express editions. Although wxWidgets provides an open source MFCish alternative.

Re:Developers, developers, developers, developers? (0, Redundant)

JNighthawk (769575) | more than 6 years ago | (#21997974)

The same reason console manufacturers charge for dev kits: it costs money to make, so they need to recoup that money, and since they can make a profit at it, why not?

Re:Developers, developers, developers, developers? (1)

ericlondaits (32714) | more than 6 years ago | (#21997994)

I thought the same, until I read somewhere that the reason would be that it would drive some competitors (Borland was one, at the time I read this) out of business... and that wasn't good, because a wide choice of compilers and developing tools makes a platform better supported, which is good in the eyes of IT managers. That could also explain why MS eventually started giving VS Express away for free... since in the current dev tool landscape it'll hardly drive away any competitors (PHP, Python, GNU compilers, etc.)

Upgrades to MFC? what upgrades? (5, Interesting)

master_p (608214) | more than 6 years ago | (#21997274)

MFC - we are working on a huge update to MFC that should knock your socks off. I can't tell you too much right now, but this is closer than you might [think]

What do they mean?

Do they mean, perhaps, that widgets are now normal objects? no double-creation (first new Object, then object->CreateWindow).

Could they mean that all widgets are destroyed in the same way? no object->DestroyWindow for some widgets, delete object for some other widgets?

How about some serious memory management using shared pointers? no temp CBrush objects etc.

How about layout management? all serious widget toolkits have that. It's 2008, we should not have to position widgets manually.

What about the tab widget? in MFC, the tab widget is not a real widget: you have to manually hide and show controls upon tab click.

What about the model-view-controller pattern? this is 2008, should I still manually copy edited data from widgets to the data model of my application? most other toolkits support the MVC pattern. Dialog Data eXchange is a joke, of course.

How about the issue of message maps? Qt proves you don't need stinkin' message maps, which are hard to maintain, difficult to understand, and dangerous because casting is untyped and done through macros.

How about MIME type support?

These, and a lot more, are the issues that have driven developers away from MFC to Qt or WxWidgets. I have been maintaining a line of products based on MFC for the last 10 years, but this year I've decided I had enough: all the products are to be rewritten with Qt/WxWidgets. I will only approach MFC if it will approach Qt/WxWidgets quality.

Re:Upgrades to MFC? what upgrades? (1)

krelian (525362) | more than 6 years ago | (#21998930)

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2389517&SiteID=1 [microsoft.com]

    Office 2007 Ribbon Bar: Ribbon, Pearl, Quick Access Toolbar, Status Bar, etc.

                  Office 2003 and XP look: Office-style toolbars and menus, Outlook-style shortcut bar, print preview, live font picker, color picker, etc.

                  Internet Explorer look: Rebars and task panes.

                  Visual Studio look: sophisticated docking functionality, auto hide windows, property grids, MDI tabs, tab groups, etc.

                  Vista theme support: Dynamically switch between themes!

                  "On the fly" menus and toolbar customization: Users can customize the running application through live drag and drop of menu items and toolbar buttons.

                  Shell management classes: Use these classes to enumerate folders, drives and items, browse for folders and more.

                  + many additional controls

Re:Upgrades to MFC? what upgrades? (1)

Anonymous Brave Guy (457657) | more than 6 years ago | (#21999852)

I agree with many of your criticisms of MFC, but isn't it a bit of a joke to attack MFC for using message maps and macros if you're advocating Qt (completely with signals, slots, and not just macros but a whole preprocessor!) as an alternative?

Re:Upgrades to MFC? what upgrades? (1)

master_p (608214) | more than 6 years ago | (#22000680)

No, because Qt's additions to the language are invisible and harmless (just a few empty preprocessor #defines), and the MOC is invisible as well (it is invoked automatically if Q_OBJECT is added to a file). MFC's macros in message maps are dangerous.

Re:Upgrades to MFC? what upgrades? (1)

shutdown -p now (807394) | more than 6 years ago | (#22002670)

Your complains are not really about MFC, they are about WinAPI. MFC at its heart is a relatively thin wrapper around WinAPI, and most of its design problems come from this. In most cases, there is a one-to-one mapping between an MFC control and a Win32 control, and similarly MFC methods and Win32 functions. That's why there's no layout management, no proper tabs, no MVC etc.

How about some serious memory management using shared pointers? no temp CBrush objects etc
On a side note, you absolutely can use boost::shared_ptr to manage lifetime of MFC objects.

Microsoft Fails It (2, Informative)

wandazulu (265281) | more than 6 years ago | (#21998052)

(For me, anyway). I still use VC 6 for C++ work simply because it was the last example of an IDE (I'm just talking IDE) that had everything I wanted; it was clean but more importantly, *fast*. I skipped the initial .net releases because of the lack of an upgraded C++ compiler and eagerly installed VS2005 to discover that MS had turned VS into a bloated monster that was slow to open do *anything* (the performance of Intellisense greatly improved my knowledge of MFC because it was easier to memorize all the methods than wait for it to show them to me), as well as having some bizarre GUI choices (tabbed windows with the close button off to the far side of the app, instead of on the tab itself???, plus the sliding windows (yes, I can dock them, but for some reason they would sometimes "undock"). Basically it didn't "feel" right to me.

Plus they committed, in my opinion, the unforgivable sin of trying to push their _s* functions that they said were "safe" instead of ones like strncat, strncpy, etc. The first time I compiled some code in VS2005 I freaked...what are all these warnings? Then I discover it's Microsoft being "helpful" and I was annoyed. Then I realized they wanted to make my code entirely Windows-dependent (functions that start with _ are not standard) and I was enraged. What *really* enraged me was that you have to turn these stupid warnings off per project ...if there's a way to turn it off in the options dialog I have no idea where it is. What made me scream was that they word the warning in such a way as to think the *standard* calls the functions depreciated. Herb Sutter, you should be ashamed of yourself for letting MS get away with this.


I will give VS2008 a chance, but VS2005 with all its "standards compliant goodness" was not enough to sway me from VS6. The bloated IDE + improper warnings has utterly soured me on developing for windows; I don't want to do .net...I write server based C++ software where fast isn't fast enough. VS2005 was also not fast enough. Maybe I'll just bite the bullet and learn to write in Vim and compile at the command prompt.

Re:Microsoft Fails It (1)

bigstrat2003 (1058574) | more than 6 years ago | (#22000876)

...eagerly installed VS2005 to discover that MS had turned VS into a bloated monster that was slow to open do *anything* (the performance of Intellisense greatly improved my knowledge of MFC because it was easier to memorize all the methods than wait for it to show them to me)...
You mean MS turned VC++ into that, maybe. VS is not that, I use VC# 2005 all the time and it works great. I don't use VC++, so your complaints against it may be valid, but they don't apply to the whole studio.

But can it compile multicore? (0)

Anonymous Coward | more than 6 years ago | (#21998188)

Sure, they promised multicore compile in VS 2005. Now they promise it in 2008.

Why can I just not type "make -j8" like I can under MSYS and make my quad core system scream?

Oh Wow.. They're Still Making This? (0)

Anonymous Coward | more than 6 years ago | (#22001618)

I left Visual Studio when I found Eclipse, back when VS just went .NET 200X.

Did they finally manage to integrate with a version control system that didn't suck and/or cost a fortune?

TR1 is not in VS2008 (1)

shutdown -p now (807394) | more than 6 years ago | (#22002590)

TR1 is not in VS2008. It will be available as a "Feature Pack" at a later date ("first half of 2008"); only a beta is available [msdn.com] at the moment. Also, see the FAQ [msdn.com] on the beta for more details on the TR1 implementation, such as a list of what's not supported and why.
Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Create a Slashdot Account

Loading...