Actually not "people mean the literal opposite of what they say", but
"people interpret wrongly when trying to read literally". At least I can
imagine myself saying something similar to "Go is more object oriented than
..." if it's not regarding general classification of languages. Maybe I
even did that, lol.



пт, 1 янв. 2021 г. в 17:30, Axel Wagner <axel.wagner...@googlemail.com>:

> On Fri, Jan 1, 2021 at 3:04 PM Space A. <reexist...@gmail.com> wrote:
>
>> > I don't see a lot of room for interpretation here.
>>
>> Well, I do. I do believe if you truly think he meant "Go is OOP language"
>> and continue insisting you are wrong.
>>
>
> Okay. I don't believe "people mean the literal opposite of what they say"
> is a POV that can be argued with.
>
>
>>
>> 1. First of all I feel it's more rhetoric, it's same as "Less is
>> exponentially more", and "[Go] ... Arguably more object oriented than say
>> Java or C++ ". I believe if you think logically "less" could not be "more",
>> right, and you wouldn't insist on that? Same goes to the statement that Go
>> is more object oriented. What I think he meant was "Go has even better
>> compatibilities even for OOP because of composition" which also in line
>> with what I said that you can use ANY language to write OOP program.
>> 2. There is FAQ question and answer, and I do believe Rob took part in
>> answering FAQ, and this one in particular.
>>
>> Anyways as you said in the beginning of thread, Go is no a religion, Rob
>> is not Jesus, he is alive and he can explain his position if it makes any
>> sense. Maybe I'm wrong and don't understand something, that's possible. So
>> I'm not arguing for the sake of arguing.
>>
>>
>>
>>
>>
>> пт, 1 янв. 2021 г. в 16:48, Axel Wagner <axel.wagner...@googlemail.com>:
>>
>>> On Fri, Jan 1, 2021 at 1:57 PM Space A. <reexist...@gmail.com> wrote:
>>>
>>>> > Javascript is an incredibly popular language with non-inheritance
>>>> OOP. Or, at least, no inheritance at the type-level (so either way,
>>>> invalidating your statement that OOP is about type-hierarchies).
>>>>
>>> This is debatable but JS is a non-OOP language.
>>>>
>>>
>>> That's certainly a valid opinion to hold. I don't believe it,
>>> empirically, agrees with the common wisdom around it, though.
>>>
>>>
>>>> And yet if you wonder, there is no definition of what OOP language is.
>>>> Give it any, I don't mind. But it seems to most of us it's quite clear (by
>>>> major examples like C++ or Java) until we start arguing just for arguing.
>>>>
>>>
>>> With this, I agree. Note, again, that it doesn't actually *matter* for
>>> the question of whether or not Go should get generics, whether we call it
>>> an OOP language or not. And yet, it has become a point of argument in this
>>> thread - AFAICT, purely for the sake of arguing.
>>>
>>> > Repetition does not make a false statement true. Instead of
>>>> copy-pasting yourself, it would be prudent to cite sources. For example, is
>>>> there any text book that agrees with your definition of OOP?
>>>> What exactly you disagree on? I will copy and paste once again for your
>>>> convenience =)
>>>>
>>>
>>> There really is no need (though I recognize what you are trying to do).
>>> Let me quote a couple of your statements that I disagree with:
>>> • "Go doesn't have classes and is not an OOP language."
>>> • "Oh my... It is pure sophistic nonsense. OOP is all about inheritance.
>>> Not just whether you have "objects" in a language spec or not."
>>> • "As I said, OOP (if we talk about language, not a program written in
>>> OOP paradigm, because you can use ANY language for that) is all about
>>> inheritance."
>>>
>>> And in the interest of clarity and to illustrate that I'm not just
>>> trying to argue for the sake of argument: I do agree with you that Go
>>> favors composition over inheritance. And I do agree that inheritance based
>>> OOP prioritizes type-hierarchies.
>>>
>>>
>>>> Maybe you disagree with Rob Pike who made statements quite similar to
>>>> what I said regarding composition in his quote I given above?
>>>>
>>>
>>> If we are making an appeal to authority, I thnik you'll find he made
>>> statements that directly contradict the ones I quoted above as disagree
>>> with. And he made statements that support the ones I agree with.
>>>
>>>
>>>> That's ridiculous. There is a question in FAQ. And answer you are aware
>>>> of, which says Go is not OOP, which Rop Pike for sure aware of as well. And
>>>> his wording in that video means not how you trying to interpret.
>>>>
>>>
>>> His verbatim quote is "Go is a profoundly object oriented language.
>>> Arguably more object oriented than say Java or C++". That clearly
>>> contradicts your statement that Go is not an OOP language. He also goes to
>>> great length to say that Go does not have inheritance (in favor of
>>> composition), which, together with the first one, clearly implies that he
>>> is contradicting your assertion that "OOP is all about inheritance".
>>>
>>> I don't see a lot of room for interpretation here.
>>>
>>> > But either way, if you don't mind me asking: What exactly does any of
>>>> this have to do with generics?
>>>> Good question, ask Alex Besogonov, because he started this arguing that
>>>> Go has classes (opponent meant he doesn't want making Go like C++/Java).
>>>>
>>>
>>> If we are pointing fingers, the statement he reacted to was "The real
>>> value for Go is it's simplicity, avoidance of generics and avoidance of
>>> classes", not "I don't want to make Go like C++/Java". And Alex put his
>>> statement into parenthesis, clearly indicating that he considers it only a
>>> minor side-point.
>>>
>>> But, if we agree it doesn't matter, we should probably just drop it.
>>>
>>>
>>>
>>>>
>>>>
>>>>
>>>>
>>>> пт, 1 янв. 2021 г. в 05:16, Axel Wagner <axel.wagner...@googlemail.com
>>>> >:
>>>>
>>>>> On Fri, Jan 1, 2021 at 1:23 AM Space A. <reexist...@gmail.com> wrote:
>>>>>
>>>>>> > Sorry to disappoint you (actually, no, not sorry) but OOP has
>>>>>> nothing to do with inheritance. It's a common feature in object-oriented
>>>>>> programming but it's not essential.
>>>>>> > Moreover, Go has inheritance as well (struct embedding and
>>>>>> interface inheritance), making it a fairly typical example. The only
>>>>>> significant difference is that Go has structural typing, instead of
>>>>>> manually declaration of implemented interfaces.
>>>>>>
>>>>>> You don't disappoint me by repeating wrong statements.
>>>>>>
>>>>>> As I said, OOP (if we talk about language, not a program written in
>>>>>> OOP paradigm, because you can use ANY language for that) is all about
>>>>>> inheritance. Period. Proof - take any major OOP language and see how it's
>>>>>> done, what's in its heart.
>>>>>>
>>>>>
>>>>> Javascript is an incredibly popular language with non-inheritance OOP.
>>>>> Or, at least, no inheritance at the type-level (so either way, 
>>>>> invalidating
>>>>> your statement that OOP is about type-hierarchies).
>>>>>
>>>>> Secondly, and I copy-paste myself here:
>>>>>> Classes (like in Java) vs structs (like in Go) is about inheritance
>>>>>> vs composition, not about attaching fields and methods. Inheritance 
>>>>>> implies
>>>>>> type hierarchy, child and parent, virtual functions, abstract and final
>>>>>> implementations and so on so forth to keep this all of this manageable.
>>>>>>
>>>>>
>>>>> Repetition does not make a false statement true. Instead of
>>>>> copy-pasting yourself, it would be prudent to cite sources. For example, 
>>>>> is
>>>>> there any text book that agrees with your definition of OOP?
>>>>>
>>>>> If you don't understand what it means, please study a little bit (with
>>>>>> all respect and blabla, I also learn all the time). Because these two
>>>>>> approaches are different.
>>>>>>
>>>>>> Here is some small quote and link which I think can help:
>>>>>>
>>>>>> My late friend Alain Fournier once told me that he considered the
>>>>>>> lowest form of academic work to be taxonomy. And you know what? Type
>>>>>>> hierarchies are just taxonomy. You need to decide what piece goes in 
>>>>>>> what
>>>>>>> box, every type's parent, whether A inherits from B or B from A.  Is a
>>>>>>> sortable array an array that sorts or a sorter represented by an array? 
>>>>>>> If
>>>>>>> you believe that types address all design issues you must make that
>>>>>>> decision.
>>>>>>>
>>>>>> I believe that's a preposterous way to think about programming. What
>>>>>>> matters isn't the ancestor relations between things but what they can do
>>>>>>> for you.
>>>>>>>
>>>>>>> That, of course, is where interfaces come into Go. But they're part
>>>>>>> of a bigger picture, the true Go philosophy.
>>>>>>> If C++ and Java are about type hierarchies and the taxonomy of
>>>>>>> types, Go is about composition.
>>>>>>> Doug McIlroy, the eventual inventor of Unix pipes, wrote in 1964 (!):
>>>>>>>
>>>>>>> We should have some ways of coupling programs like garden
>>>>>>> hose--screw in another segment when it becomes necessary to massage 
>>>>>>> data in
>>>>>>> another way. This is the way of IO also.
>>>>>>>
>>>>>>> That is the way of Go also. Go takes that idea and pushes it very
>>>>>>> far. It is a language of composition and coupling.
>>>>>>> The obvious example is the way interfaces give us the composition of
>>>>>>> components. It doesn't matter what that thing is, if it implements 
>>>>>>> method M
>>>>>>> I can just drop it in here.
>>>>>>> Another important example is how concurrency gives us the
>>>>>>> composition of independently executing computations.
>>>>>>> And there's even an unusual (and very simple) form of type
>>>>>>> composition: embedding.
>>>>>>> These compositional techniques are what give Go its flavor, which is
>>>>>>> profoundly different from the flavor of C++ or Java programs.
>>>>>>>
>>>>>>
>>>>> One thing that is conspicuously absent from this quote, of course, is
>>>>> the term "Object oriented programming" (or even just "Object"). FTR, if 
>>>>> you
>>>>> quote Rob Pike, you should also be aware that he has always staunchly
>>>>> defended the stance that Go is an OOP language:
>>>>> https://www.youtube.com/watch?t=750&v=rKnDgT73v8s
>>>>>
>>>>> But either way, if you don't mind me asking: What exactly does any of
>>>>> this have to do with generics?
>>>>>
>>>>>
>>>>>>
>>>>>> https://commandcenter.blogspot.com/2012/06/less-is-exponentially-more.html
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> чт, 31 дек. 2020 г. в 23:27, Alex Besogonov <alex.besogo...@gmail.com
>>>>>> >:
>>>>>>
>>>>>>> On Wednesday, December 30, 2020 at 12:23:35 PM UTC-8 Space A. wrote:
>>>>>>>
>>>>>>>> > OOP isn't specific about how inheritance is handled (or if it is
>>>>>>>> even supported)
>>>>>>>> Oh my... It is pure sophistic nonsense. OOP is all about
>>>>>>>> inheritance. Not just whether you have "objects" in a language spec or 
>>>>>>>> not.
>>>>>>>>
>>>>>>> Sorry to disappoint you (actually, no, not sorry) but OOP has
>>>>>>> nothing to do with inheritance. It's a common feature in object-oriented
>>>>>>> programming but it's not essential.
>>>>>>>
>>>>>>> Moreover, Go has inheritance as well (struct embedding and interface
>>>>>>> inheritance), making it a fairly typical example. The only significant
>>>>>>> difference is that Go has structural typing, instead of manually
>>>>>>> declaration of implemented interfaces.
>>>>>>>
>>>>>>> > But on the topic of generics, this entire thread seems alarmist.
>>>>>>>> Generics will open a huge door for libraries to be written that will 
>>>>>>>> make
>>>>>>>> our lives easier.  I'm thinking specifically about data processing and
>>>>>>>> machine learning.  A lot of devs use Python right now for this which 
>>>>>>>> leads
>>>>>>>> to duplication of code across languages.  Complex algorithms will be 
>>>>>>>> able
>>>>>>>> to be shared without hacky type conversions wrapping every function 
>>>>>>>> call.
>>>>>>>> Who is "yours"? You talk about Python so just go ahead and use
>>>>>>>> Python if it serves you, convince your team that Python is better, 
>>>>>>>> whatever.
>>>>>>>>
>>>>>>> You know that this argument can be applied to you as well?
>>>>>>>
>>>>>>>
>>>>>>>> среда, 30 декабря 2020 г. в 22:46:12 UTC+3, nichol...@gmail.com:
>>>>>>>>
>>>>>>>>> OOP isn't specific about how inheritance is handled (or if it is
>>>>>>>>> even supported).  The basic definition is objects with fields and 
>>>>>>>>> methods,
>>>>>>>>> and being able to address the itself (typically using 'this' or 
>>>>>>>>> 'self', but
>>>>>>>>> Go is unique in that you define what to call the object).  It does
>>>>>>>>> composition differently than most languages, but the functional needs 
>>>>>>>>> are
>>>>>>>>> met.
>>>>>>>>>
>>>>>>>>> But on the topic of generics, this entire thread seems alarmist.
>>>>>>>>> Generics will open a huge door for libraries to be written that will 
>>>>>>>>> make
>>>>>>>>> our lives easier.  I'm thinking specifically about data processing and
>>>>>>>>> machine learning.  A lot of devs use Python right now for this which 
>>>>>>>>> leads
>>>>>>>>> to duplication of code across languages.  Complex algorithms will be 
>>>>>>>>> able
>>>>>>>>> to be shared without hacky type conversions wrapping every function 
>>>>>>>>> call.
>>>>>>>>> We'll be able to use things like trees as simply as we use maps or 
>>>>>>>>> slices.
>>>>>>>>> I don't think we'll see the language turn into the grossness that is 
>>>>>>>>> Java
>>>>>>>>> or C++ because of it.
>>>>>>>>>
>>>>>>>>> On Wednesday, December 30, 2020 at 4:27:15 AM UTC-8 Space A. wrote:
>>>>>>>>>
>>>>>>>>>> Go doesn't have classes and is not an OOP language.
>>>>>>>>>>
>>>>>>>>>> Classes (like in Java) vs structs (like in Go) is about
>>>>>>>>>> inheritance vs composition, not about attaching fields and methods.
>>>>>>>>>> Inheritance implies type hierarchy, child and parent, virtual 
>>>>>>>>>> functions,
>>>>>>>>>> abstract and final implementations and so on so forth to keep this 
>>>>>>>>>> all of
>>>>>>>>>> this manageable.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> вторник, 29 декабря 2020 г. в 23:27:45 UTC+3, Alex Besogonov:
>>>>>>>>>>
>>>>>>>>>>> Please, stop being so condescending to newcomers and
>>>>>>>>>>> non-professional developers. Generics as uses by end-users will 
>>>>>>>>>>> improve
>>>>>>>>>>> their experience, not make it harder.
>>>>>>>>>>>
>>>>>>>>>>> (And what is this obsession with "classes"? Go has them -
>>>>>>>>>>> structs with methods are classes).
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>> 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/LEEuJPOg0oo/unsubscribe
>>>>>>> .
>>>>>>> To unsubscribe from this group and all its topics, 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/7b58c437-4507-4d75-b0a2-de7b0ba8b58dn%40googlegroups.com
>>>>>>> <https://groups.google.com/d/msgid/golang-nuts/7b58c437-4507-4d75-b0a2-de7b0ba8b58dn%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/CADKwOTd4%3DiPTtyBRhFW-aQFoEMd0jsVzrSUhTb2PtLyMWKxHiQ%40mail.gmail.com
>>>>>> <https://groups.google.com/d/msgid/golang-nuts/CADKwOTd4%3DiPTtyBRhFW-aQFoEMd0jsVzrSUhTb2PtLyMWKxHiQ%40mail.gmail.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/CADKwOTdKag%2BKA_QhNvVeVKdi8jqVPumJWj4LSXwx9vRYJ-Fu-A%40mail.gmail.com.

Reply via email to