VC++ 2005 vs 2008 / 2010

Started by
33 comments, last by Ravuya 14 years, 2 months ago
Quote:Original post by Promit
I've been testing a VS add-in called Refactor! for C++ lately. Not much to report yet, but it does seem to handle basic tasks at least.

I use Refactor! Pro, plus Visual Assist.

They have a little overlap that needs to be coordinated, such as turning of some syntax hilighting and intellisense stuff in Refactor! and turning off some autocomplete values in VAX.

Combined there are a lot of awesome little things. There are great keyboard shortcuts, copy/paste automatic expansions, droppable markers, auto-expansion for switch statements to cover all types, and more.

Individually they are both good. Together they are like Peanut Butter and Chocolate, bringing joy to millions.
Advertisement
Well it sounds like you don't like C++. I'd recommend a different language. C# is a rather nice language that has lots of the IDE feature support you want and is quite capable of game development. Take a look at XNA or SlimDX for some options around that.
Just for the record: Visual Studio is not a language. Visual C++ is not a language. Eclipse and Netbeans are not languages. You should stop referring to them as such, especially in the case of Visual Studio which has support for numerous languages, including C# and Visual Basic.
Mike Popoloski | Journal | SlimDX
Quote:- PC developers hardly use VC++ because of its threading, networking, I/O, garbage collection etc abilities.


You've got everything mixed up.

VC++ *is not* a language. VC++ doesn't exist. There is Microsoft Visual Studio, which is an IDE centric collection of development tools. It comes with C#, C, C++ and several more compilers along with .Net framework. There is no such thing as VC++.

Visual Studio has nothing to do with threading, networking, I/O or garbage collection.

Quote:If you want access to Hardware APIs using other languages, you're going to need wrap C++ code in that language e.g. Java OpenGL.

No. OpenGL is C.

Java contains OpenGL bindings, which use JNI (a C API) to expose that functionality to JVM.

And it is not possible to access hardware APIs through C++ either, at least not on most OSes. Under Windows, it is accessed via HAL, which represents several layers of abstractions, commonly exposed via either OpenGL or DirectX libraries.

WinAPI is also C-based due to its legacy. There are several C++-like wrappers on top of it, but it is usable exclusively via C interface.

Quote:I would assume you both are solely VC++ developers. I have noticed that people who use particular technologies won't accept that their they faults. I worked with a &#106avascript programmer who argued with me that &#106avascript is the most import language at the minute. What was he talking about! Its a complete crap heap for many reasons.<!--QUOTE--></td></tr></table></BLOCKQUOTE><!--/QUOTE--><!--ENDQUOTE--><br>I would be careful of judging others while using "VC++" to back your claims. There is also no ANSI C++.<br><br>The opinions expressed here are those of ctrl-space coder. Type and type until it builds, then hack until it eventually resembles something via sheer trial and error.<br><br>This type of &#115;tyle doesn't work with most beyond Java. It doesn't work in Java either, it's just more tolerant of that.
Quote:
C++ would requires that I write more code to create a class than in Java or C# therefore it is slower to develop in.

That isn't a universal truth, though. While it's true that often C++ involves more developer time, there are a number of factors involved. The verbosity of the source code is a superficial metric in comparison to those other factors (breadth of the standard library, the types and depth of features available in the language, the paradigms the language is designed to admit, et cetera).

Quote:
No one with any sense would develop in C++ if they could avoid it.

That's your opinion as well. Try not to conflate opinion and fact. One could make an equally inflammatory assertion about Java.

Quote:
I don't know any other business apart from graphics orientated ones where C++ would be used. Maybe only systems with C++ legacy systems.

There are plenty. Medical and military simulations (even the aspects not dealing directly with graphics) for example. Databases. Business software (to an extent). Lots of applications you probably use on a daily basis (paint programs, word processors, et cetera) are completely or partially written using C++. Your view of the domain seems rather narrow.

Quote:
<quote>C++ is used outside of games often enough</quote>
I said for games.
<quote>other languages certainly are as well</quote>
Can you name me big commercial Windows games which don't use VC++ as their main language? No Flash games.

I know you said for games, that's why that point was ancillary. But I'm not going to answer your question if you're going to place arbitrary restrictions on it; clearly you've just provided at least one answer for yourself.

Quote:
Name the other reasons? I bet there aren't that many.
- Console developers have to write their games in C++, what else are they going to use?
- PC developers hardly use VC++ because of its threading, networking, I/O, garbage collection etc abilities. If I wasn't interested in writing code that I can port to other systems I'd probably investigate using C#.

Console developers don't have to write their games in C++. They typically choose to, because that's the toolchain provided to them by the vendors. But they don't have to. One of the Crash Bandicoot games was written, for example, in Scheme (or Lisp or something similar).

PC developers use VC++ quite often in fact, especially those only developing for the PC. VC++ is the IDE, however, which itself has no features related to threading, networking, I/O or garbage collection. I think you meant C++, in which case you're still incorrect except with respect to file IO. C++ (the current standard) has no concept of a "thread" or "network" or anything related, and certainly has nothing resembling garbage collection.

There's a difference between the IDE and language, and you seem to have them mixed up.

Other reasons beyond those you identified that C++ is commonly used include developer knowledge and the large body of existing code and tools that support them in using that language. The benefit of the features offered by other languages and other tools for those other languages tends not to outweigh the disadvantage in cost and time to retrain and port for larger studios that have been around for a while.

