Post #24,893
1/19/02 5:20:54 AM
|
No, that part is incorrect.
One major part that makes OO useful is that if GetNext is a method of the object DataBaseHandle, then the compiler ensures that you can only call GetNext with a DataBaseHandle. If GetNext is a conventional function being based an opaque handle, then GetNext can only check at run-time that it is being based a DataBaseHandle.
It doesn't sound like much of an advantage, but it is.
And interpreted languages are another case entirely that I don't think we'd better tackle here and now.
Wade.
"All around me are nothing but fakes Come with me on the biggest fake of all!"
|
Post #24,925
1/19/02 2:10:22 PM
|
re: compile-time protection
>> It doesn't sound like much of an advantage, but it is. <<
No, I *don't* see that a signif advantage. Those kinds of errors are not the problems that hog the most debug time IME. Waiting for run-time to find out you are using the wrong handle is a very minor issue in the vast majority of cases. Regardless, I don't really care that much whether I use "handle.action" or "action(handle)".
The ideal API would use the default connection handle automatically anyhow, so that there are fewer handles to confuse to begin with for most calls. If everybody thot like me when they design crap, the world would simply just work smoother. (Stop choking please.)
Further, I prefer interpreted environments (perhaps with a Lint-like utility for some early warning.) If I was forced into OOP, I would probably go with Smalltalk or Python than Java or Eiffle or OOPascal (marketability being the same). Thus, haven't given much thot to strong-typed or compile-protection-happy T.O.P.
________________ oop.ismad.com
|
Post #24,943
1/20/02 4:34:38 AM
|
Go away, Bryce.
You asked - politely, I might add - about using objects and classes and I answered. And it turns you don't (still) like the answers. I stand by them. I don't know you well enough to know if you get some perverse enjoyment out of this type of discussion, but I generally don't.
Wade.
"All around me are nothing but fakes Come with me on the biggest fake of all!"
|
Post #25,047
1/21/02 11:25:24 PM
|
Okay, but first I have to get the last word in
>> And it turns you don't (still) like the answers <<
Becuase you are comparing OOP to CRAPPY P/R. If you compare the tram to a Yugo, of course people are gonna take the tram. That extra middlemen arrays and stuff between the query and your loop is UNNECESSARY, yet you were quick to use it to hype up OOP.
Garbage reasoning like that simply reinforces my view of how delusional some OO fans are.
>> I stand by them <<
Then you are unreachable and irrational in my book. And a sh8tty procedural programmer at that.
YOUR EVIDENCE SUCKED
________________ oop.ismad.com
|
Post #25,049
1/21/02 11:35:52 PM
|
Oh my...
Bryce you are an Oxymoron.
greg, curley95@attbi.com -- REMEMBER ED CURRY!!! In 2002, everyone will discover that everyone else is using linux. ** Linux: Good, fast AND cheap. ** Failure is not an option: It comes bundled with Windows. ** "Two rules to success in life: 1. Don't tell people everything you know." - Sassan Tat
|
Post #25,198
1/22/02 7:24:45 PM
|
The king of OOP is typeless
(that would be Smalltalk, of course).
OOP is first and foremost a way to organize info in your head. It existed before the invention of "objects" in the form of APIs and handles. Of course, using _real_ OO language helps to make it easier, but, just like a concept of procedure existed before Fortran, the concept of "object" existed before Simula or C++. It just was not called that way.
|
Post #25,482
1/24/02 12:49:40 PM
|
I agree with your premise, but....
>> The king of OOP is typeless (that would be Smalltalk, of course) <<
I didn't say otherwise. I would note that Smalltalk lacks certain protections of the typed OOPL's IIRC. As long as the message names match, it generally ain't care.
>> OOP is first and foremost a way to organize info in your head <<
Some OO fans may dispute this. They may say it reduces actual change work (maintenance effort) by reducing the average number of different spots that need changing. However, I would also note that every head is different. Tables are easier for me to grok than code. Thus, the more control and management info factored into tables, the easier it is for me to grok not only the structure, but the control contents themselves.
>> Of course, using _real_ OO language helps to make it easier <<
The "easier" part excapes me. Nobody can externally isolate it, instead telling me to just try it for 7 years and will eventually "click".
>> the concept of "object" existed before Simula or C++. It just was not called that way. <<
In my view, some zealots got carried away with certain "cute" ideas and made languages around such extremism. For example, the flexibility of has-a overrides any minor code savings from the "automatic dispatching" of polymorphism (is-a) IMO. IOW, has-a has a lower cost of "degeneration" away from mutually-exclusive divisions by sub-categories. (I know, not all polymorphism requires that, but the vast majority of it in modeling does.)
________________ oop.ismad.com
|
Post #25,784
1/25/02 6:17:30 PM
|
People's brains are different indeed
>>>>>>>>>>>>>> In my view, some zealots got carried away with certain "cute" ideas and made languages around such extremism. <<<<<<<<<<<<<<
Or, to tone down the language, some people created languages to suit the way they thought.
Other people created Lisp. Turns out, "Code is data" does not mean self-modified code. I recently found that it means something else, much deeper: you can actually store/present your data as code, to a point that dictionary data structure needs no data at all, it's just a function.
Still other people created Prolog. Give me logical constraints, and I will create a solution that satisfies them. Or a few solutions. May be in a second, may be in a week.
But most people think in terms of "things" doing something to other "things". Hence the popularity of OOP. As long as there is one big "thing" doing everything in the code, you don't need it. When you have more than 1 - sorry, can't escape it. Whether you call things "objects" or not.
You, apparently, dont think in such terms. I'd like to know how you think. Long rambling "stream of consciousness" about a programming problem would be appreciated.
|
Post #25,880
1/26/02 2:45:22 PM
|
head survey?
>> Or, to tone down the language, some people created languages to suit the way they thought. <<
I think *every* language is like this for the most part. A universal metric has never been found (or at least agreed on).
>> I recently found that it means something else, much deeper: you can actually store/present your data as code, to a point that dictionary data structure needs no data at all, it's just a function. <<
Perhaps. However, I lean more toward "code as data" rather than "data as code". Tables give a 2D view of information relationships, whereas code gives a mostly 1D view.
>> But most people think in terms of "things" doing something to other "things". Hence the popularity of OOP. <<
I won't dispute that some people indeed think that way, however, I question your suggestions of commonality. Many hard-core OO fans often complain that most programmers "keep slipping and slidding back to procedural", suggesting that the guts of these "slackers" are really procedural, or at least mixed.
>> You, apparently, dont think in such terms. I'd like to know how you think. Long rambling "stream of consciousness" about a programming problem would be appreciated. <<
Isn't that how you guys characterize my website? :-)
I just seem to grok controlling information better as tables than as programming code for the most part. Tables are like the rolls of punched paper in player pianos: you don't have to grok how the piano works to see the tune. A flag will say, "I do feature X", but you don't have to bathe in the details about how feature X is implemented right then and there. The simple "what" is not mixed into the complex "how". Doing such drags them *both* down.
>> As long as there is one big "thing" doing everything in the code, you don't need it. When you have more than 1 - sorry, can't escape it. Whether you call things "objects" or not. <<
This seems to be saying that OOP is "better partitioned" than p/r. I dispute that. Things are divided by "tasks" in code (and entities in the db). No matter how huge the app/system is, each task can be considered relatively independantly. Plus, you don't get near the protocol coupling as you often do in OOP IMO. The tables are the large-scale glue and not code, and tables are easier to grok than code.
________________ oop.ismad.com
|
Post #25,905
1/26/02 9:15:26 PM
|
Re: head survey?
I've been told my head was unusually large and gave my mother problems at birth.
Oh, wrong topic.
"Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth
|
Post #25,918
1/27/02 12:03:16 AM
|
Is that why she walks funny? :-)
________________ oop.ismad.com
|
Post #25,923
1/27/02 12:27:18 AM
|
Here's an idea for you.
I just seem to grok controlling information better as tables than as programming code for the most part. Tables are like the rolls of punched paper in player pianos: you don't have to grok how the piano works to see the tune.
You have an advantage on me, then. I can't read piano roll notation. I tried it in a sequencer several years ago; nup, couldn't do it. So I found another sequencer that works entirely in manuscrupt.
So I suggest you might want to be more upfront about not grasping OO thinking. A hot "I can't understand it, so it sucks!" is rather less effective than a "I'm sorry, I don't get it - no, don't bother explaining, it's okay" or an "It still doesn't really make sense; have I got this bit right? ___", depending on what you're fishing for.
Wade.
"All around me are nothing but fakes Come with me on the biggest fake of all!"
|
Post #25,954
1/27/02 3:49:17 PM
|
how != why
>> You have an advantage on me, then. I can't read piano roll notation. I tried it in a sequencer several years ago; nup, couldn't do it. So I found another sequencer that works entirely in manuscrupt. <<
I made a custom MIDI sequencer based on tablization and "piano-roll" views:
[link|http://geocities.com/tablizer/foxmusic.htm|http://geocities.co...foxmusic.htm]
>> So I suggest you might want to be more upfront about not grasping OO thinking...."...have I got this bit right?..." <<
I am not quite sure what you mean. There are two different issues here:
1. Understanding how an OOP program works.
2. Understanding *why* it is "better".
#1 is generally not the problem (aside from OO-Visitor, but it is not used much in practice anyhow.)
The more I tried studying it, #2 did not improve at all. If anything, I found more stupid justifications for OOP in the books. Something is either wrong with 95% of all OOP authors, or something is wrong with OOP. The second is the most likely. BTW, does anybody here want to defend Meyer's "panel" thingy in OOSC2?
To sell me, I would have to see some good examples of OOP business applications side-by-side with decent p/r versions, and a detailed account of why the OOP version is better using things such as change impact analysis.
________________ oop.ismad.com
|
Post #26,165
1/28/02 6:27:13 PM
|
Getting inside your head...
What I'd love to see is a demonstration of a solution for a problem that you'd encounter in your code. Not solution itself, even. How you thought to arrive at the solution. For example, in OO I often say to myself: "This bunch of functions looks like an object interface. Time to introduce another object". Or, "I don't know how to divide responcibilities here, I don't understand who does what to whom. Am I missing an important actor?"
That's the kind of dialog I'd like to see here, but done your way.
|
Post #26,178
1/28/02 7:51:03 PM
|
Maybe in a new thread though... ;-)
Regards,
-scott anderson
"Welcome to Rivendell, Mr. Anderson..."
|
Post #26,196
1/28/02 9:16:43 PM
|
(I moved discussion to Flame Quarantine area)
________________ oop.ismad.com
|
Post #26,197
1/28/02 9:33:25 PM
|
Not necessary...
Everyone has been pretty civil so far (other than *cough*Christian*cough*).
Regards,
-scott anderson
"Welcome to Rivendell, Mr. Anderson..."
|