From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23712 invoked by alias); 4 Jan 2003 20:55:05 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 23705 invoked from network); 4 Jan 2003 20:55:05 -0000 Received: from unknown (HELO mcncgw.mariani.ws) (64.3.144.100) by 209.249.29.67 with SMTP; 4 Jan 2003 20:55:05 -0000 Received: from chaincast.com (IDENT:gianni@bulli.mariani.ws [216.98.238.112]) by mcncgw.mariani.ws (8.11.6/8.11.6) with ESMTP id h04KxIu11003; Sat, 4 Jan 2003 20:59:19 GMT Message-ID: <3E174A16.6070605@chaincast.com> Date: Sat, 04 Jan 2003 20:58:00 -0000 From: Gianni Mariani Reply-To: gmariani@chaincast.com Organization: Chaincast, Inc User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2a) Gecko/20020910 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Robert Dewar CC: gcc@gcc.gnu.org Subject: Re: c++ "with" keyword References: <20030104190947.9593BF2DB5@nile.gnat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2003-01/txt/msg00168.txt.bz2 Robert Dewar wrote: >>I favour code maintenance. I don't like fixing bugs only to introduce a >>whole bunch of new ones that are hard to find. This is probably my >>largest concern when it comes to writing code. >> >> > > >But once again, if you fix a bug by introducing a new name, then you never >introduce a new "bug", simply instances of illegalities that are trivially >fixable (you can even write a trivial tool to fix them if you really find >it that hard). So they are not "hard to find", since they generate clear >diagnostics, and they are not "hard to fix". > > I argue that it is not trivially fixable. In the case of a third party library, it is virtually impossible to guarentee that introducing a new member will not break any clients of the library. This is why I like "orthogonality" of code - the act of making a change in one facet does not introduce changes in another. The "with" concept breaks orthogonality in arbitrary ways. Forthwith remove with prejudice. (sorry) G