Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
ProfoundDisputes

C++ vs C# Does it matter?

Recommended Posts

Posted · Original PosterOP

OK...well...I hate to start another one of these thread but here it goes:

I am ready to get back into programming. I've always enjoyed programing so I want to make it a hobby and get good at it, in hopes of future jobs, usefulness and etc.

I have done a lot of basic applications for Visual Basic (Class in High School and College paired with some side projects) . I have done Java (Basic Class), C# (simple robotics class), C++ (Took a class in High School and two classes in College).
So I have a pretty good background in programming (nothing too advanced).

My question arises from when I wanted to get into Visual C++, I have only done GUI programming in Visual Basic. I hear that everything is in C++, however, so I wanted to learn to make Desktop applications in C++.
When I started to do this in Visual Studio 2013 I read of people saying microsoft prefers that you do GUI programs in either Visual Basic or C#, for performance or feature purposes. 

So is it advisable to learn Visual C# rather than C++. What would be the disadvantages of starting with Visual C++ first?  Should I stick with VB? DOES IT EVEN MATTER?

I want to just make applications for fun that can meet some basic criteria:

 

-Be able to communicate over networks (internet, home networks and etc.)
-Be able to make changes to system files like context menus and right clicks
-Manipulate files and folders (thinking about making a auto file/"folder structure" organizing program)
-Maybe make some apps windows store, android, ios

What would be best overall programing language to know? DOES IT EVEN MATTER? In hopes that if I come up with a really useful program concept I can go ahead with it. 

Link to post
Share on other sites

