background preloader

General/Subjective

Facebook Twitter

Ursula Bassler: Was C++ really a good choice? Is my mental flexibility decreasing? Am I getting old and start whining about the good old days? Or is this all just an excuse for laziness? During the last days, we focused on getting the final software together for the data “fixing”. What does this mean? We need to “transform” the electronic signals seen in the detector into particles like electrons, muons, jets, neutrinos, each with an energy and a position, such that we can study the physics laws behind the interactions we’ve produced. To do this, we using some software, called the reconstruction program. The last days, we aimed for having all the programs from all people together in order to produce the “fixer” version.

When I started my PhD, nearly 15 years ago, all the software was written in a language called FORTRAN, and code-management was done by a program called CMZ in a “linear” way. And why am I whining? Is <i>Essential C++</i> the worst C++ book of all? Stanley Lippman: Essential C++ , 2000, Addison-Wesley, ISBN 0-201-48518-4, 270 pages. Long shrift: We're giving this one more space than usual for a negative review. A new book from a well-known author and a respected publisher shouldn't be dismissed without a careful analysis and complete explanation. Among the glut of C++ books I'm often asked to recommend the best C++ book for a course text or for self-study. That's a tough call. There are dozens, if not hundreds, of them, far too many to get acquainted with. In the future, however, I'll have no trouble coming up with the worst C++ book I've seen. C++ with its standard libraries and vendor libraries is by far the largest language in the history of programming, vastly more complicated than PL/I, Ada, or Algol-68 which used to get criticized for being too big.

What's "Essential"? In reviewing the same author's C++ Primer I observed that it's anything but a primer. Out of sorts The bubble sort algorithm is well known, but this isn't it. Mr. C++ Pitfalls. This is an attempt to provide an overview of many of the C++ pitfalls that begcontent to moderately experienced C++ programmers often fail to understand. Specifically this addresses mistakes that I've seen from newer KDE contributers over the last couple of years.

Please note that this is not an attempt to replace a good C++ reference, but simply to provide an introduction to some often misunderstood concepts and to point out their usefulness. References References are a way of assigning a "handle" to a variable. There are two places where this is used in C++. We'll discuss both of them briefly. Assigning References This is the less often used variety of references, but still worth noting as an introduction to the use of references in function arguments.

Int foo = 3; // foo == 3 int &bar = foo; // foo == 3 bar = 5; // foo == 5 Here because we've made bar a reference to foo changing the value of bar also changes the value of foo. Passing Function Arguments With References The const Keyword. Electrical Engineering and Computer Science | 6.088 Introduction to C Memory Management and C++ Object-Oriented Programming, January IAP 2010 | Lecture Notes. Successful Software Projects in C++ [Marc Wäckerlin] It is a common problem in a lot of software projects, that they exceed costs, don't do what they were intended to do, become much too complex.

In my life as software engineer, I worked in small size and large scale projects, some of them were successful in quality, time and cost, some too expensive, but with acceptable quality, some aborted. Now I would like to share part of my experience. Project Classification In general there are two kind of projects: small size and large scale. By small size project, I mean a project below about five person years, by large scale project, I mean a project of more than ten person years. Projects between must be classified case by case. Large Scale Projects It is much easier to successfully complete a small size project. Start your large scale project with a small release — or even with a prototype.

How to Successfully Finish Projects The steps for a successful completion of small size and large scale projects include: Rules for the development process. C++ in the Real World. C++ has taken a lot of criticism: it's a big language that takes a long time to learn; standardization has taken a long time, which has made it hard to write portable code; newer languages, notably Java, draw more media attention. Still, among languages that support an object-oriented style, C++ is by far the most heavily used, and its usage is still growing rapidly. Why? Some of the complexity of C++ is inherited from C, or results from its evolutionary history, but most is a consequence of the language's power. For an easy problem, any language will do; a hard problem demands a powerful language.

Each feature of C++ exists because it has proven important for some area of industrial programming. Real-world programmers are more interested in problems than in languages: a programming language is a way to solve a problem. Why Use C++? C++ is a general purpose programming language designed to make programming more enjoyable for the serious programmer. C++ as Glue C++ for Writing Libraries. C++ Applications. C++0x FAQ. Morgan Stanley | Columbia University | Texas A&M University home | C++ | FAQ | technical FAQ | C++11 FAQ | publications | TC++PL | Tour++ | Programming | D&E | bio | interviews | applications | glossary | compilers I'm a Managing Director in the technology division of Morgan Stanley in New York City, a Visiting Professor in Computer Science at Columbia University, and a Distinguished Research Professor in Computer Science at Texas A&M University.

I designed and implemented the C++ programming language. To make C++ a stable and up-to-date base for real-world software development, I stuck with its ISO standards effort for 20+ years (so far). Writings: Here is These pages are permanently under construction. I can be reached by email at bs at cs tamu edu. C++ Tutorial. C++ - How to deal with seniors' bad coding style/practices. Programming in C++ My Most Important C++ Aha! Moments...Ever. The C++ SourceA Pause to Reflect: Five Lists of Five, Part VMy Most Important C++ Aha!

Moments...EverOpinionby Scott MeyersSeptember 6, 2006 Summary In this article, Scott Meyers shares his picks for the five most meaningful Aha! Moments in his involvement with C++, along with why he chose them. In the first four articles in this series, I named my picks for the most important contributions to C++ in the categories of books, non-book publications, software, and people: In this fifth and final installment, I name my five biggest Aha! Moments in C++. You do this job long enough, you’re going to have a few moments when the big pieces of the puzzle come together, and things suddenly make sense. One revelation of this ilk took place in 1978, when, after a period of struggle, I suddenly realized how pointers work: a computing coming of age if ever there was one. Realizing that C++’s “special” member functions may be declared private1, 1988.

Okay, that’s it, the last of my “five lists of five.” How To Be a Cool C++ Programmer / Developer - Pavel. A few weeks ago I blogged about how to be a cool C# programmer. if you are a C++ programmer, you can be cool, too. The next C++ standard, dubbed C++0x promises many enhancements and cool abilities, but in this post I’ll stick with the current C++ standard. Here are some ways of being a cool C++ programmer (in no particular order): 1. Zeroing out a structure and setting its first field in one swoop One of the common needs in a native Windows applications is setting up structures in preparation for calling some API function. Most of those structures need to be zeroed out, except the first field that needs to be set to the size of the structure.

We can do that with a call to memset followed by setting the relevant field name (usually called cb, cbSize or nLength) to the size of the structure. For example, instead of writing (in preparation for calling CreateProcess): STARTUPINFO si; ::memset(&si, 0, sizeof(si)); si.cb = sizeof(si); You can write: STARTUPINFO si = { sizeof(si) }; How cool is that? Book mania. Stepping Up To C++ | Dr Dobb's Journal.

C programming.com - Your Resource for C and C++ Programming. [6] Big Picture Issues  Updated!  A Complete Guide to Programming in C++ Modern C++ Design Generic programming and Design Patterns Applied.