Can D used for BIG-HUGE projects?

sighoya sighoya at gmail.com
Mon Dec 21 20:16:24 UTC 2020


On Saturday, 19 December 2020 at 09:13:00 UTC, Godnyx wrote:
> I've find a comment in a post comparing C++ with D and someone 
> said that D can't be used for big projects cause you will face 
> problems with it and the community nobody will help you other 
> than "just don't use const",

This relates mostly, I think, to using const in class 
inheritance. But using them in functions makes pretty sense.
Part of the problem D's initial design as a mutable language like 
C, C++ or Java. For instance equals in Object check on mutable 
values, but because equals doesn't change any objects their 
params should be made const, but that wasn't possible afterwards 
due to backward compatibility?
Here are some nice links (the last is a discussion about known 
issues):

https://dlang.org/spec/const3.html
https://dlang.org/articles/const-faq.html
https://forum.dlang.org/thread/2735451.YHZktzbKJo@lyonel

>"we haven't developed a concensus yet",

I don't know exactly to which context this refers, nevertheless I 
could imagine it refers to the future direction of D. We have a 
new project leader atila neves, maybe he knows more about that.

>"we can't convince Walter"

D powerful but conservative these days regarding feature 
implementations that change the lang. This can be good or bad. 
Most of the time, I feel this is right (especially relating to 
D's simple grammar), but not always. But this is an issue in each 
language these days and D don't want to become the next C++.




> I'm planning to use D for big projects in the future and if I'm 
> gonna have problems with that, I would like to know why. Also 
> are there any big D project (rather than Dub and the compilers 
> themselves of course)

Is it possible to develop big projects in D?
yes

Are there any problems to deal with?
yes, like in any language.
For D, I would first define a suitable convention how should be 
developed, i.e. which concepts should be used.
I find this to be important because D offers many ways to 
implement algorithms.
Did the project tend more to OOP or more to generic programming 
or to a mix of boths?

It depends further on your needs, when you are interested in 
speed and control, Dlang is the right choice.

It also depends on library support, does D offer the lib I want? 
When not, can I link my D app against C++ lib (yes) and what are 
the costs to deal with C++ libs+headers or what are the costs to 
write it from scratch in D?
Note that D offers some support for C++ integration in the 
language.

This is often in Java as Java has everything and is platform 
independent whereas D and C++ libs need to be compiled. This 
works good in D but is horrible when you compile a C++ project 
from source in case you can't acquire any binary.

Maybe you should write something about your needs for your big 
project or is this a general question?

If so, D can do it.



More information about the Digitalmars-d mailing list