Preventing .init for Archive struct, Programming in D, page 295

monkyyy crazymonkyyy at gmail.com
Fri Sep 12 19:22:31 UTC 2025


On Friday, 12 September 2025 at 18:19:46 UTC, Brother Bill wrote:
>
> Is there a 'style' guide for D, such as: Do this, Don't do 
> that, avoid this, etc.?

Someone will link the "offical" style guide, but thats nothing id 
follow

> "There are these features in the language, but you should avoid 
> them, unless absolutely necessary", and then saying how many 
> developers use language features when unnecessary?

Id avoid, annotations (all of them), delegates, classes, manual 
allocating extremists of all 3 flavors, multithreading (if you 
must, keep it functional and hope std.parrell works)

Solve your control flow in ranges, and if its a nightmare of a 
problem unit test them with plain old data types like ints.

> I am trying to understand the clean way of using D.

I suggest chasing "Expressive" not clean

> Most computer languages, such as Eiffel, don't even consider 
> adding this feature of preventing construction.
> Clearly, D has them for 'good' reasons.

Im pretty sure your just factually wrong in this case, I think 
disable this is well known accidental feature, and it caused 
allot of problems in the std trying to work around it. And 
well... thats not how you should relate with how the compiler is 
made in general; to this day walter doesnt do template 
metaprogramming and they were added halfway into the compilers 
life span(d was a c with classes compiler for 10 years before 
walter got annoyed with the c spec committy); and its still a new 
frontier in general.

The compiler isnt a clean well made work of art; its 30 years of 
hacks and experiments with several features being complete 
accidents; with 50/50 odds on being formalized. Templates *in 
general* are not understood, their turing completeness was an 
accident in c++.


More information about the Digitalmars-d-learn mailing list