preparing for const, final, and invariant
Dave
Dave_member at pathlink.com
Mon Jun 4 17:54:49 PDT 2007
Bill Baxter wrote:
> Jarrett Billingsley wrote:
>> "Charlie" <charlie.fats at gmail.com> wrote in message
>> news:46649DD9.1010801 at gmail.com...
>>> I'm appalled, both that this is pretty much assured to be in D , and
>>> that the community seems to be behind it. I thought that the reason
>>> Walter didn't want const was because of its added complexity , so
>>> instead he introduces _3_ new keywords ? Does no one else feel like
>>> this is using a machine gun to kill a fly ?
>>>
>>> I understand the need for immutable data when writing libraries, but
>>> 'scope const final MyClass myInstance' ?!? Theres got to be a better
>>> way.
>>>
>>> I know this sounds over-dramatic, but if this is the direction D is
>>> headed, then count me out. I loved D because if its elegant and
>>> powerful simplicity, I think D has strayed way to far from its
>>> original goal.
>>>
>>> If anyone feels like _this_ implementation for const ( not the
>>> usefulness of const mind you ) is not for D, then please speak up or
>>> we all might end up losing our favorite language.
>>>
>>
>> I was beginning to think I was the only one. It doesn't seem any
>> easier than the C++ style const-ness at all. If anything it's more
>> complex. Instead of "here a const, there a const, everywhere a const *
>> const" it seems like it'll be "here a const, there a final, everywhere
>> an invariant scope int[new]" :P
>
> I think we should wait and see how it comes out. Of course expressing
> your doubts and misgivings is a good thing too, but, yeh, let's try not
> to be over-dramatic. Naturally the discussion here tends to revolve
> around the cases that aren't obvious or straightforward, because the
> obvious, easy cases need no discussion. So it's natural that it ends up
> sounding like "everywhere an invariant scope int[new]", but I suspect in
> typical code such things will be uncommon.
>
Recalling the resistance that Walter originally had to adding const (the 'loose' semantics of C++
const and the concern about "littering" D code w/ const), I too think it will be wise to see what
Walter has come up with. I'm pretty confident it will be both better and less onerous than C++ const
for a majority of situations given the quality of design (of D) in other areas.
> I'm not sure about this int[*] thing though. That will probably require
> a lot of changes whether int[*] ends up meaning resizeable or not. But
> come on, you have to admit that slices are a little dicey, and giving
> the compiler a way to detect bogus usage of a slice will be good.
> They're supposed to be a safer alternative to naked pointers, but
> instead they introduce their own equivalently dangerous set of gotchas
> due to the ambiguity of ownership.
>
> Other than that, I think pretty much all of the changes Walter has
> mentioned will be ignorable.
>
> --bb
More information about the Digitalmars-d-announce
mailing list