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:
- your willing to learn templates
- your willing to write data structures
- you learn to complexity of the std take on d's ranges
- 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.