They said that C# is better and easier than C++. They also said that I should stop coding in C++ and go to C# or java instead. I know how to code in C++ and java but never tried coding using C#. I love C++ over all of them. Are they right or wrong?
They said that C# is better and easier than C++. They also said that I should stop coding in C++ and go to C# or java instead. I know how to code in C++ and java but never tried coding using C#. I love C++ over all of them. Are they right or wrong?
C++ and C# and completely different and almost incomparible. C# is much higher level, same as Java. Because of this they are both somewhat easier to use than C++, but easier doesn't always equal better.
That C# is easier and better than C++ is bogus. Same applies to Java.
C++ offers a lot of tools to help development and in the coming standard, even more so, making it easy to develop in C++ as well as very flexible and powerful. And it's also faster than both Java and C#.
What C++ mostly lacks is a standardized library of functionality aka dotNet and a graphical framework.
So that basically means it's like comparing apples and tomatoes. Use what you like.
Yeah, java was so easy. When I try to make a program in Java, everything was so easy. You just go on their API and look for the class that fits on what you need then you're done. But I just dumped it and continue studying C++.
Oh yes, another thing is that C++ is classed as native, and is mostly backwards compatible with C. Therefore, a lot of stuff, API and such is actually written for C and not C++.
This makes it a lot more difficult to use these things because C is a low-level language. Another flaw that adds negative points to the use of C++ in the real world, though it isn't really the language's fault.
Well those people will get some sense slapped back into them when they realize to get a job these days you usually need to know C++, and if you are applying for C# they ususally want ~10 years experience (which is ridiculous).
Besides the honest truth is that if you know C++ very well, transitioning to C# is quite easy.
learn both. and a dynamic language like python or ruby.
Depends on what you're writing, doesn't it?
That's been the diametric opposite of my experience; most of the listings I've seen want C# or Java.
Anyhow, to the original poster, they're different tools for different jobs. C++ gives you more control, but at the same time, it also is more complex.
Personally, when I write software for myself, I almost invariably use C# just because the development time is greatly reduced, and several common bugs are either caught at runtime (e.g. buffer overrun) or simply can't happen (e.g. memory leaks from failing to destroy objects).
GUI work is also fast and incredibly easy in C#. I used to do my GUI work in MFC back in the day, and before that I did pure WINAPI, and C# GUI work is almost a joke it's so simple.
Also, I like C# in that it is native Unicode throughout; in C++ I always used Unicode but it required additional developer work to use. I know any C# application will work with any file I have, regardless if the name is in english, chinese, korean, etc.
You ever try a pink golf ball, Wally? Why, the wind shear on a pink ball alone can take the head clean off a 90 pound midget at 300 yards.
I work primarily in C# and while it is managed, that doesn't make it "easier" by any means. Making any kind of software requires you to know much more than the basics, and anyone still fighting over languages really miss the point. Great software has been made in both C++ and C#, even Perl, VB, and Ruby, so it's hardly the language, just the person behind the keyboard.
As with Java, there seems to be a lot of hand-wringing in the C# community on how to detect and remedy memory leaks.
Look up a C++ Reference and learn How To Ask Questions The Smart WayOriginally Posted by Bjarne Stroustrup (2000-10-14)
The anti-C++ propaganda fomented by the Java and C# communities is fun to read sometimes.
C# is very much like Java re: memory. You don't have to manually manage it, until you do. The sales schtick by the snake oil salesmen of both languages has doubtless led to sloppy, leaking code.
Last edited by medievalelks; 04-16-2009 at 08:39 AM.
In general, though, C# memory leaks happen in three basic ways:
1. You actually have a pointer to the memory somewhere that you haven't gotten rid of. Not truly a leak, just bad coding.
2a. You called unmanaged code that allocated memory, without freeing it.
2b. You used a GDI object without disposing it. Technically this isn't a permanent memory leak, as during finalization the memory is returned, but that will happen at some indeterminate point in the future when the GC feels like it.
And yeah, while you can't completely ignore C# memory management, it has a lot of advanced stuff as default -- for example, it will dynamically move objects in memory to avoid memory fragmentation. Doing THAT in C++ is a huge pain unless you code with that in mind from the first line.
You ever try a pink golf ball, Wally? Why, the wind shear on a pink ball alone can take the head clean off a 90 pound midget at 300 yards.