Reputation: 1265
I am trying to decide if I should put an effort towards learning C++ or C#
Right now my only background is with PHP so it doesn't matter to much which way I go. I really liked how a lot of my favorite programs are built with C++ that just shows me how powerful it is, not to mention PHP itself is made of C.
I am hoping to build desktop applications. From my research with C++ I would have to find a GUI library to build the desktop apps and with C# Visual Studio pretty much takes care of it for you.
Today I saw the Microsoft has a VisualC++ that uses .NET, does this mean that .NET is used as a GUI for it or do you still need a GUI library when going that route?
Please help me understand a little better as I mentioned my background is PHP and web design so this is a whole new ball park and rather overwhelming at the moment.
Any advice about the subject would be appreciated as well, thank you
Upvotes: 3
Views: 5678
Reputation: 4920
The question is very subjective but I will answer based on your level as a beginner.
Go C#, it is easier and you will find plenty of resources and help. It is very hard to find a good beginner book or tutorial in C++.
There are very advanced topics in C#. And you can easily start a career.
Desktop application are different from web, but you find plenty of tutorials and videos. Just google it.
Upvotes: 2
Reputation:
(All subjective, naturally)
The Microsoft .Net stack (C#, IIS, Sql Server etc.) is very useful. You can use it to create Windows apps, websites, windows services and web services. AFAIK only Java has an equivalent level of multi-purposing so readily built in.
C++ is great but has its drawbacks. With .Net and C# you sit on top of a runtime that for the most part won't harm performance (unless you're writing some ridiculously high-load app), handles memory management for you, includes error trapping and sandboxing. Your apps have the capacity, out of the box, to be 'better citizens' than a C++ app. [Again, nothing in C++ stops you doing these things but there aren't so many factors taken care of for you].
C# is also a very common business language. Most businesses use developers to solve business problems, and C++ isn't suitable for a lot of that. Development is complicated and takes too long. .Net better lends itself to more rapid development lifecycles because the underlying framework handles so much of the donkey-work for you.
C# - more business jobs, generally a less heavy duty programming life (yayy! No manual garbage collection!) Also applicable to web and windows. C++ - more performant, more powerful (since there's no runtime limiting what you can do - wanna crash the OS? Go ahead...) but you'll have to do most things yourself. Also no web (AFAIK).
Visual C++ is Microsoft's IDE targetting C++ on Windows. A nice user interface for you to write your software. You can write Windows GUI software without it though and you can use Visual C++ to write console apps.
Hope that might help :)
Upvotes: 5
Reputation: 917
If you already understand pointers and are willing to invest at least 3 years to become competent, look at C++.
Otherwise, learn C#.
I've never had to used Managed C++ for anything and the few things I've read about it, very few people use it.
Upvotes: 0