Linked by Thom Holwerda on Wed 25th Jun 2008 14:47 UTC
General Development Computerworld is undertaking a series of investigations into the most widely-used programming languages. Previously they have spoken to Alfred v. Aho of AWK fame, S. Tucker Taft on the Ada 1995 and 2005 revisions, Microsoft about its server-side script engine ASP, and Chet Ramey about his experience maintaining Bash. In the latest interview Computerworld chats with Bjarne Stroustrup of C++ fame about the design and development of C++, garbage collection and the role of facial hair in successful programming languages.
Permalink for comment 320340
To read all comments associated with this story, please click here.
C++ is an incredibly practical language...
by Meridian on Fri 27th Jun 2008 03:54 UTC
Meridian
Member since:
2007-12-18

C++ may have some syntactical and library annoyances, but when used intelligently it is an incredibly effective and elegant (yes, elegant) language. It carries over C's major strength of being wonderfully cohesive with the von Neumann architecture and memory model.

C++ goes further than C in natively supporting a number of programming paradigms that, in skilled hands, can produce code that is minimal, understandable, correct and fast. But in that is its weakness. It is not Basic, it is not COBOL, and it is not JAVA. To use C++ really effectively requires many years of experience working with good people, not just in coding, but in design, in order to recognize and to optimally choose the mix of implementation paradigms that best suit the problem domain.

An understanding of the commonality and variability, both within the problem domain and in the implementation domain does not come easily, and if you are working with a single-paradigm language, your thinking itself is constrained. C++ helps out in this area by being a mature multi-paradigm language, although nowhere near to the extent of something like Oz. Thinking about things such as structural commonality and type variability, type commonality and structural variability, safe deterministic resource management, compile-time metaprogramming, etc. in C++ is now quite natural.

C++ is not a static language, it is evolving intelligently albeit slowly. However, C++ is not a language that enables you to deal easily or safely with the a numbers of CPU cores, yet this is the direction the hardware world is heading towards. It will be interesting to see if C++ can evolve and survive as a major language when thousands of cores become the norm.

Edited 2008-06-27 03:54 UTC

Reply Score: 1