No header files?

AJ aj at nospam.net
Thu Oct 22 02:19:03 PDT 2009


"Walter Bright" <newshound1 at digitalmars.com> wrote in message 
news:hbp2a5$1m2a$1 at digitalmars.com...
> Steven Schveighoffer wrote:
>> On Wed, 21 Oct 2009 19:21:32 -0400, Walter Bright 
>> <newshound1 at digitalmars.com> wrote:
>>
>>> Yigal Chripun wrote:
>>>> The C/C++ way of headers + lib has problems which D inherited as part 
>>>> of the same (broken) design.
>>>
>>> Hardly, as:
>>>
>>> 1. you don't need to use header files in D at all
>>>
>>> 2. you can automatically generate .di files, guaranteeing they are not 
>>> out of sync
>>
>> That second one is not true if you are doing incremental building (ever 
>> use a build tool that occasionally screws up and doesn't rebuild 
>> something?).
>
> At least it is possible to automate. You cannot automate C/C++ header 
> files, so they are inherently unreliable.
>
>> In addition, the only *true* reason to use .di files is to hide 
>> implementation
>
> It's also to speed up compilation.
>
>> -- which the auto generator does *not* do.  So you are back to hand 
>> editing and back to sync problems.
>
> If you need to hide implementation, I suggest instead redesigning your 
> interface to use "interface" types, or use the pimpl idiom.

And jettison "close to the metal" in one fell swoop?

>
>> IMO .di files are as horrible as header files in C and I avoid them like 
>> the plague.  I'd hate to have to use them, but so far, I haven't had any 
>> public release of proprietary code, so no need for them yet.
>
> I agree they aren't necessary most of the time, I don't agree they are 
> even as close to being as horrible as C headers, unless you are 
> hand-editting them. If you are doing the latter, I suggest something may 
> have gone wrong with the design of your interface.

That's a very, very paradigmical view/statement. 





More information about the Digitalmars-d mailing list