That's fine so we disagree on that. An you also seem to disagree on FAQ (I
know you read it, that's for other readers):
https://golang.org/doc/faq#Is_Go_an_object-oriented_language

Won't say how many years I have because I hate these talks and I used to
think I'm still 20 yo =) But yea, I remember the times when "Assembly" was
"Assembler".

пт, 1 янв. 2021 г. в 21:44, robert engels <reng...@ix.netcom.com>:

> I hate to chime in here, but Go by the industry accepted definition - at
> least based on my 30+ years experience - is that Go is clearly an OOP
> language.
>
> It has “instances” coupled with “behavior”. That is, given a struct
> instance I can call a method “on it” declared by its definition. Other OOP
> languages don’t require the definition and can create instance methods
> dynamically.
>
> This differs from a language like Assembly, C, Cobol (prior 2002), or
> Fortran (prior 2003).
>
> For example, C has instances but no methods.
>
> On Jan 1, 2021, at 6:56 AM, 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. 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.
>
> > 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 =)
> 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.
>
> You disagree on a statement that composition is not inheritance? Or that
> inheritance implies type hierarchy and vise versa? Maybe you disagree with
> Rob Pike who made statements quite similar to what I said regarding
> composition in his quote I given above? Or just arguing for arguing? I just
> don't understand your pathos here.
>
> > 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:
> 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.
>
> > 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).
>
>
>
>
> пт, 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/CADKwOTcd%2Bm49WKzre_qdEP-HhcqzMOnTZR%2Bbcx_aqJiBJt2deg%40mail.gmail.com
> <https://groups.google.com/d/msgid/golang-nuts/CADKwOTcd%2Bm49WKzre_qdEP-HhcqzMOnTZR%2Bbcx_aqJiBJt2deg%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/CADKwOTfYSgz2yR9j_x970hgnCzbU9C1cEFVqqjRg5YOWczPuYQ%40mail.gmail.com.

Reply via email to