From: topmind on 12 Jun 2005 00:46 Jeff Brooks wrote: > topmind wrote: > > > Leif Roar Moldskred wrote: > > > >>"topmind" <topmind(a)technologist.com> writes: > >> > >> > >>>And right off the bat in this link: > >> > >>So? You were demanding examples of OO on the web that wasn't device > >>drivers; not examples of OO on the web that was likeable to you. (I > >>very much doubt the latter exists anywhere.) > > > > Huh? I was hoping to see demonstrations of polymorphism making software > > better (by whatever metric you propose) in something besides the common > > textbook domains. > > There have already been a few examples posted. Read them. Nobody has provided a definite URL so far. > > >>(And from my experience, customers want a sysetm that _works_ and > >>doesn't give a damned about how you make it work as long as it doesn't > >>involve grand treason -- unless they can claim plausible deniability > >>in which case they don't care about the how at all.) > > > > Software is generally going to be more change-friendly if it fits the > > pattern of future changes. If the customers don't give a damned about > > your internal hierarchies, then using hierarchies is probably not a > > good change-friendly bet (unless you want to force them to live by your > > arbitrary classification system and let them vote for your competitor > > with their feet). > > That's an illogical argument. > > Do you think if a customer doesn't give a damn about the structure of a > procedural program that means the structure won't affect the future > maintainability of the software? I am not sure what you mean. I am only saying that real world changes, such as customer preferences, don't usually change in a hierarchical way over time. If you want change-friendly software, your software should not hard-wire itself to tree-based changes. > > >One would just spend a lot of time reshuffling the > > tree to handle new requests and/or new combinations of requests. I want > > a bank account that is BOTH savings AND checking perhaps, and to switch > > each such feature on and aff as desired. Are you really gonna create a > > Cartesian Explosion of sub-classes for each feature combination > > (existing and new)? > > That's an illogical argument. > > The problem would only exist if you had to model everything as a single > rooted classification tree. That isn't true so your argument is meaningless. Are you suggesting multiple inheritance? > > > I assumed being change-friendly was one of the bragging points of > > polymorphism. If not, then please state your measurements of > > betterment. > > How did you measure that polymorphism is worse? It is objectively more code rework if you want to change it to a HAS-A model when trees fail. If you start out with a HAS-A model, obviously it is easier to accept more has-a's without lots of code rework. > > Jeff Brooks -T-
From: topmind on 12 Jun 2005 01:01 > Says the person who hasn't presented objective evidence > supporting his position. It is my opinion that paradigm preference is largely a *subjective* thing. Thus, there is not much to objectively prove either way. See: http://www.geocities.com/tablizer/science.htm I popped in here when OO fanatics implied that polymorphism is objectively better for most uses. I believe the only objective claim I made is that it is harder to change polymorphism to HAS-A designs (when taxonomies/classificationis stop being tree-oriented). This is based on the number of lines (or perhaps token quantity) that has to be changed to convert. As far as whether the real world changes in a tree-wise fashion or not, this is a little difficult to prove either way. I find treeness too artificial, but if you see trees, so be it. We may have to explore explicit taxonomies/classifications of actual applications to settle that. I have provided examples of tree taxonomies breaking down on my website. For example, see: http://www.geocities.com/tablizer/sets1.htm -T-
From: topmind on 12 Jun 2005 01:13 Robert C. Martin wrote: > On Fri, 10 Jun 2005 18:57:21 -0400, CTips <ctips(a)bestweb.net> wrote: > > >topmind wrote: > ><snip> > > > OO is good for .... shapes. > >> > > > >Not really. Anytime someone comes up with the shapes example, ask them > >how they would add the method: > > > >class shape { > >// true if object has any points in common with <B> > >boolean intersects(shape B); > >} > > > >See how quickly mind-lock sets in.... > > That one is not so hard. Simply algebra can solve it without too much > difficulty (I've done it). The tougher one is: > > Shape intersection(Shape s); > > That requires a generic shape that can represent any shape at all. > Just "store" the representation as the intersection itself. Most real-world shapes tend to be best representated as combinations or variations of simpler shapes anyhow. For example, a CADD system may represent a shape as a polygon (list of points) with some of the edges smoothed by bazieer (sp?) curves, etc. If you crank up the smoothness factor on all points in an octogon it turns into a circle. (Whether the CADD system recognizes it as a circle is another matter). If you wanted to make the shape of a U-shaped magnet, you might start out with an Oval, cut it in half by intersecting it with a rectangle, and then subtract out a smaller oval in the center for the inside U-part. We thus have 2 subtractive set operations taking place. Damn! You got me talking about @#!$& shapes again! I've been had! -T- > > > ----- > Robert C. Martin (Uncle Bob) | email: unclebob(a)objectmentor.com
From: topmind on 12 Jun 2005 01:16 > >> You make claims all the time and have no proof. > > > > Like what? > > Like (referring to RCM) "But all his examples are device drivers" > > Like {referring to me) "you were the one bragging about how great > polymorphism is," > > > Even if I did, does that give you license to also be an idiot? > > > > Stop shaking your head and argue. Learn how to make a coherent argument. > > Best wishes, I am not sure what your complaint is. Those are claims about debate issues, not paradign claims. You are mixing apples and oranges. -T-
From: Patrick May on 12 Jun 2005 03:53
"topmind" <topmind(a)technologist.com> writes: > Patrick May wrote: > > Outstanding, you finally have the opportunity to demonstrate > > the advantages of your preferred programming approach over OO in > > the context of a real application. Robert Martin has already > > provided a link to his implementation -- let's see yours. > > Unfortunately, I don't want to release it public because I want some > security through obscurity. I might release snippets though. There > are plenty of existing wiki's implementations anyhow, and my > approach does not significantly differ than them (although I feel I > factored better than some of those I looked at). Security through obscurity is no security at all. As you note, there are a number of Wiki implementations extant; it seems unlikely that making the code to yours available would cause you any harm. At the very least, you could support your claims regarding polymorphism by publishing enough of your code to allow comparison with FitNesse. Sincerely, Patrick ------------------------------------------------------------------------ S P Engineering, Inc. | The experts in large scale distributed OO | systems design and implementation. pjm(a)spe.com | (C++, Java, Common Lisp, Jini, CORBA, UML) |