It's now more than a fortnight since the Go 2 Draft Generics Design was 
published and, like many others, I have spent considerable time:

1. Steeped in discussions about the draft.

2. Reading feedback papers by others (Roger Peppe's are particularly 
illuminating) most of whom share my opinion that 'contracts' are 
unsatisfactory and should be replaced, amended or simplified in various 
ways.

3. Attempting to devise a workable alternative to contracts (as envisaged 
in the draft) myself.

I was then brought back to reality by this post by Robert Engels in the 
'Generics - Why contracts?' thread:
 
"As I’ve said elsewhere, a SIMPLE to use and understand solution that 
covers 90% is better than a complex one to cover 100% IMO, and fits in well 
with the rest of Go design. Go leaves out a lot - and it's a good choice."

This convinced me that the draft design itself and many third party 
proposals (including my own) were too ambitious and what we needed was 
something much simpler that gave us 90% coverage and which everybody could 
understand. 

So I've added a simplified proposal to the feedback page which I feel meets 
this more limited aim. For anyone interested, here's the link:

https://gist.github.com/alanfo/fb2438f376dac0db3be5664702f39aab

Although the new proposal is largely a simplified version of my 'full fat' 
proposal, the paper itself is much more comprehensive as I've included 
notes on why I think certain contracts should be built-in (but not others) 
and have also tried to address the problems that were raised in the draft 
design and overview papers themselves. 

Any comments or constructive criticism are of course welcome.

-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to