University of Virginia, Department of Computer Science
CS655: Programming Languages
Co, Stoker, Walker, and Zhang
Attorneys at Law
The Plaintiff: The International Community of Computer Scientists
The Defendant: Bjarne Stroustrup
The accused, Bjarne Stroustrup, began work at AT&T Bell Laboratories in 1979 to create a new programming language. This language, now known as C++, was based on the C programming language created by Brian Kernighan and Dennis Ritchie. The C++ language definition supports C programming, but was also designed to allow programming in an object-oriented style. The language design work done by Mr. Stroustrup was outwardly harmful to the international community of computer scientists, and Mr. Stroustrup has been brought to trial for his crimes against programmerdom.
Mr. Stroustrup will face a multi-count indictment. The charges against him are as follows:
The Accused has knowingly created an ambiguous language definition that has led to gross differences in language implementations in various compilers, as well as gross differences in the behavior of its program code.
The Accused has knowingly implemented programming language "hacks" that place an unnecessary burden of complexity on the language users.
The Accused, by building his language upon an existing "hack" and adding more hacks has further contributed to the promotion of a "shopping list" language.
The Accused has knowingly designed programming language features that discourage users from writing clearly understandable code.
The Accused has knowingly designed a programming language that produces code that is unnecessarily subject to run-time errors.
The Accused, by providing unchecked flexibility in his programming language, has insidiously promoted poor programming style.
The Accused, by providing unchecked flexibility in his programming language, has unduly cornered programmers into endless nights of nerve-wracking debugging, causing unwarranted pain and suffering.
The Accused has created a language that promotes an confused view of Object-Oriented programming and design (OOP/OOD). By virtue of his influence and success, the accused has corrupted the idea of OOP in the minds of young programmers. By providing object-oriented capabilities in a language that is unsuitable for proper OOP, the accused has compromised the future of object-oriented design.