I think there is an argument to be made for "something super basic in `std/` 
that could maybe be a B-tree" and _something else_ with a lot of knobs/levers 
when people know they want a hash table and want to be able to tune it. In 
fact, that might even be what @Araq has a draft of.

I am also fine with `lptabz` or something like it moving into `std/` and in 
general a "big std/". There are many other features of `lptabz` that might be 
popular. While I understand that Nim-core is overwhelmed and there are over a 
half dozen package managers, brand new users are probably better served not 
having to learn anything beyond "import std/xyz" and that aspect of UX also 
matters.

People praise Go's stdlib and used to praise Python's (and now instead struggle 
with requirements.txt and Docker and ...). Linus long ago lost track of all 
things going on in the Linux kernel and instead has a "trusted lieutenant" 
model. At least since C++ STL & Java, I have thought "stdlibs sell prog.langs". 
Maybe things have shifted to "package managers sell prog.langs" { and that 
shift started with CTAN/CPAN (around the same time as STL/Java)! Hah! -- In 
human affairs, "all of the above" is often overlooked, yet more accurate than 
any one thing }.

Anyway, there are no absolute answers to any of this -- delegation saves so 
much/allows scaling but trust sure is tricky! It's all an infectious cluster of 
[Wicked Problems](https://en.wikipedia.org/wiki/Wicked_problem) sometimes 
called ["coordination games"](https://en.wikipedia.org/wiki/Coordination_game) 
which may be simply insoluble. In terms of your expectations, I think it goes 
against current thinking of instead trimming the stdlib as much as possible.

Reply via email to