I agree that a big standard library is useful, and that there are areas that 
could be expanded (e.g I think the stdlib should include a `heap` 
implementation). But it only works if there are contributors interested in 
maintaining the modules. For some of the current modules, that's not the case. 
Take a look at `xmldom` and `xmldomparser`. They are used in `0.2%` and `0.5%` 
of projects, they haven't been touched in a long time (`xmldomparser` hasn't 
had a commit in over 2 years), they use outdated naming conventions and so on. 
Since obviously nobody cares about these modules, why are they included in the 
standard library?

Another advantage of Nimble packages is that they are updated independently. 
Updating the stdlib is an all-or-nothing kind of thing. Either you deal with 
all the breaking changes in the compiler and stdlib at once, or you don't 
update at all. This usually means that stdlib modules are very limited in what 
kind of breaking changes can be done - this is why we have 
`parseopt`/`parseopt2`, `re`/`nre` and so on. Because of this, bad design 
choices in standard libraries has a tendency to stay around for ever (examples 
of this can be found in any popular language).

Reply via email to