On Wed, Dec 23, 2020 at 1:17 PM Martin Hanson <greencopperm...@yandex.com> wrote:
> @Ian, for more than 10 years we have managed nicely without generics. > Of course, this doesn't answer how we'd have managed *with* them. We did manage for decades without general purpose CPUs. We did manage for several decades without functions, coroutines or hashtables. We did manage for decades without portable programming languages or multi-tasking operating systems. We managed for many decades without the internet or the world wide web. In hindsight, though, "we managed so long without them" doesn't appear to be a very convincing argument to not have them today. > So what is the real true-life problems that validates adding generics > to Go? I haven't seen a single example, seriously not one! I have only > seen useless examples like the one Ian gives in the talk, which of > course I know only serves as an example, but we need real life problems > to solve, not theoretical ones. > To me, this suggests that the issue isn't that you haven't seen enough examples, but that you haven't found them convincing you that the benefits outweigh the costs. Which is a completely valid position to take. Obviously, lots of other people (at least some of which you, I think, respect professionally) see that differently. Which is also completely valid. So, confronted with that reality, there are many productive ways to react. Some examples are • Try to engage in the design process to keep the cost down (i.e. suggest simplifications to the generics design) • Try to engage in the design process to increase the benefits (i.e. suggest improvements that increase its power) • Accept that it's possible for reasonable people to look at the same problem and proposed solution and agree on what the costs and what the benefits are, but weigh them differently, just as a matter of personal taste or opinion - and thus agree to disagree • Try to change the other persons mind about what the costs or benefits are and how much they weigh Now, that last one *can* be very productive. Especially early on in a discussion, we tend to overlook hidden costs or surprising benefits and having them pointed out can be really helpful. Personally, though, I must say that the generics discussion has been going on for 10 years (and even more, if we don't limit ourselves to Go) and I don't - personally - believe that there is much hidden cost or surprising benefit left to be discovered. And ISTM that swaying someone's mind on them will most likely take more than just outright saying that you don't agree. So, I guess the question really is, what's the goal? Do you want to get the best language? In that case, I'd personally suggest to focus on improving the generics design. Or do you want to convince others that their valuation of costs and benefits is inaccurate? In that case, I'd personally suggest to try and find new costs or benefits - but keep in mind, that 10 years is a lot of time for a lot of them to already have been mentioned a lot. Or do you just want to be heard as being in disagreement? That's also, of course, valid. What I understand from all of this is that people who are pro-generics are > in reality really talking about something that is *nice to have*, not > something that is seriously needed and this is where I become really > frustrated! I understand this frustration. But it might help to keep in mind that computers are simply nice to have in exactly the same way. And I think there's an opportunity to have empathy with people who *are* in favor of generics. Because just like you are frustrated that generics are just nice to have (i.e. you perceive their actual benefit as insignificant), people on the other side of the aisle might be *just as* frustrated by you, because generics are just slightly more complex (i.e. they perceive their actual costs as insignificant). Your frustration is valid, but so is theirs. As I have said many times now, adding stuff to Go comes with > a heavy price, it opens the door for all the people who have been whining > and complaining about Go for the past ten+ years to add further stuff that > is "nice to have", or change things they keep complaining about, like how > Go handles errors and what not. > > After generics gets added, it's going to be something else next time, and > again and again. The list goes on and on about changes people want to > make to Go. Not real life problems, just so-called "nice to have". > > No, the added and increased complexity I have witness in other > programming languages over the past 3-4 decades, because of exactly > things like this, is absolutely mind blowing. This must not happen to Go! > > -- > 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/17246551608725779%40iva4-6593cae50902.qloud-c.yandex.net > . > -- 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/CAEkBMfFVeWZcnMtWQ3gZNeJ46GUFr68yYZtVa1YNmpQtbV-8yA%40mail.gmail.com.