> I think the amount of hair-splitting over what is an object oriented language is reason to say it *isn't* an Object Oriented language at all.
Given the FAQ header's "Is Go an object-oriented language? emphasizing that "object-oriented" is in lowercase, not the titlecase "Object-Oriented" that generally points to OOP context: it is why I treat the FAQ "yes and no" as an acceptable answer. My exhibits: 1. Linux kernel is mainly based on C, but it managed to grouped its driver data into an object-oriented way (various types of IO IP products) - See (https://elixir.bootlin.com/linux/latest/source/drivers) 2. Go's various standard packages like (url, strings, http, etc), they're oriented to a specific data type. See URL package (https://pkg.go.dev/net/url@go1.19.3#URL) 3. Unlike C, Go and Rust has interface methods that behaves similar to an OOP Class (see URL in #2). Therefore, you can't say they aren't OO but you certainly can say they incompatible with the conventional OOP. If an amendment is required, I believe the missing context (OO in plain English or OO in OOP) has to be explictly clarified. As far as definitions goes, they are 2 different contexts. OOP is an implementation/subset of OO. One thing for sure: I agreed that the mentioned FAQ header is a bit cheesy. >> Cars do not fly. Planes don’t use roads. Classes are abstractions that model required attributes that in turn compose a system to do useful work. Both boats and cars move. You can use a boat to get from a to b if there is no water. >> If someone said “I have a car for sale”, and you showed up and it had no wheels but a hull and a sail - you might be a bit upset. >> Whether Go is a car or a boat is up to the experts. > Labels/common language is what allows societies to exist. As in this case, I believe your ESL has caused you to issue some statements above that make it difficult for people to understand what you are trying to say and may even interpret them to mean you are a rude person that should be ignored. > If you claim that labels are only useful when “it’s obvious what it is” - how do you determine it is obvious? Your personal experience/knowledge? An accepted “reference guide”? If I re-phrase one of your example, it would be: "I have a car (object) for sale" -> "Toyota Camry" (label) vs. "Tesla Model S" (label) vs "AeroMobil 3.0" (label) 1. They are all unilaterally labelled as "car". Can you say all 3 of them are not object-oriented towards "car" definition? (OO) 2. When and how should we specify a "car" across automobile and aeronautics industries? Electric motors vs ICE engine? engine capable of flying + on the road? defined, ratified, and enforced by who or whom? (OOP) I still don't see the examples ("car vs boat", "Acme1000 vs Beta1000") relevancies. However, given the tone and the frames of those examples, I did observed a known burnt-out pattern of a developer overworked for a long time to the point where a "car" and a "boat" can no longer be cognitively differentiable eventhough their clearly different in nature, unrelated to the labelligng topic at all. This is a severe symptom and I called out the psychological matter. Given the recent mass layoffs, I'm not surpirsed some managers can pressure the team to perform beyond limits. No ill intent. Sorry if you take it another way. Peace. Cheers! Regards, Holloway -- 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/730c3130-e4e9-4db5-87f6-589567f86fben%40googlegroups.com.