You are very welcome to voice your opinion. Including the opinion that
generics should not be added to Go.
What you shouldn't do - and that's all I criticized - is to tell people who
disagree with you on that to go away.

I also think it's not wrong to point out that claiming the original
designers of Go left out generics on purpose is, at least, distorting the
documented historical facts. Or to point out the contradiction in saying,
on the on hand, that we should listen to the original designers about what
does and does not belong into the design of Go and, on the other hand,
telling one of those exact designers that they are ruining the language.

I'm genuinely sorry if you feel you can't voice your opinion based on my
message. But as best as I can tell, that is a reaction to a) me pointing
out exclusionary language or b) me pointing out logical problems with the
arguments presented.
And if it's a) I must insist that the paradox of tolerance
<https://en.wikipedia.org/wiki/Paradox_of_tolerance> informs my decision
here - if I can only choose between people feeling excluded for wanting
generics or people feeling excluded because they can't make those people
feel excluded, I will have to choose the latter. And if it's b) I must
wonder why that isn't exactly the kind of technical, logical argument y'all
are looking for.

To be clear, again, I have plenty of problems with generics in general and
with the current stage of the design in particular. For example, I am on
record as disagreeing with making usage of operators on type-arguments a
central part of the design - I feel that it creates most of the
complication in the design and I don't feel the benefit outweigh the cost.
But I understand and respect Ian's choice on that. It's a technical point
of contention and I politely disagree with him and live with that.

I've also said, plenty of times, that I think the main use-case for
generics seem to be type-safe containers and that I feel the benefit of
type-safety there is overstated. And experimenting
<https://blog.merovius.de/2020/07/20/parametric-context.html> with the
current design for a while reinforced my impressions that some design
decisions (like not allowing additional type-parameters on methods) hamper
at least *some* of the non-container use-cases where Go could benefit from
more type-safety. However, again, I understand why those decisions where
made and I don't know of a way to solve these issues, so I'm left with
accepting that they might be the best possible solution, even if I don't
like them.

As it currently stands, I'm undecided if I like generics in Go and probably
lean slightly against, given the current design (and would probably lean in
favor, with some changes). The decision is not up to me though and I'm fine
disagreeing with whatever decision is made - if it comes to that. And
living with it.

I can't imagine any of these opinions about generics to earn me scorn or
reprimands based on the CoC. Because the issue isn't *disagreeing* with
generics or with voicing that opinion. It's *how* you voice it that matters
and if you do so in a respectful and technical manner.

PS: Just make clear that I'm not claiming I'm perfect: I have, plenty of
times in the past, said myself that people who want generics should just
use Java or C++. I'm not proud of saying that. It was a mistake. I've done
plenty of those and I will make plenty of them in the future and I can just
hope I learn from them.

On Tue, Dec 22, 2020 at 1:22 PM Space A. <reexist...@gmail.com> wrote:

> Your message is perfect example of why most of the ppl who have their own
> different opinion and who have never been listened to or given that ability
> will just shut up, and stay away.
>
> вторник, 22 декабря 2020 г. в 14:01:53 UTC+3, axel.wa...@googlemail.com:
>
>> On Tue, Dec 22, 2020 at 11:09 AM Martin Hanson <greenco...@yandex.com>
>> wrote:
>>
>>> It's a matter of understanding why generics was left out of Go from the
>>> start, like classes was left out of Go. If we start adding stuff that
>>> the original developers of Go left out by purpose
>>
>>
>> That is some serious revisionism of the facts. Ian (who is spear-heading
>> the generics effort) is one of (if not *the*) first person to join Go's
>> development. And it has *always* been the communicated stance of the Go
>> team (including the original three people who've been there before him)
>> that generics would be nice to have, if they can figure out a way to fit
>> them in.
>>
>> I'm as skeptical about generics as the next guy. But this denial of
>> historical fact doesn't help anybody. Neither is exclusionary language like
>> talking about "true Gophers". Go is an inclusive project and wants everyone
>> to feel welcome - *obviously* that includes people who want generics in the
>> language. Please read - and keep to - the Go community Code of Conduct:
>> https://golang.org/conduct
>>
>>
>>
>>> we're not understanding the design choices that went into Go, which is
>>> exactly
>>> what makes Go unique!
>>>
>>
>> Go is not a religion. Go is not something that was prophetized on stone
>> tablets and handed down from mysterious, otherworldly gods.
>> It's a programming language and a software project. The people who came
>> up with it and designed it are alive and well and they explain their
>> decisions regularly and patiently. One of those people is Ian.
>>
>> I am comparatively late to the party with adopting Go, but even I feel
>> comfortable saying I understand the design choices that went into Go.
>>
>>
>>> If you want to add generics to Go, if you want to change how errors are
>>> handled, if you want X, Y or Z feature that Java, C++, or some other
>>> complex language has got, then go use that language! Why are you even
>>> here!?
>>>
>>
>> I said so above but it benefits from repitition: If you are someone who
>> wants the language to change, if you want generics, if you feel error
>> handling could be improved, "if you want X, Y or Z feature that Java, C++,
>> or some other complex language has got", you are welcome in our community.
>> Your viewpoint is valued. Your, Martin, viewpoint that generics *shouldn't*
>> be added to Go is valued as well.
>>
>> What isn't welcome is your attempt of alienating people with a different
>> viewpoint from yours and make them feel unwelcome. And if you continue to
>> insist on doing that, the community *will* ask you to leave.
>>
>> the people who designed Go, and we all know who they are
>>
>>
>> No offense, but I do get the impression that you actually don't.
>>
>>
>>> If generics gets added to Go, we're opening a very dangerous door, and
>>> it will be the downfall of Go because - and Robert Griesemer this is
>>> especially addressed to you - what's next then?
>>
>>
>> Just to be clear: On the one hand, you are trying to make an argument
>> that the original designers of Go are impossible to understand, their
>> competency transcends reason and they should be trusted to come up with the
>> best design for a language. And on the other hand, you are trying to
>> explain one of those original designers, who is currently working on adding
>> generics, that what they are doing is "the downfall of Go"? Think about it.
>> That should really cause you some cognitive dissonance.
>>
>>
>>> If generics gets added to Go, we're a big enough part of the community,
>>> that passionately hate that, that we can manage to fork Go - which I
>>> strongly believe will then be the right thing to do!
>>>
>>
>> I can say, I would genuinely be happy if a fork of Go without generics
>> will be made and if people who feel they can't live with a language
>> containing them migrate to that fork. Just as I was genuinely happy about
>> Devuan being created by people who feel they can't live with an operating
>> system using systemd. The Debian project became better by that fork
>> existing and I suspect, the Go project would be better with such a fork.
>>
>> Because it would give relentlessly negative people a place to be in
>> peace, somewhere else.
>>
>>
>>>
>>> --
>>> 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...@googlegroups.com.
>>>
>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/golang-nuts/5029411608631693%40iva7-919bb0034794.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/b867ff4d-270a-4d6d-ae37-8a06af16b357n%40googlegroups.com
> <https://groups.google.com/d/msgid/golang-nuts/b867ff4d-270a-4d6d-ae37-8a06af16b357n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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/CAEkBMfGOcZfTxM%2B45NLQ96bkoEUbeYDrF5_Ai5zM9gT8Y18eVg%40mail.gmail.com.

Reply via email to