MS Visual C++ (.NET) vs C++

sparka

Member
Oct 3, 2005
89
0
0
A few quick questions:

Do you guys know the difference between Visual C++ (.NET) and just regular C++?
What about Microsoft Visual Studio .net as well?
Also, which one do you think would be better to learn?

Thanks!!
 

Deeko

Lifer
Jun 16, 2000
30,213
11
81
Visual Studio is an IDE that you program c++ in. You can still use all the standard C++ stuff in it. The difference is you can use calls to the .NET framework, which are standard among all .NET languages (C++/C#/J#/VB) and are not regular C++.

Learn regular C++ first. After you know how to program, it can't hurt to learn .NET, but most people who use .NET use C# or VB, not C++.
 

NGC_604

Senior member
Apr 9, 2003
707
1
76
Yeah as much as I like using .NET stuff, if you're using c++ I wouldn't use Visual Studio. I always had a lot of trouble with it for whatever reason. If you're going to learn C++, better to learn regular old C++. That way you can program in it regardless of the platform.
 

sparka

Member
Oct 3, 2005
89
0
0
Sorry guys, but im a programming n00b so bear with me...
I know that my starting language should be C oriented, but i'm not sure which one

Why wouldn't I want to start out in Visual c++ 2005 if it has extra functionality just added on?

I've never heard of C# before. Whats C# have that C++ doesn't? Whats wrong with using C++ with .NET rather than C#?

Thanks for your help!!
 

Deeko

Lifer
Jun 16, 2000
30,213
11
81
Standard, ANSI C++ is sort of the "base" that you should learn. Its more portable - if some day you're in a Unix environment, regular C++ (should) still work. The extra .NET stuff only works in Microsoft's compiler and that code only works on Windows. Its just better to learn the real thing first. You don't learn calculus by the teacher telling you how to plug the equation into Maple, you learn how to do the integration yourself, know what I mean?

C# is syntactically similar to C++, but its more of a "pure" object oriented language, whereas C++ is at heart an imperative language (C) with object oriented functionality. Think of C# as the bastard child of C++ and Java.
 

beggerking

Golden Member
Jan 15, 2006
1,703
0
0
Originally posted by: Deeko
Standard, ANSI C++ is sort of the "base" that you should learn. Its more portable - if some day you're in a Unix environment, regular C++ (should) still work. The extra .NET stuff only works in Microsoft's compiler and that code only works on Windows. Its just better to learn the real thing first. You don't learn calculus by the teacher telling you how to plug the equation into Maple, you learn how to do the integration yourself, know what I mean?

C# is syntactically similar to C++, but its more of a "pure" object oriented language, whereas C++ is at heart an imperative language (C) with object oriented functionality. Think of C# as the bastard child of C++ and Java.

incorrect... .net converts your code to metacode which will allow you to built assemblies that can be used on multiple platforms without to worry about types, etc

C++ supports multiple inheritance and C# doesn't .. but syntaxically its basically the same.

sparka, you should learn visual c++ 2005 on .net because its free and is the same if not more powerful than the imperative version of C++. an early handling on OOPS would help you to become a better programmer.
 

EagleKeeper

Discussion Club Moderator<br>Elite Member
Staff member
Oct 30, 2000
42,589
5
0
Be careful learning applications when using the VS & .NET

Many examples & tutorials use specific samples that are designed for the Windows MFC/.NET platforms.
Both are not transferable knowledge to other platforms.
 

Deeko

Lifer
Jun 16, 2000
30,213
11
81
I'm aware that .NET is technically portable, but its not as easy as it sounds, and the CODE itself is not as portable as standard C++.

You should defintely, definitely learn regular C++ before .NET C++. You can use the VS.NET IDE, that doesn't make that big of a difference, but you should do it using standard code, not .NET code.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
I know that my starting language should be C oriented, but i'm not sure which one

Why? What's so bad about starting with another language?

The extra .NET stuff only works in Microsoft's compiler and that code only works on Windows.

Not true, Mono compiles and runs .NET bytecode just fine as long as all of the appropriate assemblies are available.

I've never heard of C# before. Whats C# have that C++ doesn't? Whats wrong with using C++ with .NET rather than C#?

C# is MS' answer to Java.

sparka, you should learn visual c++ 2005 on .net because its free and is the same if not more powerful than the imperative version of C++.

And it can also make you dependent on MS' tools and libraries. Learning with the standard tools first is better because after you have a grasp of that you can tack on additional libraries from vendors without much problem. But if you start with the proprietary vendor libraries you'll have a much harder time figuring out what's standard, what's not and how to use replace code for those vendor's libraries with that of another vendor.
 

beggerking

Golden Member
Jan 15, 2006
1,703
0
0
.net standard libraries is the same as the standard C++ library..additional libraries includes securities libraries and service component libraries which don't exist in C++ unless obtained from 3rd party..

But thats not the reason I prefer .net.. visual studio IDE is simply the easiest (IMHO) I've used.. though that is only my opinion.. C is simply an incredibly elegant/powerful language anyway you see it.
 

mAdMaLuDaWg

Platinum Member
Feb 15, 2003
2,437
1
0
Another vote to start with C++ instead of C#.
C# is Windows Only (yes, there is mono but its not truely cross-platform as of yet and won't fully be without official support from MS). So when you learn C#, you are not going to be able to use it on any other platform.

C++ is IMO the best choice of a language to get started with programming. Of course its also true that it doesn't matter what language you program in, its the 'logic' that you acquire when you learn how to program thats important. Once you get a good grip on that logic, you'll be able to easily code in another language but the fact of the matter is that at a purely academic level, C++ is the most popular choice so it'll be that much more easier to obtain material/help.

Don't get me wrong, C# is a very powerful and slick language.. its what I use at work and my favorite language right now but as a beginners language, I'd definitely stick with C++. I couldn't even imagine myself beginning to learn how to program with C#.
 

mAdMaLuDaWg

Platinum Member
Feb 15, 2003
2,437
1
0
Originally posted by: beggerking
Originally posted by: Deeko
Standard, ANSI C++ is sort of the "base" that you should learn. Its more portable - if some day you're in a Unix environment, regular C++ (should) still work. The extra .NET stuff only works in Microsoft's compiler and that code only works on Windows. Its just better to learn the real thing first. You don't learn calculus by the teacher telling you how to plug the equation into Maple, you learn how to do the integration yourself, know what I mean?

C# is syntactically similar to C++, but its more of a "pure" object oriented language, whereas C++ is at heart an imperative language (C) with object oriented functionality. Think of C# as the bastard child of C++ and Java.

incorrect... .net converts your code to metacode which will allow you to built assemblies that can be used on multiple platforms without to worry about types, etc

C++ supports multiple inheritance and C# doesn't .. but syntaxically its basically the same.

sparka, you should learn visual c++ 2005 on .net because its free and is the same if not more powerful than the imperative version of C++. an early handling on OOPS would help you to become a better programmer.

Wrong C# converts your code to Microsoft's propietary Intermediate Language: MSIL which is based on the Common Language Specification but that doesn't mean it adhers to any sort of open standard out of the box. It can't be directly used on multiple platforms, you need a third party library to do so. Although the specifications for the language is open, I don't have much faith that the project will ever be able to fully catch up with the changes in .NET (especially with future revisions of .NET & vista) unless MS officially throws their weight behind the project.. which I hope they will do. Even then its going to be some time before it fully penetrates into commercial level enterprise/open source apps and the academic world.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
.net standard libraries is the same as the standard C++ library..additional libraries includes securities libraries and service component libraries which don't exist in C++ unless obtained from 3rd party..

Yes, but that's the point. If you get a bundle of the normal C++ stuff plus the MS added stuff you won't know what's standard and what's not until you try to use something that doesn't exist on another platform. Obviously this could happen starting with another platform too, but it's less likely since MS bundles a lot of crap with VS.
 

mAdMaLuDaWg

Platinum Member
Feb 15, 2003
2,437
1
0
Originally posted by: Nothinman
.net standard libraries is the same as the standard C++ library..additional libraries includes securities libraries and service component libraries which don't exist in C++ unless obtained from 3rd party..

Yes, but that's the point. If you get a bundle of the normal C++ stuff plus the MS added stuff you won't know what's standard and what's not until you try to use something that doesn't exist on another platform. Obviously this could happen starting with another platform too, but it's less likely since MS bundles a lot of crap with VS.

Agreed. Use a freeware C++ compiler like Bloodshed's Dev C++
 

sparka

Member
Oct 3, 2005
89
0
0
All right guys, thank you so much for the replies. I now see why it's better to start out on C++ rather than C# or .NET.

Now that I've decided which language to start on, now I've got the task of learning it. I was thinking of some books. Any recommendations?

Thanks!!
 

beggerking

Golden Member
Jan 15, 2006
1,703
0
0
Originally posted by: mAdMaLuDaWg

Wrong C# converts your code to Microsoft's propietary Intermediate Language: MSIL which is based on the Common Language Specification but that doesn't mean it adhers to any sort of open standard out of the box. It can't be directly used on multiple platforms, you need a third party library to do so. Although the specifications for the language is open, I don't have much faith that the project will ever be able to fully catch up with the changes in .NET (especially with future revisions of .NET & vista) unless MS officially throws their weight behind the project.. which I hope they will do. Even then its going to be some time before it fully penetrates into commercial level enterprise/open source apps and the academic world.

MSIL runs on .net platform which IS a cross platform specification just as Java bytecode. Every version of .net is compatible with prior version..

to sparka:

I always start with a dummy book...
 

mAdMaLuDaWg

Platinum Member
Feb 15, 2003
2,437
1
0
Originally posted by: beggerking
Originally posted by: mAdMaLuDaWg

Wrong C# converts your code to Microsoft's propietary Intermediate Language: MSIL which is based on the Common Language Specification but that doesn't mean it adhers to any sort of open standard out of the box. It can't be directly used on multiple platforms, you need a third party library to do so. Although the specifications for the language is open, I don't have much faith that the project will ever be able to fully catch up with the changes in .NET (especially with future revisions of .NET & vista) unless MS officially throws their weight behind the project.. which I hope they will do. Even then its going to be some time before it fully penetrates into commercial level enterprise/open source apps and the academic world.

MSIL runs on .net platform which IS a cross platform specification just as Java bytecode. Every version of .net is compatible with prior version..

to sparka:

I always start with a dummy book...


Not sure if you mistyped but every version of .NET is not compatible with the prior version. Every prior version of .NET is (for the most part) compatible with later versions (so far).

 

mAdMaLuDaWg

Platinum Member
Feb 15, 2003
2,437
1
0
Originally posted by: beggerking
lol.. my bad.. i meant backward compatible..

Nopes, its 'forward' compatible

Backward would imply that .NET 2.0 is compatible with .NET 1.1/1.0 which it fully isn't
 

beggerking

Golden Member
Jan 15, 2006
1,703
0
0
lol. we have a misunderstanding..

.Net 2.0 JIT is backward compatible with .Net 1.0/1.1 code ( since it runs older code)
or
.Net 1.0/1.1 code is forward compatible with .Net 2.0 JIT. (since it runs on future .Net)

 

mAdMaLuDaWg

Platinum Member
Feb 15, 2003
2,437
1
0
Originally posted by: beggerking
lol. we have a misunderstanding..

.Net 2.0 JIT is backward compatible with .Net 1.0/1.1 code ( since it runs older code)
or
.Net 1.0/1.1 code is forward compatible with .Net 2.0 JIT. (since it runs on future .Net)


Hmm.. I never thought of it that way. Are you sure the CLR hasn't been upgraded with successive versions of .NET? For example, .NET 1.0/1.1 didn't have inbuilt support for generics while 2.0 does...I'd assume that would mean that the Common Type System would have been upgraded (or maybe not)...

logically, I'd assume that the MSIL is fully backward compatible but I'm wondering whether it is actually true...
 

kamper

Diamond Member
Mar 18, 2003
5,513
0
0
Originally posted by: mAdMaLuDaWg
C# is Windows Only (yes, there is mono but its not truely cross-platform as of yet and won't fully be without official support from MS). So when you learn C#, you are not going to be able to use it on any other platform.
There are lots of apps popping up in the linux community written entirely in c#. I even heard tell that mono implemented parts of asp.net 2.0 from spec before microsoft. I have my doubts about whether or not mono in general will ever be certifiably compatible with microsoft's .net but I bet they'll get pretty close and the skills will most definitely be transferrable between platforms.

I think learning something lower-level like c/c++ isn't too bad of an idea to start on because it'll force you to see some of the nasty stuff like pointers. Moving up to java is nice then, and learning c# after java is kinda cool because it gives you all kinds of insights into how a language is created. Basically c# is java with a bunch of syntactic sugar which generally encourages good programming habits, if a bit verbose. But almost all of it could be implemented in java with compiler tricks (or a preprocessor) without any vm modifications.
 

kamper

Diamond Member
Mar 18, 2003
5,513
0
0
In the c++ .net vs not debate, I remember hearing a while ago that c++.net ran unmanaged. Or maybe I understood wrong, all I remember is that James Gosling got all in a flap about it Can someone confirm?
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
I remember hearing a while ago that c++.net ran unmanaged. Or maybe I understood wrong, all I remember is that James Gosling got all in a flap about it Can someone confirm?

I believe you can do either, infact I think you can mix managed and unmanaged code if you really want.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |