Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!apple!netcomsv!jls From: jls@netcom.COM (Jim Showalter) Newsgroups: comp.object Subject: Re: C++ and waitresses (long) Message-ID: <1991May24.003350.25877@netcom.COM> Date: 24 May 91 00:33:50 GMT References: <2325@media03.UUCP> <13897@exodus.Eng.Sun.COM> Organization: Netcom - Online Communication Services UNIX System {408 241-9760 guest} Lines: 43 >I totally agree. Around here, we call it "mandatory flexibility". >You WILL be flexible, you MUST make these choices, you CANNOT defer >these decisions. I'd be the last person in the world to defend C++, but I'm going to do it now... What keeps your project from adopting a standard that pre-makes these decisions to the maximum extent possible? Like any large and complex language, a style guide seems quite appropriate. You can even use tools to enforce whatever guidelines you come up with. Before I get flamed that guidelines are inflexible, let me add that all guidelines should be just that--GUIDES, not unalterable mandates. A common guideline is "Thou shalt not use GOTOs", and generally this is superb advice. Once in a while, though, you NEED a stinking GOTO to meet some too-tight performance constraint or to greatly simplify (yes, simplify) some arcane control structure. So, the right way to write this guideline would be "Thou shalt not use GOTOs in the default case, and in rare cases thou shalt use a GOTO after approval by some XYZ committee via waiver ABC". >Glad to hear somebody else feels this way about the Emperor's New >Language. I've been using it for a year now, and I still think it >sucks. Where's my garbage collection? Where's my exception handling? >Where's my generics? Where's my type-safe down-casting? Why do I get >the feeling that the designers always had "fast" as their first >priority and "useful" as their second priority? To be fair (I can't believe I'm doing this), I think Stroustrup did a remarkable job considering he needed to maintain compatibility with C. Of course, that means the putty shows pretty badly in the places where he had to graft things together the best he could, and it also means that some stuff just doesn't work right. As for the garbage collection, you're supposed to implement it yourself in your constructors and destructors. Get to work. ;-) (P.S. You want exceptions and generics? You a closet Ada geek, or what?) -- **************** JIM SHOWALTER, jls@netcom.com, (408) 243-0630 **************** *Proven solutions to software problems. Consulting and training on all aspects* *of software development. Management/process/methodology. Architecture/design/* *reuse. Quality/productivity. Risk reduction. EFFECTIVE OO usage. Ada/C++. *