Conversations #3

Home Blog Talks Books & Articles Training & Consulting

On the
blog
RSS feed November 4: Other Concurrency Sessions at PDC
November 3
: PDC'09: Tutorial & Panel
October 26: Hoare on Testing
October 23
: Deprecating export Considered for ISO C++0x

Genesis
Copyright © 2000 Jim Hyslop and Herb Sutter

 

I burst into the compartment. "Hey, have you heard the rumors?"

Jeannine looked up from her work. "Hay is for horses. What rumors?"

"About Ganymede," I explained. "I hear they found something under the ice. No sign of recent melting, either; it's something old, and definitely not natural."

That got her attention. She blinked and stretched. "Really? And not ours?"

"That's the buzz. Your neurons tingling yet?"

"Sure, sure. Wow. What else?"

"No more information yet," I admitted, letting myself drop down onto the couch. "And it's just a rumor. But, man, wouldn't that be exciting, if something big happened on our tour? We'll be there on station in less than two months."

"In the ice...?" Jeannine considered this. "Whether it's an artifact or not, it must be ancient. Makes you think about all the big questions, doesn't it? Our own race's history, where we came from, where we're going."

"Roots and directions, right. Y'know," I said, "this reminds me of something that happened back when I was on my first job..."

- - - - -

It was a slow day, and I was talking with Wendy. She was the girl next door... literally, I mean. Her cubicle was next to mine.

"Y'know," I said, "I heard that Stroustrup chose the name C++ because it was an incremental change to the C language -- C incremented, right?"

"Right," Wendy said. "But if you think about the semantics of the name, what does it mean?"

I puzzled for a moment, then shook my head. "I dunno."

"Well, it uses the post-increment, so it means 'take the C language, increment it, and use the original.' " We both laughed.

"A common jest." The Guru's voice startled us both. We turned, and I tensed, but then I saw an unusual thing: A twinkle in the Guru's blue eyes. She added: "But how well do you know the history of the language you are abusing?"

I relaxed again, quickly at ease. "How do you mean?"

The Guru closed the book in her hand -- I recognized the cover of the D&E.[1] She raised her head slightly, her eyes focusing off in the distance. Then she began to recite, in almost a sing-song way, and her thin body seemed to resonate with the chanted words:

 

"In the beginning, computer languages were in chaos, and high-level computer languages were void, and without form. And from his desk at Bell Labs, Richard Martin did look upon the computer languages, and saw that a high-level language was needed. And he went forth, and developed BCPL, and he saw that it was good.

"And Ken Thompson did look upon BCPL, and saw that it was good, but it had to be smaller to run on a PDP-7. And Thompson went forth, and did produce a new language, and he did call it B, which is a contraction of BCPL.[2] And he saw that it was good.

"But B was without types. And Dennis Ritchie saw that it was without types, and he too went forth, and extended the B language. Thus Ritchie added structs, and added types to the language, and he called it C, for C is the next letter after B, both in the alphabet and in 'BCPL.' And Ritchie saw that it was almost good, but he was not satisfied, and he continued to toil in the sweat of his brow and to refine the language. And in 1978 did Brian Kernighan and Dennis Ritchie proclaim 'The C Programming Language.'[3] And there was much rejoicing among the multitudes, and they saw that C was good. 'Yea, verily, this language is good,' proclaimed the multitudes.

"And it came to pass that the multitudes began to use C. And new features were added, but not by all compiler vendors. And the multitudes were dismayed, and cried out. 'Yea, verily, we need a Standard C,' they did cry. And ANSI did hear their cry. And in 1989 did ANSI say, 'Behold, I bring you good tidings of great joy, which shall be unto all programmers. For unto you this day is adopted a Standard for C, which is X3.159-1989.' And then did ISO take up the cry, and did proclaim ISO/IEC 9899-1990. And there was much rejoicing among the multitudes.

"Now it also came to pass, before the C Standard was adopted, that Bjarne Stroustrup did also labor to perfect the C language. And Stroustrup labored to add Classes to C, and function argument type checking, and other features possessed of niftiness. And so he went forth, and in 1980 did he proclaim 'C With Classes.' And there was much rejoicing and excitement among the multitudes.

