Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!tut.cis.ohio-state.edu!att!dptg!ulysses!andante!alice!bs From: bs@alice.UUCP (Bjarne Stroustrup) Newsgroups: comp.lang.c++ Subject: Re: Linkage of static members Summary: blast against misconceptions and misrepresentation Message-ID: <11010@alice.UUCP> Date: 3 Jul 90 13:31:52 GMT References: <10460@batcomputer.tn.cornell.edu> Organization: AT&T Bell Laboratories, Murray Hill NJ Lines: 49 Piercarlo "Peter" Grandi writes: > I seem to understand that C++ is being developed with a "let's try this > feature" approach C++ wasn't developed that way. I just happen to hate pompous preachers that screams their bogus ``principles'' from the rooftops as the one and only truth. I guess I can be blamed for not formulating the ideas underlying the C++ features in a few catchy phrases, but C++ is not and never was just a random bag of features. I set out to create a language that would allow me to apply the notions primarily borrrowed from Simula of a program as a model of some aspect of reality and a class as the concrete representation of a concept of a concept in the program. This is supported by notions of data hiding and encapsulation primarily borrowed from the operating systems world. To make that goal feasible/affordable I adopted the principle that what you don't use you don't pay for and the notion that a program must be able to cooperate effectively with ``the rest of a system.'' That is, zero overhead use must be possible and that a C++ program is part of an open and extensible system. These latter principles (constraints, rather) is what makes C++ usable outside the academic ghetto and outside the personal workstation sub-culture. > I was recently rereading Stroustrup's paper on MI in the Usenix journal. > He has an appendix rejecting one flavour of delegation, an extremely > elegant and C-ish technique, because users were confused by it. Instead > of thinking that maybe the proposed flavour of delegation was wrong, he > throws away delegation entirely, So I should dogmatically have kept it in despite it causing grief? Or maybe I should have dropped everything else to figure out exactly why it was wrong and fixed it? The latter was certainly tempting - because I liked the notion of delegation and still do - and I tried unsuccessfully for a while. However, I suspect you underestimate the time and effort needed to get everything done. I simply never found the time to explore delegation further. Also, please read that note again. I most certainly suspected that it was the flavor of delegation tried - rather than the general concept of delegation - that was wrong and I said so. That design of delegation for C++ was an experiment that failed. I documented that. Would you have preferred me NOT to document the failure? That would not only have allowed people to keep their preconceived and untried notions (kept them happy) but also allowed me to wrap myself in a mantle of infallibility (there are no shortage of people that likes to do that - it keeps them admired and happy). To my mind that would have been fradulent, however, and would undoubtedly have led someone to repeat my mistakes.