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/CAEkBMfHrMrb%3DLm_OvzgBSEzwTSNzhH_qq7%2BGnjBu2OvRqmBomw%40mail.gmail.com.

Reply via email to