"Walter Bright" <[email protected]> wrote in message news:[email protected]... > Steven Schveighoffer wrote: >> On Wed, 21 Oct 2009 19:21:32 -0400, Walter Bright >> <[email protected]> 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.
