College computer science programs will have the task, during the next few years, of digesting a cohort of incoming students.
College computer science programs will have the task, during the next few years, of digesting a cohort of incoming students who learned C++ as their first programming language. One wonders if remedial programming will overtake remedial writing as a drain on teaching resources.
The college-level advanced placement computer science course switched from Pascal to C++ in 1999and has finally seen the error of its ways. But it will take until 2003 or 2004 to make yet another transition to the language (Java) that should have been adopted in the first place.
The College Board decision is driven by three principles: safety, simplicity and object orientation. The advisory report recommending this change makes a telling distinction between "object-based" and "object-oriented" development. I would call this the difference, respectively, between defining modules that merely fit together and designing frameworks that effectively use inheritance and polymorphism for abstraction. Java, I would argue, surpasses C++ in this respect.
Lest anyone think that Im just being a Monday morning quarterback, Ill repeat what I said about C++ in 1994: "The programming languages featurebeing a superset of Cis a fundamental bug." The College Board report agrees, citing the inability of C++ to prevent or handle errors in using arrays.
Industrial advisory boards also agree, for example, recommending Ada or Modula-2 ("having fewer insecurities and better type checking") for writing the software underlying automotive systems.
The College Boards short-lived adoption of C++ exemplifies a far more general IT management error: the assumption that whats popular must be good. Is it an advantage that more C++ programmers can always be found when needed? Or is it a serious problem that you always seem to need one more?
Peter Coffee is Director of Platform Research at salesforce.com, where he serves as a liaison with the developer community to define the opportunity and clarify developers' technical requirements on the company's evolving Apex Platform. Peter previously spent 18 years with eWEEK (formerly PC Week), the national news magazine of enterprise technology practice, where he reviewed software development tools and methods and wrote regular columns on emerging technologies and professional community issues.Before he began writing full-time in 1989, Peter spent eleven years in technical and management positions at Exxon and The Aerospace Corporation, including management of the latter company's first desktop computing planning team and applied research in applications of artificial intelligence techniques. He holds an engineering degree from MIT and an MBA from Pepperdine University, he has held teaching appointments in computer science, business analytics and information systems management at Pepperdine, UCLA, and Chapman College.