On Thursday, 30 March 2017 03:15:33 UTC+3, Will Faught wrote: > > Egon: > > >See > https://docs.google.com/document/d/1vrAy9gMpMoS3uaVphB32uVXX4pi-HnNjkMEgyAHX4N4/edit#heading=h.j8r1gvdb6qg9 > > I don't see the Implicit Boxing section point out that this is what > happens now when you shoehorn everything into interface{}. >
Because it can also be implemented in other ways. > In this sense, I don't see a performance downside for boxing generics > compared to the current state of things. > As said... there is a performance upside for some other approaches. > >You can also use copy-paste, code-generation. > > I was referring to the downsides of copy/paste here: "You could have the > same opt-in performance tax in the form of bloated binaries/slow builds as > well, but lack of an official debugger right now is predicated on builds > being fast, so that seems like a no-go." > The builds being fast are necessary for many things, mainly iterating on features, tests. > > >It would be slower than copy-paste and generated approaches. > > It wouldn't be slower than interface{}, right? > Yes. > > >When generics are added, then they will be (almost) impossible to avoid. > So the opt-in "slow builds" isn't really opt-in unless you really try... > > By opt-in, I meant the code we write ourselves. In shared code, it would > be no more impossible to avoid generics than interface{} is now, which > doesn't seem to have been a problem. If there's a case where the > performance is too slow, one could always copy/paste the code and remove > the generics from it. > Copy-paste wouldn't remove generics used in the standard-library... i.e. it's hard to avoid the compile-time overhead. I agree, it's possible, but unlikely that anyone will do it. > > On Tue, Mar 28, 2017 at 12:28 AM, Egon <egon...@gmail.com <javascript:>> > wrote: > >> On Tuesday, 28 March 2017 07:56:57 UTC+3, Will Faught wrote: >>> >>> Something I've never seen addressed in the generics tradeoffs debate >>> (not saying it hasn't been, but I haven't see it personally) >>> >> >> See >> https://docs.google.com/document/d/1vrAy9gMpMoS3uaVphB32uVXX4pi-HnNjkMEgyAHX4N4/edit#heading=h.j8r1gvdb6qg9 >> >> is that without generics, you're forced to use interface{} >>> >> >> You can also use copy-paste, code-generation. >> >> >>> which just boxes the values anyway. So you're already paying a >>> performance cost for type-agnostic code without generics. And if you >>> copy/paste code instead of boxing, you're just bloating the size of the >>> binary like generic templates would. It seems to me if boxing generics was >>> added, there wouldn't be a downside: >>> >> >> It would be slower than copy-paste and generated approaches. >> >> >>> if you didn't want to pay the performance cost of boxing generics, then >>> don't use generics; if you can pay the cost, then use them, and it won't >>> perform any worse than it would now with interface{}, and perhaps could >>> perform even better, depending on the semantics and implementation. You >>> could have the same opt-in performance tax in the form of bloated >>> binaries/slow builds as well, >>> >> >> When generics are added, then they will be (almost) impossible to avoid. >> So the opt-in "slow builds" isn't really opt-in unless you really try... >> >> >>> but lack of an official debugger right now is predicated on builds being >>> fast, so that seems like a no-go. >>> >>> On Friday, March 24, 2017 at 12:10:08 PM UTC-7, Mandolyte wrote: >>>> >>>> The recent survey reveled that generics was thing that would improve Go >>>> the most. But at 16%, the responses were rather spread out and only 1/3 >>>> seemed to think that Go needed any improvement at all - see link #1. I >>>> think most will concede that generics would help development of >>>> algorithms, >>>> libraries, and frameworks. So in the spirit of friendly rivalry, here is a >>>> list of algorithms developed for Swift: >>>> >>>> https://github.com/raywenderlich/swift-algorithm-club >>>> >>>> As you might guess, it is chock-full of generics. Yeah, I'm a little >>>> envious. :-) enjoy... >>>> >>>> >>>> >>>> #1 https://blog.golang.org/survey2016-results >>>> >>> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "golang-nuts" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/golang-nuts/VbWfF865C3s/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> golang-nuts...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- 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.