Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!pdn!tscs!tct!chip From: chip@tct.uucp (Chip Salzenberg) Newsgroups: comp.lang.c++ Subject: Re: Co-ordinating the polymorphism in C++ Message-ID: <27BC17C4.6304@tct.uucp> Date: 15 Feb 91 17:17:56 GMT References: <1991Feb13.011731.10114@gpu.utcs.utoronto.ca> <27B94CC2.5A6C@tct.uucp> <1991Feb14.063522.27655@gpu.utcs.utoronto.ca> Organization: Teltronics/TCT, Sarasota, FL Lines: 78 [ This article is almost appropriate for comp.object. Please redirect followups appropriately, according to their content. ] According to craig@gpu.utcs.utoronto.ca (Craig Hubley): >In article <27B94CC2.5A6C@tct.uucp> chip@tct.uucp (Chip Salzenberg) writes: >>Good. If I wanted a revolution, I'd move to Lithuania. > >Not to be a killjoy, but that isn't all that funny. People are dying there. Sigh. I know all about Lithuania's deathly serious struggle for independence. Here's some free advice: Enjoy humor where you find it, even if you find it in war. Living with a frown doesn't help anyone. My point is only that tired old observation that ideology is a hindrance to intelligent choice. If I wanted a "revolution," I wouldn't be programming. Technical fields can do without Lenins and Castros. C++ is very much a pragmatic language, not an ideological one. For example, the language is extensible, but not mutable: you cannot redefine operations that already have a meaning in the base language. Why? Doesn't that reduce the conceptual purity of the type space? Sure. Who cares? Not me. In a related vein, C++ is almost entirely compatible with C. Why? Is C is a particularly good basis on which to build the pure essence of object orientation? Of course not. But with the huge number of C programs and C programmers in existence, it was the natural choice for a language that aims to enhance existing software development efforts without the necessity of starting over. The moral of these examples is that sloganeering will get you nowhere. The market has voted with its feet: Pragmatism wins the day. Point out concrete benefits of specific proposals, and people will take you seriously. Natter about revolutions, and they won't. >What you want is irrelevant. If building reusable software components is >more economically sustainable than building custom parts every time you >build an application, you will soon be out of a job ... That statement is only true if (1) there exists a method of combining pre-made software components into complete applications without programming, (2) that method works significantly better than whatever I'm doing at that future time, (3) my competition is using it, and (4) I'm not willing to change. *IF* (1), (2) and (3) are satisfied, you can bet that (4) won't be. >Neither gunmakers nor cotton processors nor anyone else who had mastered >a "craft" made the adjustment to "industry" - they were simply replaced >by others who had mastered a more predictable and reproducible process >for building parts. That's fine as a history lesson. I'm under no delusions that the way I work is the perfect method of software construction. But misapplied history as as bad as forgotten history. And I have yet to see any evidence whatsoever that the craft of programming is endangered by the spectre of component assembly. I'll believe it when I see it, but I don't see it. (Somebody has to write the modules, after all!) Please remember that I am fond of writing reusable code, simply as a way to avoid unnecessary work. Otherwise, I wouldn't have made the effort to switch myself and my co-workers from C to C++. But agglomeration of modules as described by Objective-C zealots is not the be-all and end-all of programming techniques. It's just another technique, to be used or ignored according to the good judgement of the experienced craftsman. >I am only suggesting that building these parts is easier if there is a way >to explicitly control the behavior presented to the (re)user of a component. A vague statement such as that is impossible to disagree with. It's the talk of "revolutions" that gets my goat. -- Chip Salzenberg at Teltronics/TCT , "I want to mention that my opinions whether real or not are MY opinions." -- the inevitable William "Billy" Steinmetz