5 ms·
You're right. What gave you the impression that I thought otherwise? (I'm serious, I really want to know. I may even modify my essay.) Regarding inheritance,
by loup-vaillant 16y ago
You're right. What gave you the impression that I thought otherwise? (I'm serious, I really want to know. I may even modify my essay.)
Regarding inheritance, I did say that I do not consider it to be mere syntactic sugar.
- jerf 16y agoIt's more that I assume that people think OO is a property of a language until proved otherwise, and your essay did not give me the impression that you thought what I said. Especially the part with the C and C++ code where you deny the C code is OO: "Some of you may conclude that the C program is actually OO because it instantiates a data structure. No. The only alternative would be global variables. That would mean that any properly structured procedural program is OO as well." And I disagree. The C code is simple OO code, but it's OO, simple or otherwise. Here is a class. Here are the methods. Besides, ALL software engineering terms of significant are ill-defined. Strong typing. Functional programming. I can even come up with two distinct meanings of immutable. If we apply the "there must be one clear meaning or the term's useless" we might as well give up discussing software, though the point that one must actually define which term you're using if you're going to have a serious discussion is still a good one. I would also agree that the term OO has been not merely used as a characteristic of good design, but gotten itself defined as good design in some circles, such that attacking or even trying to refine the term OO gets perceived as an attack on the goodness of the language. Ask a Ruby partisan why it's better than Python and a good bit of the time you'll hear about how it's More OO than Python and Therefore Better, where it simply goes without saying that Being More OO Is Better, even though in practice the places where Python is "less OO" are not a problem, actually have their reasons, and for certain other definitions of OO are actually more OO. (len is a function that consumes generic interfaces to create its result. This is not a particularly "not OO" way of doing things.) See also MVC, where almost unlimited damage will be done to the term to show that something is "MVC", because MVC ===== Good Design.
- loup-vaillant 16y ago> The C code is simple OO code, but it's OO Pretend "OO" doesn't exist, and OO hasn't been identified. (Say we're in the 70's, that should more or less do it). Would you say my C code is procedural? Structured? > Besides, ALL software engineering terms of significant are ill-defined. I agree. "OO" just seemed worst. > I would also agree that the term OO has been […] defined as good design in some circles Excellent point. That's one thing that pissed me off, actually. I probably should add a paragraph about that.
- jerf 16y ago"Pretend "OO" doesn't exist, and OO hasn't been identified. (Say we're in the 70's, that should more or less do it). Would you say my C code is procedural? Structured?" Begging the question, no offense. I don't address the other two points because I agree, but I didn't think that should pass in silence. (Though I gotta tell you MVC is in the running for worst-mangled-term too, but I won't push the point.)
- nwmcsween 16y agoOO like any programming paradigm is a property of the language, the language facilitates it's paradigm that's why they are classified as such. A language is a part of a paradigm if it has native constructs for said paradigm.