本文是BYTE对若干开发者、公司技术负责人的调查报告,个人认为很值得一读。可惜我时间紧迫,无法为大家翻译,深表抱歉.
Whither Now C++?
September 4, 2001
Oh the shame of it all! After years of being the language for real programming, C++ has lost its throne as being the most popular serious language to, God help us, Java.
The Evans Data Corporation predicts that sometime in 2002, about 55% of North American developers will spend at least some time working in Java.
That popularity is coming at the expense of C/C++ and Visual Basic. Throwing salt into the wound, by 2002, Evans Data predicts that only about 51% of programmers to still be working in C and C++ and their numbers will be declining fast.
What happened?
The Waning of C++
To find out, I went to the programmers and developers in the trenches. I spoke to dyed-in-the-wool C++ programmers who are now at least beginning to consider the alternatives. This is their story.
David W. Methvin, noted technology author and consultant, speaks for many when he says of C++, "If I never have to write another line of C/C++ code I would be a happy man. The meat of the C++ language has evolved into a monster, but worse yet the trimmings now outweigh the beef. Win32/MFC/ATL/COM all try to layer more abstractions onto the low-level language but they're a nightmare to learn and use, especially if you try to use them together and need to convert between disparate data representations. NuMega's BoundsChecker helps, but often even Microsoft sample code won't pass through it without complaint so you have to wonder when the creators can't get it right."
Not everyone would go so far as Methvin does though. Mark Bartosik, Principal Software Engineer at Michael Larkin Enterprises, agrees that, "There are many libraries for C++, and C++ can interface to many other languages notably C. This is both an advantage and a disadvantage. The language 'bindings' are not always ideal, this is where a lot of bugs creep in."
But, he believes C++'s real problem isn't the language or the libraries, it's the programmers. He explains, there are three classes of C++ programmer: C programmers; traditional programmers, whose understanding of the language comes from the Annotated Reference Manual (ARM) who don't use templates; and modern C++ programmers. Larkin says, "For the later category C++ offers extremely robust, expressive, powerful, efficient means to write high-quality reliable code. These programmers will be making the maximum use of templates, STL, and other template libraries. They are generally ve