I like dlang but i don't like dub

Ali Çehreli acehreli at yahoo.com
Sun Mar 20 14:51:38 UTC 2022

On 3/20/22 05:27, Adam D Ruppe wrote:

 > So if it just coincidentally happens to be the same code, I'd actually
 > rather copy/paste it than import it.

This is very interesting because it is so much against common 
guidelines. I first read about such copy/paste in a book (my guess is 
John Lakos's Large Scale C++ Software Design book because my next 
example below is from that book.) The author was saying exactly the same 
thing: Yes, copy/paste is bad but dependencies are bad as well.

I was surprised by John Lakos's decision to use external header guards. 
In addition to the following common include guard idiom:

// This is foo.h
// ...
#endif // INCLUDED_FOO_H_

He would do the same in the including modules as well:

// This is bar.c
#include "foo.h"
// ...

Such a crazy idea and it is completely against the DRY principle! 
However, according to his measurements on hardware and file systems at 
that time, he was saving a lot of build time. (File system's reading the 
file many times to determine that it has already been included was too 
expensive. Instead, he was determining it from the very include guard 
macro himself.)

Those were the first examples when I started to learn that it was 
possible to go against common guidelines.

I admire people like you and John Lakos who don't follow guidelines 
blindly. I started to realize the power of engineering very late. 
Engineering almost by definition should break guidelines.


More information about the Digitalmars-d-learn mailing list