C ++ directly supports a variety of programming styles. In this, C ++ deliberately differs from languages designed to support a single way of writing programs. This paper briefly presents key programming styles directly supported by C ++ and argues that the support for multiple styles is one of its major strengths. The styles presented include: traditional C-style, concrete classes, abstract classes, traditional class hierarchies, abstract classes and class hierarchies, and generic programming. To provide a context for this overview, I discuss criteria for a reasonable and useful definition of ”object-oriented programming.” 1 Introduction There are many tools and techniques that can help in our effort to build useful, economical, and maintainable systems. To complete ambitious and complex projects, we rely on a wide variety of techniques and tools that must work together. The title of this paper singles out a programming language†. However, the real topic is programming, or if you prefer a longer formulation, the design and implementation of systems. A programming language is just one of the means by which we try to achieve our goals. The definition of ”object-oriented programming” is no longer a popular topic of discussion at major conferences. A practical definition of ________________ †This paper is primarily based on an invited talk with the same title given at OOPSLA’95 in Austin Texas. The style of this paper is clearly affected by its origins as a relatively short talk. I would have preferred this paper to be either much longer or much shorter, but I did not have the time to do either. ”object-oriented programming,” ”object-oriented analysis,” ”object-oriented design,” ”object- oriented technology,” etc., is, however, a burning issue for people who want to turn the oft-repeated promises made for techniques and languages called ”object-oriented” into reality in everyday projects. It has become a practical rather than academic topic of discussion. What is ”object-oriented technology?,” what benefits can be expected from it? at what risks?, how do those techniques, benefits, and risks compare with those associated with alterna- tives? A systems builder trying to explain to an accountant why money should be spent for tools supporting object-oriented techniques needs more than a statement to the effect that ”object-oriented is great” or that ”really great techniques are really object- oriented.” You simply cannot ask someone to bet their company’s future on vague promises phased in ill-defined terms. Nor is a well-polished and logically coherent semi-mathematical treatment of the…
Download Why C ++ is not just an Object-Oriented Programming Language.Pdf
0 comments:
Post a Comment