A coworker pointed me to a web page with a bunch of links to free ebook downloads from the publisher. One of these titles, was C++ Today by Gašper Ažman and Jon Kalb. I downloaded it, read it, and really enjoyed it. Being a youngin' myself, I wasn't around during the early days of C (well, I wasn't programming at least) so it was interesting to get schooled on the beginning of modern programming. I'll save you the history lesson in this post and give you the actual relevance of C++ today, but I definitely recommend reading the full version.
C++ for Ultimate Control
C and C++ are often called "systems programming languages" because they are used to write the underlying operating systems for various devices, including everyday computers. To really thrive in this niche a language needs to give the developer an api for managing memory and allocating / deallocating memory and well as deal with things like "hardware interrupts". C and C++ are perfect for this and other tasks with similar requirements.
C++ Vs C: High-Level Abstractions at a Low Cost
Pure C is a very low level language. C++ leverages the power of C but gives you access to many more tools that you can use as a programmer to developer software faster and more effectively. For example, in the book the authors cites the stream model in C++:
"C++ introduced an I/O model based on streams. The streams model offers an interface that is, in the common case, slightly slower than using native operating system calls. However, in most cases, it is fast enough that programmers choose the superior portability, flexibility, and type-safety of streams to faster but less-friendly native calls."
C++ also has a standards committee which recognizes certain libraries as "official" such as the Boost libraries.
C++ For Low-Level Access When You Need It
C++ is a language that's designed for low-level hardware control. As the authors of C++ today write, "It can manipulate memory in arbitrary ways down to the bit level with efficiency on par with hand-written assembly code (and can even support in-line assembly code)".
The Bottom Line for C++
The posts on this site are written and maintained by Jim Lynch. About Jim...