@M3RPHY said:
@EXTomar:
For certain applications, C++ is absolutely needlessly complex, especially when you begin to consider the abstractions you're talking about . With C++, don't you think explicit memory management is a pure example of Leaky Abstraction, and consequently, needless complexity - especially in contrast to garbage collected languages like Python or C#? It's unquestionably an implementation detail that can be abstracted away under the majority of circumstances. You are correct, modern software design HAS created platforms on top of tech to abstract away complexity, and on the whole, current interpreted languages/VM languages do a better job than those that compile to native code [C/C++]. Especially for a beginning programmer, period.
"C++ is complex because C is complex." is a gross oversimplification of what C++ actually is. Even ignoring the object orientation of C++, a simple perusal over its error handling will render this point moot, and it most certainly has nothing to do with an assembler. Also, the complexity I referenced earlier in C++11 was local variable type inference, but there are plenty of other examples on that page that needed to be addressed. They also have nothing to do with the underlying hardware you've discussed, and remain general language issues.
The point, at least I think, that you're trying to make here is that C++ has features that should not be used 95% of the time as there are simply easier, less complex and convoluted solutions to most problems. For that reason alone most beginner C++ code is simply C code with class used in place of struct. However, in some cases C++ code needs many of the abstractions and complexities that you mentioned. Example : manual memory management in a text adventure is unnecessary, manual memory management in, say, the megatexture portion if the id Tech 5 code is necessary. Just curious what you mean by better job in regards to interpreted languages.
However, I do fully back the point that you should probably start with a language other than C++ to start, say, Visual Basic because you can get stuff done relatively quickly and removes you from many of the abstractions (*cough cough* OOP) of other languages (Java). It's hard for many of us that have done it to understand, but I remember learning what a class was and sitting at my computer for an hour confused, this stuff is hard and takes time so you might swell get a good grip on the basics first.
Log in to comment