|
|
|
|
|
by Corazoor
1842 days ago
|
|
Certainly not the sole reason, but the mix of language features puts it into a weird spot:
You have great control over memory layout and can easily embed assembler, which would be perfect for performance sensitive software like games. Yet "default" D comes with a garbage collector and - more importantly - language features that require said GC. If you want to go the noGC route, you have to refrain from using certain language constructs, which puts you in a similar spot as with C++... And if you actually want a GC, you might find the simple linear allocator of D to be lacking... D is a very cool language, but it is also a lot like QTified C++... Which, well, already exists... |
|
A whole two features:
1. concatenating strings using the ~ operator. You can concatenate strings using malloc if you prefer.
2. closures that escape the context of the function they enclose. Instead, write a struct with fields representing the values, and make the lambda a member function of that struct. Allocate the struct instance any way you wish.
The GC is a convenient feature with lots of nice uses. Programming in D is not impaired by not using it.