So someone just asked me about this, and I figured since I just typed all this out in an email, I could fill the rest of my boredom with posting it here. If someone is so motivated they could look up names and dates and flesh this out (the Jargon File would make a good start). Anyway, some of you may know this, others may not care, but I was asked...

I've heard of C and C++, is there a C+?

Nope, we skipped it. C++ looks more abstract and confusing to the layman.

Honestly, there never was a C+ and this is why...

It started with a language called CPL. I think CPL simply stood for Computer Programming Language. Not very creative, but to the point. Next came a variant of CPL called BCPL. Here I believe the B was for Basic.

I'm sure CPL went on to spawn other variations, but BCPL spawned a next generation. It was an improvment on BCPL, not merely a variant, but it was far enough removed from CPL that it should get a unique name.

B. And there is no need for it to actually stand for anything, we will simply drop the CPL and call it B. I'm sure someone asked, "is there a language called A?"

Anyway, we now have B, and I'm sure you can see how the next generation of B can easily be named C. Now it is time to morn the lost ancestor A.

C was the increment of B. It was the next in line. The name is no big surprise. And if the writer of C had written the next generation, it is very likely it would've been called D. As it turns out, he didn't bother.

The guy who wrote the next generation thought he had a sense of humor. Instead of merely naming the next language D, which is C's increment, he figured he would name the next language C's increment. C++ introduced an increment operator: ++.

In C, if you wanted to add 1 to something (increment it) you had to say, "Add 1 to this variable and store the result back into the same variable". 'Course, you type this instead: x = x + 1;.

The writer of C++ introduced a short hand for that statement, the increment operator. Now you could quickly write: x++;.

He also introduced a decrement operator (--) and several fancy assignment operators (like +=).

'Course, there are odd things. C++ returns C and then adds 1 to it. ++C adds 1 to C and then returns C. But no one wants to use a language called ++C.

Anyway, that's the letter I sent out. If there is something historicaly inaccurate, well, he won't care. I'm sure no one else will either, but feel free to correct me.

Oh, also, the writer of C++ had a press conference or something a while back talking about plans to release a new generation of C++. Microsoft has already release Visual C++ and are working on C#. The C syntax is a very handsome one as far as I'm concerned. And it shows up again and again: CSH and TCSH (no surprise there), Perl (which was written in C/C++), Java (which was written by a bunch of people who knew C++), JavaScript (which was written to look a lot like Java).