1 / 14

C++ Panel Discussion Summary

C++ Panel Discussion Summary. Jim Kowalkowski. Participants. Amber Boehnlein Jim Kowalkowski Leo Michelotti Marc Paterno Liz Sexton-Kennedy Bjarne Stroustrup (distinguished panelist). Day One. Talks Frustration with the language Speed Persistence. Talks.

msonntag
Download Presentation

C++ Panel Discussion Summary

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C++ Panel Discussion Summary Jim Kowalkowski

  2. Participants Amber Boehnlein Jim Kowalkowski Leo Michelotti Marc Paterno Liz Sexton-Kennedy Bjarne Stroustrup (distinguished panelist)

  3. Day One • Talks • Frustration with the language • Speed • Persistence

  4. Talks • Interesting problems that have been addressed • Abstraction and modularity are key concepts • Experiences with templates and the Standard Library

  5. Frustrations • Questions and concerns • Decomposing problem is difficult to do properly • Requires design time • Slower to produce results • Appropriateness of algorithm/data separation • Answers • Good design yields flexible, maintainable, and correct code • Prototyping is very important, distinguish it from production code • Striking a balance in separating concepts is difficult, extremes are usually bad

  6. Speed • Questions and concerns • Fortran is apparently faster • Answers • Performance testing is difficult, one must compare very similar things • Cannot ignore efficiency when designing and implementing code • Well designed code is generally easier to optimize • Correctness is more important than speed • Extremely fast programs that produce erroneous results, even part of the time, are incorrect

  7. Day Two • Missing features • Use of language

  8. Missing Features • Questions and concerns • Persistency • Reflection • Compiler optimization hints • Answers • Join committee • No consensus (standards require this) • Not pushed hard by groups in the committee

  9. Use of Language Subset • Questions and concerns • Exceptions (cost) • Templates (compiler support) • Answers • Take fresh look at exceptions and templates, much improved compiler support • Turning off exceptions is not using Standard C++ • Missing out on the strengths of C++

  10. C++ is Difficult • Questions and concerns • Abundant Fortran expertise, not so with C++ • Difficult to read C++ • Answers • Fortran skill and code was not very good • Poor C++ is hard to read. Good C++ code matches the concepts and is straightforward to read and maintain • Rely on other code, concentrate on the application, do not need to understand every detail

  11. Use of Standard Library • Questions and concerns • Algorithms are “Weird” • Different style than many are accustomed to • Answers • Missing out on the strengths of C++ • Algorithms allow direct expression of concepts in code • Efficient • Allow many optimization opportunities • Best available algorithms

  12. Session Highlights • First day • Design aspects • Frustrations • Second day • Language features • Language use

  13. Stroustrup’s talk • Majority of talk discussed techniques involving generic programming • Concentrated on use of function objects and algorithms • Classes and code should map clearly and cleanly onto the concepts and intention of the program • Stressed importance of building classes that directly model a single concept. • Stressed that class hierarchies should be kept as simple as possible (hierarchies of pure interface)

  14. Summary • Use the language features that are appropriate for solving the problem • Code to the standard, not a subset • Need for representation on the C++ committee • Take a look at the generic programming aspects of the language. • The combination of OO and generic programming is the strength of the language

More Related