Quote:
If you want access to Hardware APIs using other languages, you're going to need wrap C++ code in that language e.g. Java OpenGL.

Not necessarily. It depends on the API, though. Note that when you do need to do such wrapping, as with OpenGL, you generally use C since C++ has no standard ABI.

Quote:
I agree, its bloated, overly complicated, its slow to develop with.

I somewhat disagree with "bloated," but certainly agree on "overcomplicated." The last point is again, too broad to be a comfortable generalization.

Quote:
I would assume you both are solely VC++ developers. I have noticed that people who use particular technologies won't accept that their they faults. I worked with a &#106avascript programmer who argued with me that &#106avascript is the most import language at the minute. What was he talking about! Its a complete crap heap for many reasons.<br><!--QUOTE--></td></tr></table></BLOCKQUOTE><!--/QUOTE--><!--ENDQUOTE--><br>You would assume incorrectly. I can't speak for whoever else you were referring to, but I use plenty of other languages (C#, Python, Lua, C++/CLI) in addition to C++ and in fact I almost never do any C++ development any longer.<br><br>I think you're demonstrating the very same narrow-minded hubris you're accusing others of having, and it's getting in the way of viable discussion. So please, leave your ego at the door.<br><br><!--QUOTE--><BLOCKQUOTE><span class="smallfont">Quote:</span><table border=0 cellpadding=4 cellspacing=0 width="95%"><tr><td class=quote><!--/QUOTE--><!--STARTQUOTE--><br>Bottom line - C++ is slow to produce anything with, VC++ doesn't do much to alleviate the situation.<br><!--QUOTE--></td></tr></table></BLOCKQUOTE><!--/QUOTE--><!--ENDQUOTE--><br>Absolutes are rarely reasonable.
Hey NickGravelyn,

I don't think its great, I don't dislike it though. I was trying to find out if more recent versions of VC++ provided more features to develop with.


Hi Mike.Popoloski,

I don't think I refered to Visual Studio as a language, its obvious that its not. I know that it contains several languages, I used to work for Micosoft. How would you like me to describe VC++. Would Win32 C++ suffice?
Reject the basic asumption of civialisation especially the importance of material possessions
Quote:Original post by Cacks
Hi iMalc,

Quote:Don't make such claims as if they were fact

C++ would requires that I write more code to create a class than in Java or C# therefore it is slower to develop in.


Are you sure? Write a class in both Java and C++ with the following simple requirement:

1) A method called find() which takes as input a string, which represents some key. If the key is found in an internal map, the function should return true as well as the value. If the key is not found, the function returns false. here's the code in C++

class foo{   std::map<std::string,int> map_;public:   bool find(const std::string& key, int& output)   {      std::map<std::string,int>::iterator it = map_.find(key);      if (it == map_.end()) return false;      else { output = it->second; return true; }   }};


Write that same class in Java with less code.

The fact that you often end up writing more code in Java than in C++ just shows that perhaps you don't aren't as familiar as you could be with all of the C++ libraries available to you. The only reason people often "write less code" with Java is because the standard library does lots of stuff for you.

Even still, the fact that using it makes you want to beat your head into a wall at times means that for some people, it's far less productive than C++. I can even debug native code faster than I can debug Java, just because of the power of the tools available.


Here's one reason why I hate Java: http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html

There's plenty of others though. The fact that you can't return multiple values (i.e. by reference/pointer in C++, using ref or out keyword in C#, etc) is absolutely infuriating. Lack of unsigned types is just as infuriating. Not trying to turn this into a language flame war, but just because you're more productive in Java doesn't mean everyone else. Plenty of people are highly proficient in C++ and can get the job done in equal or less time as you can in Java.
Quote:Original post by Mike Popoloski
Mike Popoloski | Journal | SlimDX

Quote:Original post by Promit
SlimDX | SlimTune

Quote:Original post by jpetrie
Josh Petrie | Scientific Ninja | Twitter | SlimDX: October is the new August.

Quote:Original post by Washu
In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.
ScapeCode - Blog | SlimDX


Hmmm, SlimDX... Wonder what that is... [grin]

Also, I'm going to call you out on the Microsoft front. You may have possibly worked for them a long time ago, I doubt it though, but your knowledge is way out of date if you think Visual Studio is written in Win32 C++ (whatever that is, and even 2003 had managed components in it).

In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.

Quote:
I don't think I refered to Visual Studio as a language, its obvious that its not. I know that it contains several languages, I used to work for Micosoft. How would you like me to describe VC++. Would Win32 C++ suffice?

You did, on a number of occasions. C++ is "C++" and nothing else.

"VC++" is typically understood to mean "Visual C++" which is typically understood to be shorthand for the Microsoft product "Visual C++ Express" which was what some versions of the Visual Studio Express Edition SKU were called. Long story short, VC++ refers to the IDE, not the language.

"Win32 C++" is even worse, because it's meaningless. "Win32" is typically understood to mean the "Win32 API," the C API used to interact with the operating system on modern Windows installations. C++ has nothing to do with that.
Quote:Original post by Washu

Also, I'm going to call you out on the Microsoft front. You may have possibly worked for them a long time ago, I doubt it though, but your knowledge is way out of date if you think Visual Studio is written in Win32 C++ (even 2003 had managed components in it).



I think maybe he's just failing to distinguish between the core compiler and everything else.

This topic is closed to new replies.

Advertisement