BTW, my opinion may seem biased, and that\'s because it is; I\'ve been using C++ for a long time (for and 18 year old) and I know that I want to be a C++ programmer as a career. Nothing will possibly change my opinion (just wanted to let you know). Still, I will try to stay as object as I can.
However, if you\'re going to ask a C++ programmer to objectively compare and contrast C++ to Java, you need to find a better document than the one you posted; it\'s obviously biased towards Java. You can\'t ask someone to analyze something objectively when the document itself is biased.
While it may be considered a powerful feature, many find it complicated and confusing and thus creating problems for the programmer.
Look at the words I\'ve bolded. Someone (an inexperienced programmer, that is) reading this is alread going to frown upon C++, because the document makes it sound unfriendly.
Also, I must say C++ is an OOP, and the inheritance model is excellent for many, many applications for programming. It\'s not all that difficult to implement
if you understand how it works.
The main disadvantage is that C++ programs are not portable once compiled and although it is possible to compile one and the same C++ program to various platforms, this is usually done with great difficulty, to say the least.
It is true that C++ programs written
without the intention of being cross-platform are usually difficult to port. This is because the programmers write for the system(s) of the target end user.
However, if you actually write your code with the intention of being cross-platform, you can use the exact same code for any variation of computer you wish to build it on. Linux is (most of the distributions are, at least) written in C/C++, and you can download the exact same code to build on your x86, PowerPC, Sparc, Nintendo 64, etc.
This burden for the programmer of memory management is often the source of bugs, crashes, memory leaks and poor performance.
Seriously now, \"burden\" is a horrible word to use in an \"unbiased\" article. Again, memory management is something that comes with the territory; if you\'re going to write code in C++, you learn how to manage memory correctly and efficiently, and if done correctly gives few problems at all. At least this \"burden\" allows us to free up our memory when we\'re done, instead of waiting for the
garbage collector to come pick it up.
Unfortunately due to it\'s complex nature it is also the source of many bugs, such as the dangling pointer.
OMFG, the one thing I can\'t stand is when people complain about pointers. It\'s not that complicated! I\'ve sat through three C/C++ college courses, and in each case people whine about how pointers are
sooo hard. I simply do not understand why everyone complains; I have never had a problem with pointers.
Well, that\'s about as objective as I\'m willing to get with this article. If I find time, I\'ll try to find a more \'unbiased\' piece to analyze.
Originally posted by Jessyn
Xandria is sooooo right here, it\'s not even funny. C++(or the classic C) is still widely used because it\'s fast flexible. I\'ve only ever found ONE language that is faster, and you DON\'T want to try debugging assembly, trust me on this one...
Hahaha, oh man, assembly is hardcore
