Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Should I reject C++ because it's becoming a juggernaut? [closed]

Tags:

I have tried to keep up with C++ since they introduced 1998 ANSI/ISO C++. I absorbed the new concepts and tried to understand them. I learned about exception handling, templates, and namespaces. I've read about the new cast mechanisms and worked with the STL library.

All of these concepts required a lot of energy. But now I am somewhat worried about the future of C++ when having a look at the new C++0x standard.

Things are getting more and more complicated. This language is becoming a monster.

I'm not sure that I want to keep up with the language anymore, since I don't do my day-to-day hacking in C++ anyway. I mostly use interpreted or bytecode languages.

So why should I bother to learn this difficult, yet exceptionally powerful, language? I can do 95% of my business with Python et al. With the remaining 5%, I can deal with plain old C++ or C without hassle.

What do you think?

like image 484
prinzdezibel Avatar asked Apr 19 '09 12:04

prinzdezibel


People also ask

Should I bother learning C?

Being a middle-level language, C reduces the gap between the low-level and high-level languages. It can be used for writing operating systems as well as doing application level programming. Helps to understand the fundamentals of Computer Theories.

Should I learn C in depth?

C is the most popular and widely used programming language for both systems and application development. C Language is very fast, portable and platform Independent and is a significant first step for new programmers.


2 Answers

Everyone uses a subset of C++. For almost all application programming in C++, whether server or client side, that subset is manageable. In my opinion, the only folks that need to stay on top of absolutely every nuance of the language are the library writers -- people implementing Boost, STL, Loki, etc.

But I would absolutely use the language that fits the task. If Python is more readable and more maintainable than C++ for your job, and you don't need what C++ offers, then certainly stick with Python.

like image 144
mwigdahl Avatar answered Oct 18 '22 15:10

mwigdahl


Hear what Bruce Eckel { author of the two of the so-called best C++ books } commented on C++ a few weeks ago:

That said, I hardly ever use C++ anymore. When I do, it's either examining legacy code, or to write performance-critical sections, typically as small as possible to be called from other code (my preferred approach is to quickly write an app in Python, then profile it and if necessary improve performance by calling small portions of C++ using Python's ctypes library).

Because I was on the C++ Standards Committee, I saw these decisions being made. They were all extremely carefully considered, far more so than many of the decisions made in Java.

However, as people have rightly pointed out, the resulting language was complicated and painful to use and full of weird rules that I forget as soon as I'm away from it for a little while -- and I figured out those rules from first principles while I wrote books, not just by memorizing them.

Additionally, you should read this thread and Danny Kalev's predictions on C++.

However, the growing complexity of C++ will create pressure towards splitting the language into quasi-official dialects. We can already see this trend today; it will probably intensify in the future.

EDIT:

You should take a look at this discussion, too:

C++ - Anyone else feel like C++ is getting too complicated?

like image 24
Özgür Avatar answered Oct 18 '22 14:10

Özgür