27 Mar, 2010, flumpy wrote in the 141st comment:
Votes: 0
Please explain where I backed away from my analogy?
27 Mar, 2010, David Haley wrote in the 142nd comment:
Votes: 0
Let's start with:
Quote
No analogy of coding or software will ever hold up to large amounts of scrutiny.

or:
Quote
As I said, analogies only go so far.

If you agree that they don't really work, I don't really see the usefulness in introducing them precisely in a context where they must be scrutinized. Imprecise or vague analogies are useful when trying to introduce somebody to a concept, but not useful to convince somebody of something.
27 Mar, 2010, Deimos wrote in the 143rd comment:
Votes: 0
flumpy said:
You don't put the toilet in the living room because conceptually it does not belong there.

You've completely lost me with your analogy if, by this, you weren't implying that spell-casting was the toilet and World was the living room.

If that is what you were implying, then a "room" (not "plumbing") is equivalent to a class, and putting the toilet into a bathroom would be equivalent to putting spell-casting into SpellManager. To wit, I pointed out the flaw in this analogy, since SpellManager would then also contain other, seemingly unrelated things (sink, shower, etc.).
27 Mar, 2010, flumpy wrote in the 144th comment:
Votes: 0
Analogies are perfectly adequate when trying to convey meaning to the inexperienced and to pretend otherwise is disingenuous at best.

That you misrepresent me in your analysis of what I did say is only to be expected tho DH and I do wish sometimes you'd just stay out of it, you bring more confusion with your calls to clarity than you solve. That said:

Deimos. You seem like a nice guy, and I have changed my mind. I guess you really just don't get it.

Assuming the parameters once again of my analogy, you can think of the plumbing as a utility class, a group of one or many classes that handle the plumbing functionality. The shower is the visible interface in this scenario, and someone taking a shower is the user.

In the toilet analogy, which was really just a general observational analogy about conventions, I would say the toilet would be where your players would go to cast 'empty bowels', the toilet the interface or conduit by which this spell was enacted, and the plumbing the means by which you make it all happen ( the SpellManager). Of course, its not so clear cut in code as it is with building materials, because you can seemingly mix plumbing in the same place as you put the electrics and most of the time it makes no difference. Until it does.

I feel most of the time the house or electrics analogy work well, but to pretend they are not limited is plain wrong.
27 Mar, 2010, flumpy wrote in the 145th comment:
Votes: 0
That said, DH, I do believe you are confused about what he is asking. I believe he has never mentioned namespaces, or anything other than OO design in every single one of his posts.

I do not think it is unreasonable to engage him on a pure OOAD level, as shas is indeed doing.
27 Mar, 2010, Deimos wrote in the 146th comment:
Votes: 0
Flumpy, if you can't reply without being back-handedly condescending every time, I'd appreciate it if you just didn't reply anymore.

