d unpopular why is

monkyyy crazymonkyyy at gmail.com
Mon Jun 20 14:04:25 UTC 2022


tldr: std.containers is bad.

D at its best is a cleaned up d with extensive meta programming. 
Of the meta-programming paradigms most important for genetic code 
is probably templates and iterators.

Why are templates with an iterator concept important, well citing 
Alexander Stepanov era arguments and stl, you can separate out 
algorithms from data structures and have n^2 implementations for 
n*2 blocks of code, because every data structure with every 
algorithm should just fit together nicely. BUT that's only true 
***IFF*** data structures and algorithms are roughly balanced.

Between std.algrothm, std.range, std.array, etc. I estimate 
there's probably 100 useful algorithms, std.containers defines 
5.(And I have a low opinion of them); 100 * 5 isn't balanced in 
the slightest, like maybe if there were 20 there be 10 useful 
ones.

As it stands using the std effectively probably means that:
1) your willing to learn templates
2) your willing to write data structures
3) you learn to complexity of the std take on d's ranges
4) it isn't easier to just use slices and aa everywhere(making 
the template hell that std made, probably less effective than 
writing 2 versions of every algorithm with much less templates)

That's a high upfront cost, and an ongoing cost of writing the 
data structures.


More information about the Digitalmars-d mailing list