Blogs

Paul Kimmel's Blog

Learn C++, or at Least Learn From It

     

C++ was invented at AT&T Bell Labs and introduced as C with Classes around 1986. This time frame coincidentally coincides with the approximate availability of PCs to the general public. If you read Bjarne Stroustrup's Biography of this time period—The Design and Evolution of C++—then you will learn that C with Classes was dubbed C++ and released right around 1990. The use of the ++ operator in the name is a play on the idea that C++ is an iteration of C.

The benefit of learning C++ is not that C++ is the best language or even the right language in all scenarios. In fact for many kinds of applications other languages may likely let you develop applications at a lower cost. No, the benefit of learning C++ is that C++ is an extraordinarily rigorous language. The rigors of learning the C++ language is like the rigors of any intensive training: one gets a more finely-tuned result. Here is another reason for learning C++. Because C++ was an early PC language a lot original object-oriented material was demonstrated and though of in the context of C++. In short, design patterns, folks, refactoring folks, analysis and design folks were all probably string C++ developers. Some of the most esoteric and powerful algorithms have been written about and demonstrated in C++ first—for example, read James Coplien’s Advanced C++ Programming Styles and Idioms book for some mind bending algorithms.

If you don’t necessarily have the time to take the 18 months or so it can take to learn the fundamentals of and write C++ then spend a little time becoming familiar with the basic grammar and syntax. Follow the study of the language through its grammar and syntax with the study of books on algorithms, idioms, object-oriented patterns and refactorings, and analysis and design concepts. You will find that studying this rigorous language—C++—and the literature that ensued will prepare you to master every other, less rigorous object-oriented language.

Of course, this is all opinion. However, because C++ is arguably the most rigorous language, its study prepares you thoroughly for less rigorous languages. Studying the material that ensued—the books in literature—contain information that applies to other less rigorous languages, like VB.NET and C#, and will help you use these other languages at a higher level.

Published Oct 22 2009, 11:04 PM by Paul Kimmel (DevExpress)
Bookmark and Share

Comments

 

Brien King said:

Extraordinarily rigorous language?  What does that even mean?  

More so then C?  Pascal?

While I agree that it's a good idea to learn C++, at least for the experince, I don't agree that it's going to help you anymore with VB.NET or C#, then learning any other language.

October 22, 2009 6:40 PM
 

James Foye said:

I agree with your post wholeheartedly. I was fortunate enough to learn C/C++ early and I felt like it was a boot camp that made everything that followed in later years easier.

October 22, 2009 9:44 PM
 

Marc Greiner [DX-Squad] said:

Hi Paul ;

Yes, C++ was a rigorous language, especially when you think that it was invented as an extension to C, which came to life back in the 70s.

But today is the 21st century and there are better languages around, especially C# !

C++ is redundant in many of its declarations.

Think only of the header files (.hpp).

What is the use of these files, in an environment where the editor keeps track of every method declaration by the time it is typed-in by the developer ?

C# is the next iteration of C, after C++. C# cumulated wisdom from C, C++, java and what not (not to mention VB).

C# is no less rigorous than C++, to the contrary.

I come from a C/C++ background, have been truly suffering under VB6's silly syntax and limitations during as many years, and using C# now. I can only say that C# has been wonderfully designed by some genius guys.

When Anders Hejlsberg was once asked what he would change in C# if he was to start it over, the only thing he came up with was the missing nullable object type, only available for value types, now too late to implement for compatibility reasons with existing code. A detail IMHO.

I personnaly cannot find anything wrong in the C# syntax and find often new perls and diamonds on my track with C#.

October 23, 2009 6:25 AM
 

Ahmed Lazreg said:

>because C++ is arguably the most rigorous language,

We simply dont live on the same planet !

C++ while is a very nice language and standardized (ant thus portable), is on of the less safe languages. I dont understand what you mean by Rigourous. For me Pascal is one of the most rigourous languages. C++ let you do any crap you want, so you must be very carefull or you'll be out. It's the best language to have 200% stress while writing your program: thanks to its of  its very permissive typing system that give no chance to the compiler to detect any thing!

>Because C++ was an early PC language a lot original object-oriented material was demonstrated and though of in the context of C++.

I dont think so. 99% of OOP was thought in smalltalk (and ADA, somewhat the ancestor of Pascal).  C++ was simply an "attemp" to port the nice OOP design to a very permissive language that was C. It was successfull mostly cause of portability and the nice quality of existing C compilers (optimization) and not the quality of the implementation of OPP concepts.

The best implementation of OPP concepts in a C like language was in JAVA.

C++ has never and will never be a safe or rigourous language, and OPP in it is a real night mare compared to existing implementations in C# or JAVA languages (even Delphi  OPP implementation is not clean ... it's what I name a technical fiddle to got OPP in pascal).

Regards

Ahmed Lazreg

October 23, 2009 10:58 AM
 

Pikesville Jewelry Store Owner Sentenced to over 3 Years in Prison … | BeautyBlogr said:

Pingback from  Pikesville Jewelry Store Owner Sentenced to over 3 Years in Prison … | BeautyBlogr

October 23, 2009 1:28 PM
 

ShiLin's Blog » Learn C++, or at Least Learn From It – Paul Kimmel's Blog said:

Pingback from  ShiLin's Blog » Learn C++, or at Least Learn From It – Paul Kimmel's Blog

October 27, 2009 4:34 AM
 

ShiLin's Blog » Learn C++, or at Least Learn From It – Paul Kimmel's Blog said:

Pingback from  ShiLin's Blog » Learn C++, or at Least Learn From It – Paul Kimmel's Blog

October 27, 2009 7:47 AM
More from DevExpress
Live Chat
Have a pre-sales question?
Need assistance with your evaluation?
We are here to help.
Chat is one of the many ways you can contact members of the DevExpress Team. We are available Monday-Friday between 8:30am and 5:00pm Pacific Time.
If you need additional product information, require pre-sales assistance, or want help with your order, write to us at info@devexpress.com or call us at
+1 (818) 844-3383.