On Fri, Sep 14, 2018 at 3:32 AM, alanfo <alan.f...@gmail.com> wrote: > > 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."
I've seen several people express this idea in different ways. I want to challenge it. I agree that simple is essential. That is not in dispute. If the current design draft is too complex, we can not adopt it as is. However, it does not follow that a 90% solution, whatever that is taken to mean, is acceptable. A 90% solution is frustrating, in exactly the same way that some people find the fact that Go currently lacks generics to be frustrating. That is, for generic programming, Go is already a 90% solution. Some people find the missing 10% to be annoying, frustrating, and confusing. This will continue to happen if we add another 90% solution to the problem. A 90% solution is complex, because by definition it means that there are special cases, complex cases, that do not work as expected. Everybody who learns Go has to learn not only how to implement the 90%, they also have to learn where that 90% stops. A 90% solution is not orthogonal, by definition. Go is in some ways not very orthogonal, but it is orthogonal in this way: all concepts in Go that can be meaningfully used together, work together as one would expect them to. There are no missing elements. When considering changes to the Go language, please do not settle for a 90% solution. Ian -- 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.