As I've pointed out many times, I'm very comfortable with OO concepts and designs, neither of which are the topic of discussion in this thread. I wanted conceptual opinions (emphasis placed because you seem to think it's your way or the highway), and wanted to discuss the merits and downfalls of these and why people chose them. I don't question your methods because I think you're wrong. Rather, I question your methods to elicit explanations that help me understand why you chose to do it the way you did. Shasarak has been consistent with his replies, and I now have a pretty good grasp on why he chooses to do what he does. I may disagree on some points, but I still respect his opinion, and I don't claim that his way is wrong by any means. You, on the other hand, I have not yet been able to understand. I don't think the contrived analogies have helped at all, either. You've seemingly bounced back and forth when asked to explain your opinion. At first, you said that you would separate the concepts. Then you said you'd keep them together until it there was a need to separate them. Now it seems that you're saying separating them is The One True Way according to OOAD and I'm inexperienced or misguided to think otherwise.

So, pardon my confusion, but I think I'm entitled to be a little confused at this point. And without being dubbed a novice, I might add.
27 Mar, 2010, flumpy wrote in the 147th comment:
Votes: 0
Thank you for confirming you were just shooting the breeze.
27 Mar, 2010, shasarak wrote in the 148th comment:
Votes: 0
David Haley said:
Indeed, a singleton class is really nothing more than a namespace.

What?! :surprised:

Since when is a namespace capable of managing its own persistent internal state?
27 Mar, 2010, shasarak wrote in the 149th comment:
Votes: 0
Deimos said:
You're using hyperbole here to emphasize your point, but surely you realize that I'm not advocating that every single piece of code in the game go under World. A more accurate analogy would be having a very organized system of folders for your documents and trying to figure out whether these 2-3 files should go in the World folder or whether you should make new folders for each of them.

At the risk of falling foul of the same "pushing an analogy well beyond its intended limits" issue that you and Flumpy seem to be experiencing, the nearest equivalent to a single document in my filing analogy is not a functional area but an individual method. So, in a sense you're right: if your World class conists of no more than 2 or 3 short methods, each of which has no obvious other place to live (i.e. it does not clearly belong in another functional area that is dealt with by another class), then putting them together in a single class isn't that big a deal. But I'm guessing you'll need rather more than 3 short methods just to handle the spell-casting aspect, let alone all the other stuff you expect your "World" class to handle.
27 Mar, 2010, Tyche wrote in the 150th comment:
Votes: 0
flumpy said:
Tyche said:
flumpy said:
Basiy what it boils down to is is-a over has-a again. If you put the spell logic and data into world you are saying that World is-a spell manager.


I think it's a safe bet that the World is an Object regardless of whether it manages spells.


Well I guess that truism is, er, true enough.. Is this alluding to Shas's "it's not OO" comment?


I was just prompted by the reference to the is-a/has-a relationship, but maybe it is related. The way things really work under the covers is World has-a superclass Object that describes it's Object parts. World behaves-like an Object and World delegates-to Object for you. Inheritance is just a specialization of composition, and one in which many languages let you describe in much less code than general composition. Another point is that Object (in Ruby at least) contains perhaps 50 methods most of which could be partitioned into this NounVerby abstracty thingy. ;-) I mean Object is/has also a HashGenerator, a ReflectionManager, etc.
27 Mar, 2010, flumpy wrote in the 151st comment:
Votes: 0
Tyche said:
I was just prompted by the reference to the is-a/has-a relationship, but maybe it is related. The way things really work under the covers is World has-a superclass Object that describes it's Object parts. World behaves-like an Object and World delegates-to Object for you. Inheritance is just a specialization of composition, and one in which many languages let you describe in much less code than general composition. Another point is that Object (in Ruby at least) contains perhaps 50 methods most of which could be partitioned into this NounVerby abstracty thingy. ;-) I mean Object is/has also a HashGenerator, a ReflectionManager, etc.


Ah I see what you mean. Yes, World can appear to be a SpellManager whilst at the same time it delegates that responsibility and the user would know nothing about it.
27 Mar, 2010, David Haley wrote in the 152nd comment:
Votes: 0
shasarak said:
David Haley said:
Indeed, a singleton class is really nothing more than a namespace.

What?! :surprised:

Since when is a namespace capable of managing its own persistent internal state?

A namespace can have its own set of namespace-level variables to track whatever state it likes. The principal difference with a singleton class approach is that if you later choose to have several of them, it's easier to do so. But as long as there is only one thing, the namespace and the static/singleton class are functionally the same.

Besides, the notion of state is something of a red herring, because we're not talking about operations that require state here.

flumpy said:
Analogies are perfectly adequate when trying to convey meaning to the inexperienced and to pretend otherwise is disingenuous at best.

That you misrepresent me in your analysis of what I did say is only to be expected tho DH and I do wish sometimes you'd just stay out of it, you bring more confusion with your calls to clarity than you solve.

(a) I did not realize this was a private conversation between you and Deimos
(b) Even if it were, by having it here I view it as appropriate to chime in if I think either party is saying something inappropriate
© You have said yourself that your analogies are imperfect and "only go so far" and don't stand up to scrutiny, and yet you're upset when I question the usefulness of using analogies that don't hold up to scrutiny when the whole point of this discussion is to scrutinize various opinions…?

flumpy said:
That said, DH, I do believe you are confused about what he is asking. I believe he has never mentioned namespaces, or anything other than OO design in every single one of his posts.

He asked for opinions on how to do something. Shasarak and later you showed up saying that the One True Way was to use 100% OOP (although you did so to a lesser extent – which makes me wonder why you're the one getting upset). You both told him that his suggestions could be improved using your One True Way; I am merely (a) proposing that there are other ways that have the same advantages and (b) questioning your One True Way in the first place. Anyhow, you might want to read his posts again if you think he's only asking for OOP solutions. :shrug:

It certainly was not just shooting the breeze on his part and it's frankly childish of you to say so simply because he disagrees with your proposals. (Might I add that some of these proposals are made with the stated caveat that you yourself believe that they don't hold up to scrutiny…)
27 Mar, 2010, shasarak wrote in the 153rd comment:
Votes: 0
EDIT: Oh, never mind, life's too short.
27 Mar, 2010, flumpy wrote in the 154th comment:
Votes: 0
David Haley said:
stuff


Neither is this your sole conversation nor your forum, and I do not have to play by your rules or adhere to your standards. If you do not like that then, as you put it :shrug:

It is not childish to require his motives. If he's just kicking the football around instead of needing genuine assistance in understanding these concepts, I needed to know so I didn't feel like I was banging my head against a brick wall trying to make him understand.

As well, I have never once said my way was the one true way, that again was you. He did not seem to acknowledge the validity of the solutions presented to him at the time, so I (and shas) spent a few posts trying to discover why that was. Misunderstandings abound.

If all you can do is resort to name calling (ie that I'm being childish) I think we just hit a new low.

Edit: can I also say that I do not care if he accepts my solutions. I do care when they are not acknowledged as being valid.
27 Mar, 2010, flumpy wrote in the 155th comment:
Votes: 0
shasarak said:
EDIT: Oh, never mind, life's too short.


Very much so.
27 Mar, 2010, Tyche wrote in the 156th comment:
Votes: 0
flumpy said:
shasarak said:
EDIT: Oh, never mind, life's too short.


Very much so.


Why so grumpy shasarak and flumpy?
Oh wait I think I know why. ;-)
27 Mar, 2010, Runter wrote in the 157th comment:
Votes: 0
Tyche said:
flumpy said:
shasarak said:
EDIT: Oh, never mind, life's too short.


Very much so.


Why so grumpy shasarak and flumpy?
Oh wait I think I know why. ;-)


-1 piling on
27 Mar, 2010, David Haley wrote in the 158th comment:
Votes: 0
flumpy said:
If he's just kicking the football around instead of needing genuine assistance in understanding these concepts, I needed to know so I didn't feel like I was banging my head against a brick wall trying to make him understand.

I find it extremely useful and interesting to find out more about these topics, discuss them with intelligent and experienced people; one can do so without ending up in agreement over something that you are proposing. Perhaps he understands but merely disagrees. Do you not agree that it can come across even as a tiny bit patronizing that you are basing this on the assumption that his failure to agree is solely due to his failure to understand?
28 Mar, 2010, donky wrote in the 159th comment:
Votes: 0
David Haley said:
I find it extremely useful and interesting to find out more about these topics, discuss them with intelligent and experienced people; one can do so without ending up in agreement over something that you are proposing.

I would be interested in any summary you might provide about what you found out in this thread that was useful and interesting.
28 Mar, 2010, Deimos wrote in the 160th comment:
Votes: 0
donky said:
I would be interested in any summary you might provide about what you found out in this thread that was useful and interesting.

I found the diverse opinions interesting in and of themselves (sans attitude).

That aside, the discussion has already lead to me restructuring a couple things in my own project because of valid points raised in earlier posts.
140.0/163