Failure to provide a standard “collections” package would be a huge mistake. It 
is certainly a top 3 reason for the success of Java. 

> On Mar 16, 2021, at 6:52 AM, 'Axel Wagner' via golang-nuts 
> <golang-nuts@googlegroups.com> wrote:
> 
> 
> The very detailed design doc is linked in the proposal issue. That's the 
> design that is currently targeted for implementation. It is possible that it 
> still changes in a couple of details, but you should assume that this is 
> mostly what's going to land, eventually.
> 
> As for implementation, there are three design docs describing possible 
> approaches:
> https://github.com/golang/proposal/blob/master/design/generics-implementation-dictionaries.md
> https://github.com/golang/proposal/blob/master/design/generics-implementation-gcshape.md
> https://github.com/golang/proposal/blob/master/design/generics-implementation-stenciling.md
> I don't think any of them has been committed to. Personally, I would suggest 
> leaving the implementation decisions up to the people doing it. The semantics 
> (from the general design doc) are really what's interesting for the community.
> 
> 
>> Once generics are there I guess there will be a race between a lot of 
>> libraries with generic collections, which will be first, have the best API, 
>> most functionality, etc.
>> 
>> Therefore I wonder whether it would make sense for the Go core development 
>> team to define a couple of generic interfaces for sets, lists, queues, maps, 
>> etc. that are part of the standard library to prevent some uncontrolled 
>> growth of all kind of generic collection libraries from setting in. So I 
>> wanted to ask whether there are any plans that go in that direction.
> 
> I don't think there are many specific plans. I'm also not sure it's a good 
> approach to the problem.
> Defining a general API for these things is surprisingly hard - there are many 
> different use-cases with different requirements. For example, maps can be 
> implemented as hash sets or trees, requiring different constraints on the 
> contained type. They might remember the order of insertion or they might not. 
> Defining an API for maps would thus require us to decide what of these cases 
> to cover - but they might be mutually exclusive. As the constraints and 
> methods they offer are different, they can't really be put into the same 
> abstraction.
> 
> So for most cases, it seems better to let the community design options and 
> then, if it turns out we need standardization, decide based on the patterns 
> that seem most needed.
> 
> In general, I would also advise to view the process as a slow one. We are 
> still at least a year away from an actual implementation of generics - if we 
> line up a lot of changes, to the stdlib or to how generics will work, for 
> immediate inclusion after that, we are likely to make decisions we regret. 
> Note, in particular, that applying generics to all code out there and thus 
> fundamentally changing the feel of the language is probably the single 
> largest objection to adding them in the first place. It seems prudent to be 
> considerate with that.
>  
>> 
>> Thanks, Archilbald H.
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "golang-nuts" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to golang-nuts+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/golang-nuts/f5be31c7-1bba-41de-acae-ea46b4c744f3n%40googlegroups.com.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/golang-nuts/CAEkBMfHG0wZ-qX_E3ZAhmKvS8FAESHpcjHz8iKEK6q1d3s5Wnw%40mail.gmail.com.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/ACAD1B96-010D-45DE-BECB-E02C46407E75%40ix.netcom.com.

Reply via email to