More ++, Less C

原创 2007年09月13日 11:08:00

Standard template libraries, abstract classes and multiparadigm programming are keys to high performance.

"Too much C++ code is just C. For example, people do class hierarchies in a very naïve way. They think of a few implementation details that are common and they throw them into a base class. I have been preaching about this for nearly 15 years, and nobody listens. It's so much easier to make your own mistakes than to listen," lectured Bjarne Stroustrup, creator of the C++ language in his Tuesday, August 28, 2001 keynote at the Software Development East conference in Boston. Now head of AT&T's Large-Scale Programming Research Department in Florham Park, New Jersey, Stroustrup continues his focus on efficient algorithms and high performance. The solution to the problem of overloaded base classes, said Stroustrup, is to write interfaces that are totally abstract. "Writing code like this is a bit tedious because of the repetition, but if you have a concept, make it a class. This is one way to handle common state."

Beginning his talk with a graph depicting the performance of linear algebra calculations programmed in C++ and Fortran, Stroustrup pointed out that, while beating Fortran at what it does best is difficult, it can be done. "These are my semi-arm-waving comments on efficiency. Efficiency matters—not everywhere, but in embedded systems and performance numerics, which are areas that interest me, it does." What is slowing down C++ coders everywhere? First, too much reinvention of the wheel, he said. "If you think you can build a matrix library, go ahead, but there are many already available." He also lambasted "Smalltalk-style" hierarchies and showed several code snippets explaining how to better manage resources.

"Say you acquire a resource and then you close it out at the end. What if you never get to the end?" he asked rhetorically. "OK, so you open a try block, catch the exception… But there is something fundamentally wrong with this solution. Your code has roughly doubled in size. You're better off creating a class with a destructor." Object-oriented programming, Stroustrup went on to say, is really just one of several paradigms C++ users have at their disposal. Multiparadigm programs that use OO, generic programming and data abstraction are powerful ways to achieve fast performance and power.

"If you were designing C++ today, would you do anything differently?" an audience member asked. "Undoubtedly," responded Stroustrup. "Language design is a response to a set of problems you are facing at a point in time. I would want to support direct representation. I would not, however, build a high-level language and sacrifice efficiency. A lot of times, that question really is, 'Did you really mean to design something like Java but you couldn't?' and the answer is no. In terms of performance, C++ and Java don't mesh. I could make a similar statement about C#, but I won't. You also have to remember that I don't like proprietary languages."

So how will C++ evolve over the next 10 years? "Templated type definitions should be there," Stroustrup predicted. "The main effort should be in standardizing some of the libraries. It's not going to be easy, but I see it as a language that maintains its emphasis on run-time efficiency. The area I'm most interested in is distributed computing. I don't see any real likelihood of changes in C++ for supporting Web development; that belongs in the area of libraries. Whether any such libraries can be standardized is a big question, though. I have my doubts."

—Alexandra Weber Morales
Software Development Magazine



众所周知linux中命令cat、more、less均可用来查看文件内容,主要区别有: cat是一次性显示整个文件的内容,还可以将多个文件连接起来显示,它常与重定向符号配合使用,适用于文件内容少的情况;...

英语Learn more , study less.pdf

  • 2009年05月08日 19:08
  • 2.02MB
  • 下载


1. 查看文件内容常用的命令 cat : 由第一行显示文件内容 tac: 从最后一行开始显示,与cat相反 nl : 文件内容和行号一起输出 more: 一页一页显示 less: 与more类似,...

shell: 文件显示命令cat、more、less、tail、touch、od详解

原文: cat命令 cat命令连接文件并打印到标准输出设备上。cat经常用来显示文件的内容,类似于下的TYPE命令...

study less learn more

  • 2016年02月23日 18:41
  • 1.37MB
  • 下载
您举报文章:More ++, Less C