I've found c# is must faster and earlier to lean/program in, but c++ is definitely more powerful. C# will meet all your requirements and I'd recommended you lean that, you can eventually lean c++ if you want (the syntax of c# and C++ are pretty similar). (Edited for spelling)

Link to post
Share on other sites

 do NOT try to learn to make windows desktop programs in c++.

 

you will have to deal with the win32 api, one of the hardest things in programming.

 

you wouldn't be asking for advice here if you were ready for that beast.

Link to post
Share on other sites

C++ is useful for applications that need to do tons of calculations or applications that are highly parallel. Its often not worth the trouble of programming in unless you need performance. 


Work: Mid 2015 15 inch Retina Macbook Pro - AMD Radeon RX370m -  16gb ram - Core i7 - 1 TB PCIESSD

Play: EVGA Hadron Air - i5 6600K - Noctua NH-C14 - Gigabyte GH-H170N - 16 GB G.Skill Ripjaw - Samsung 850 256gb - Nvida GTX 1070 Founders Edition

Screen: LG UM3495

Headphones: Ultimate Ears custom 7 pro - Steelseries Wireless H - Shure se215LTD 

Link to post
Share on other sites

I've found c# is must faster and earlier to lean/program in, but c++ is definately more powerful. C# will meet all your requirments and i'd recemod you lean that, you can eventually lean c++ if you want (the syntax of c# and C++ are pretty similar).

 

I am guessing your 'R' key does not work properly when you type certain words?


Learning

Link to post
Share on other sites

C# is something like Microsoft's Java while C++ is something like object oriented C. Now, you can do all that you need with C# and it would be easier especially for GUI but C++ gives you more freedom by which I mean more control over your application if you need that kind of detail but because of that it is more complicated.

So, for the stuff that you will be doing my advice is to go with C# as it has all that you need. 

Link to post
Share on other sites

Ok a really basic overview of where things are at right now in the industry:

 

C# is used a great deal as is native C++ (Visual C++, otherwise known as Managed C++ is generally crap). C# is generally for desktop/web applications. C++ can be and especially now we have all this M$ Windows store platform stuff going on but then again that is Managed or "Visual" C++ and therefore it is somewhat niche, i.e. in the scope of the Windows platforms. Native C++ is widespread probably more so than C# due to it's true cross platform nature and is therefore the language of choice when developing things at the lower level.

 

C# is a higher level language than C++. It is NOT native, it uses the CLR therefore it is slower. Think of the CLR as being somewhat similar to the JVM. C# also has allot of "syntactic sugar", i.e. you can be more eloquent than you can in C++ - this can make it easier to make performance mistakes! A reason I suggest people start with a lower level language first, i.e. C++.

 

Java is somewhat at the same level as C# but has slightly more of a use in the web/mobile space. Also don't discount the value of languages such as JavaScript and Python these have real business value and usefulness as well.

 

As for Visual Basic, don't bother, don't touch it with a bargepole because it is DEAD and if it isn't it should be because it's considered crap.

 

My advise is learn the Agile/Scrum methodology, Test Driven Development and your Design Patterns. You can find some truly excellent courses over at pluralsight for these.

 

For the uses you list; C#, C++, Java and Objective C. Networking is subjective - you need an understanding of the protocols and communication stacks.

.


The single biggest problem in communication is the illusion that it has taken place.

Link to post
Share on other sites

Well I meant in difficulty that is.

There is no reason it has to be. Don't feel intimidated by 'low level'.

Pluralsight has some great courses on both.


The single biggest problem in communication is the illusion that it has taken place.

Link to post
Share on other sites

 

C# is a higher level language than C++. It is NOT native, it uses the CLR therefore it is slower. Think of the CLR as being somewhat similar to the JVM. C# also has allot of "syntactic sugar", i.e. you can be more eloquent than you can in C++ - this can make it easier to make performance mistakes! A reason I suggest people start with a lower level language first, i.e. C++.

.

 

 

most of your post is correct, but this part is dead wrong.

 

the single worst performance mistake a beginner can make is to write their own sorting algorithm rather then using the standard library

 

the second worst performance issue is causing memory leaks.

 

 

it's effectively impossible to cause a memory leak in c#.  in c++, even the most experienced c++ devs mess up a pointer or two.

 

a beginner simply won't know enough to take advantage of c++'s lowlevel features and will cause more damage than good if they try to.

Link to post
Share on other sites

most of your post is correct, but this part is dead wrong.

the single worst performance mistake a beginner can make is to write their own sorting algorithm rather then using the standard library

the second worst performance issue is causing memory leaks.

it's effectively impossible to cause a memory leak in c#. in c++, even the most experienced c++ devs mess up a pointer or two.

a beginner simply won't know enough to take advantage of c++'s lowlevel features and will cause more damage than good if they try to.

You're correct for putting in more detail. However as I said 'a very basic overview'.

To go on to state that I am 'dead wrong' however is nieve and a little bit on the conceited side.

I could say you are dead wrong for stating it would be impractical for a beginner to start with C++. That's just my opinion however and not a fact.

We could debate this further. But I would imagine that the OP would find it more useful to research the contrast for themselves. Rather than watch opinions fly back and forth like so.


The single biggest problem in communication is the illusion that it has taken place.

Link to post
Share on other sites

In any event; 'DOES IT EVEN MATTER?' Not at all.


The single biggest problem in communication is the illusion that it has taken place.

Link to post
Share on other sites

Just pick the language that fits your needs. There is no such thing as the best language. All languages have pros and cons. If you want to develop software at a fast rate, use C#. If you really need performance use C++. Looking at what you want to do, I'd recommend C#.


- Max Oomen

Link to post
Share on other sites

To make it short and easy:

 

  • C++ is more advanced then C#
  • Its 2014, learning one programming is not enough now. As C++ is more advanced it also means learning C# is easy. If a C# user went to C++ it would find it more difficult
  • Game devolpement use C++
  • Java and C++ is a great mix

If you want me to give you a more depth information just reply. Youtube Buckeys C++. bests C++ tut ;)

Link to post
Share on other sites

To make it short and easy:

 

  • C++ is more advanced then C#
  • Its 2014, learning one programming is not enough now. As C++ is more advanced it also means learning C# is easy. If a C# user went to C++ it would find it more difficult
  • Game devolpement use C++
  • Java and C++ is a great mix

If you want me to give you a more depth information just reply. Youtube Buckeys C++. bests C++ tut ;)

 

Agreed that knowing just one language is far from being considered as adequate these days.


The single biggest problem in communication is the illusion that it has taken place.

Link to post
Share on other sites

i personally will recommend C# over C++. C++ i found was difficult at times even doing basic things in high school intro programming class. i picked up C# after that and then went on to college where they teach java. C# -> Java super easy. Java -> C# super easy again. java is also a hot language, so learning them both isn't a bad idea. there are some aspects of C# i like better(Threads OMG so nice) but java runs on more platforms without using misc software layers that may or may not work(talking mono here)

Link to post
Share on other sites

...there are some aspects of C# i like better(Threads OMG so nice)...

 

TPL > Threads.


The single biggest problem in communication is the illusion that it has taken place.

Link to post
Share on other sites

 do NOT try to learn to make windows desktop programs in c++.

 

you will have to deal with the win32 api, one of the hardest things in programming.

 

you wouldn't be asking for advice here if you were ready for that beast.

Not necessarily true... I used Qt to make a C++ GUI App for Windows and it wasn't that bad...

Could use GTK too...

Link to post
Share on other sites

Not necessarily true... I used Qt to make a C++ GUI App for Windows and it wasn't that bad...

Could use GTK too...

Qt is nice, did my dissertation using that.


The single biggest problem in communication is the illusion that it has taken place.

Link to post
Share on other sites

When I was first learning to program I started with C++ (well just after Visual Basic xD) which I is harder to learn than C#. C++ is a more powerful. I think the rest of the peoples did a great job summing it up! 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×