Summary:
In this article, Scott Meyers shares his picks for the five most important software packages in the history of C++, along with why he chose them.
The ability to add new comments in this discussion is temporarily disabled.
Most recent reply: September 23, 2008 0:36 PM by
|
In this article, Scott Meyers shares his picks for the five most important software packages in the history of C++, along with why he chose them. http://www.artima.com/cppsource/top_cpp_software.htmlWhat do you think of Scott's choices? What other C++ software do you feel have been important in the history of C++, and why?
|
|
|
I'd say "the Apple language" is ObjC. At least after they bought NeXT.
|
|
|
I wouldn't put boost in there. Boost is a good library, but I really doubt it is that important, considering that the functionality it provides is not what most projects require. I would put Qt in there, which is by far the best programming toolkit.
|
|
|
MFC? COM? Note that Scott didn't ask which library was best for the C++ community, best as a design and implementation exercise, or even whether its importance was positive or negative. -- Bjarne Stroustrup; http://www.research.att.com/~bs
|
|
|
I agree, Qt is wonderful. And two years ago I might have agreed with you about Boost. But shared_ptr, function, and bind (and other Boost goodies) are opening up a new world.
|
|
|
> I agree, Qt is wonderful. And two years ago I might have > agreed with you about Boost. But shared_ptr, function, > and bind (and other Boost goodies) are opening up a new > world.
I disagree. Plenty of well-designed robust functionality is more important than elegant software tricks; Java is preferred for its rich API, above all.
In other words, give me Qt, and I will built all sorts of apps; give me boost, and I can make all sorts of console-driven non-database non-xml non-gui non-networking non-threaded non-everything apps. I.E. boost is severely limited in common stuff needed for apps these days.
By the way, Qt has a SharedPtr implementation (along with others).
|
|
|
As a professional real-time embedded systems programmer, Scott's picks of GCC and the STL resonate with me. In regards to boost, it does have some "out there" things in it, but if you dismiss it as "elegant programming tricks", you are missing a lot. We have leveraged great productive use out of the nuts and bolts features of boost: CRC, regular expressions, date/time, shared_ptr, and function to name a few.
|
|
|
> We have leveraged great productive > use out of the nuts and bolts features of boost: CRC, > regular expressions, date/time, shared_ptr, and function > to name a few.
Which Qt contains, along with gui, database, xml, filesystem, drawing, memory management, threads, I/O, sockets, html, etc.
|
|
|
I love Qt. I am very lucky, my company so far is willing to pay for my Qt license (required for commercial use). Just imagine if Qt were included along with the C++ standard library or released with a Boost-like license. C++ would take over the world and I wouldn't have to think about Java anymore ;-)
|
|
|
Scott, Your article states
"The Standard Template Library, originally by HP, 1993-present. That the standard library for a language like C++..."
STL was created by SGI, NOT HP.
Ciao,
RM
|
|
|
I doubt that C++ would take over the world. Qt is pretty cool but developers are unlikely to switch away from Java to C++ in hordes because of Qt.
Qt is great but C++ remains a tool for the sophisticated developer. There are way too many ways to shoot yourself in the foot. Frankly, I would be unwilling to allow recent grads to work in C++. I have my doubts about 'experienced' developers as well.
|
|
|
Java as the Unix language seems so weird. All my UNIX experience has been C and C++. To me Java, on UNIX, is relegated to the (albeit very important) application server (e.g. Tomcat, JBoss, etc). Most of them run on UNIX but can just as easily run on Windows.
For me UNIX lives, and breathes, C with C++ one of its top application programming languages.
|
|
|
A minor nitpick: GCC was not the first native C++ compiler, I believe that was Zortech in 1988. GCC added the capability to compile C++ code in 1992.
|
|
|
Dear Scott Myers,
you find the Boost-Library somehow important. I never understood, what it is good for and why it helps us to produce better code. I clear explanation of "What problems are solved" with Boost, especially with the pointers, could help me.
We used the library once for automated deallocation and then found it useless and contraproductive. Finally we took it out and improved the Design instead.
Maybe I missed the most important library of the C++ - World?
Jens
|
|
|
I would have posted this long ago, but I saw this comment only today. Shortly after publication of this article, people who were writing C++ compilers when I was still trying to figure out how the shift operator could perform IO -- in other words, people in a position to know because there were there at the time -- raised questions about the accuracy of this statement. My source is Michael Tiemann's timeline at http://people.redhat.com/tiemann/timeline.html , where he states that the first release of Gnu C++ took place in December 1987. Everyone seems to agree that if that's correct, g++ was the first native-code C++ compiler. However, a newsgroup posting (not by Tiemann) announcing the release ( http://compilers.iecc.com/comparch/article/88-01-010) notes that "The GNU C++ Compiler is still in test release, and is NOT ready for everyday use," and Tiemann's own timeline lists September 1988 as the date for the release of the "first really stable version." Between December 1987 and September 1988, other players got into the game. In January or February 1988, Oregon Software released Taumetric's native-code compiler (developed by Steve Clamage and Mike Ball), and in June, Zortech released its compiler (developed by Walter Bright). So g++ was either the first or the third native-code compiler, depending on whether you view the December 1987 release as a "real" release or just a "test release."
|
|