@Axel Wagner > What about my explanation was dissatisfying? Please do not take my comment to sound combative. You gave me *an* explanation but I was looking for *the* explanation. I was looking more for a design document, discussion, some piece of tribal knowledge. Of course there would be downsides for a different design but I am looking at the way pro-s and con-s were evaluated.
@Roger Peppe Thanx. Quite informative - this gives me a pointer on what happens next and the fact that this behavior is bothersome for other people. Another data point: the catchPanic workaround in Go Standard lib came only in https://github.com/golang/go/commit/97a929aac95301b850fb855e8e2fa8cfbe47ef59 This is post go 1.3 (June 2014) but pre 1.4 (Dec 2014). This means that 4 public releases of Go passed (1.0, 1.1, 1.2, .1.3) before this was implemented. Note the review of the patch https://codereview.appspot.com/4640043 and also the comments. It does not sound like a widely known workaround. If anyone is interested further in this: git log -G'ValueOf.*Kind.*Ptr.*IsNil' gets some more details: 1. It is Rob Pike implementing this 2. Another place where you do not want such failures is in the AST tools: https://github.com/golang/tools/blob/master/go/ast/astutil/rewrite.go#L190 3. Another place json encoding/decoding: https://github.com/golang/go/blob/master/src/encoding/json/decode.go Compare with the Golang specification: 1. Spec started on Mar 2, 2008 - https://github.com/golang/go/commit/18c5b488a3b2e218c0e0cf2a7d4820d9da93a554 by Robert Griesemer 2. First usage of the term is on May 8, 2009 - https://github.com/golang/go/commit/df46b3342ce54129af59e30ff6d9708347f61c75 by Rob Pike 3. https://github.com/golang/go/commit/533dfd62919ecb69a39973cea32d06a1cb166687 on May 13, and https://github.com/golang/go/commit/56809d0ade51d3bbd653ba9e9b7c54e2f4ec5f66 on May 20 by Robert Griesemer stronly corroborate Rob Pike as originator of the terminilogy. For comparison Go 1 was released March 2012. I am really interested in the background of thinking about method sets, whether this behavior was thought of initially or it was just an emerging surprise. Rob has never called this a thing Go got wrong AFAIK. Was it programmers misusing the API that were possible to misuse that caused this implementation? Kind regards: al_shopov -- 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 visit https://groups.google.com/d/msgid/golang-nuts/CAP6f5M%3Dit%2BAnG%3DB3KSFmcftFJ1DEnuEZR7cr6zBmexBNmKkbdA%40mail.gmail.com.