"But Stroustrup was not satisfied. And he made further changes to the language, and he did call it C++, which is to say, the C language incremented. And so he went forth, and in 1986 proclaimed 'The C++ Programming Language,' and there was much rejoicing among the multitudes.[4]

"But as with all living things, the C++ language evolved. Templates, exception handling, and other features were added to the language. And there was rejoicing among the multitudes.

"But also did the multitudes complain. For in those days, did various compiler vendors implement different solutions to templates and exceptions, and other features. Even did some compiler vendors refuse to implement them. And so the ISO went forth, and in 1998 -- which is to say, the sixth year of Clinton, while Chrétien was prime minister of all Canada with the possible exception of Québec, and Lewinsky was celebrity of choice in the media, for Simpson was no more and there was no news that year -- in the ninth month, on the first day of the month, did ISO proclaim, 'Behold, I bring you good tidings of great joy, which shall be unto all programmers. For unto you this day is adopted a Standard for C++, which is ISO/IEC 14882:1998(E).' And ANSI did take up the cry, and proclaim the very same Standard, on the seventh month, on the twenty-seventh day of the month, which was technically before the day on which ISO did proclaim it because that's just how these things work out sometimes. And there was much rejoicing among the multitudes. 'Yea, verily, now maybe we shall get some work done,' the multitudes did proclaim.

"Now it came to pass, during those days, that Patrick Naughton did work for Sun Microsystems. And Naughton was sore tried, and sought to leave Sun. But the Company counter-offered, and did say unto him, 'Thou shalt have a team of developers at thy disposal, if thou wilt but give us something cool.' And so was born the team known as Green.

"And Green team did seek solitude, and went into exile in the wilderness. And they did seek an Object Oriented Language to be used in embedded devices, and they did start to modify C++. But C++ was too cumbersome for their needs, and so did they create a new language based on C++, and they called it Oak, for James Gosling did look out his window and see an oak tree. And the team looked upon Oak, and saw that it was good.

"Now in those days it also came to pass that the National Center for Supercomputing Applications did beget Mosaic, and thus did they bring forth the World Wide Web. And there was much rejoicing among the multitudes. And then did Bill Joy seek to give away the source code to Oak, and to make Oak useable in web browsers. And Sun looked upon the idea, and saw that it was good. But the trademark Oak was already taken, and therefore did Sun call the new language Java. And so it came to pass that Sun did proclaim the Java Programming Language. And there was much rejoicing among the multitudes. 'Yea, verily, now we have another truly platform-independent language,' they did proclaim, 'we think, and it does really cool stuff.' "  

 

The Guru finished her recitation, and focused on me. "And that, my young apprentice, is the story of the C family of languages." She pushed a gray lock behind her ear, stood still for a moment in a respectful silence, then bowed her head and silently walked away, reopening her D&E.

I sat there, stunned, and turned to Wendy.

"Hey, don't look at me," Wendy shrugged. "You'll get used to her. She really is the best programmer I've ever worked with."

I barely heard her. I was trying to remember where I'd put the floppy disk with my résumé.

- - - - -

"What did you spend more time at -- doing work, or thinking about how to get away from her?" Jeannine asked, smiling facetiously.

"Yes," I smirked back. It was not the last time I would speak with Jeannine about the Guru, or about more pleasant things.

 

Notes

1. B. Stroustrup, The Design and Evolution of C++ (Addison-Wesley, 1994) ISBN 0201543303.

2. See http://cm.bell-labs.com/cm/cs/who/dmr/chist.html for alternate etymologies of "B".

3. B. Kernighan and D. Ritchie, The C Programming Language, 2nd edition (Prentice Hall, 1998) ISBN 0131103709.

4. B. Stroustrup, The C++ Programming Language, Special Edition (Addison-Wesley, 2000) ISBN 0201700735.

Bibliography

M. Ellis and B. Stroustrup, The Annotated C++ Reference Manual (Addison-Wesley, 1990) ISBN 0201514591.

J. English, The Story of the Java Platform.

D. Ritchie, The Development of the C Language.

B. Stroustrup, The Design and Evolution of C++ (Addison-Wesley, 1994) ISBN 0201543303.

Suggested Reading

D. Bank, The Java Saga.

M. O'Connell, Java: The Inside Story.

Copyright © 2009 Herb Sutter