Old chaff, and a little bit of valuable discussion triggered by RandyStafford attacking me on ModernDinosaur. Because lack of time to refactoring, as well as because of the impossibility to conclude it in any significant way when RandyStafford has been sleeping for ages, I moved the raw material here.
Ralph, ConsiderTheSource: CostinCozianu, who admits he's never used an object database.
Imagine, condescendingly recommending an introductory database text to RalphJohnson. That's one of the most disrespectful things I've ever seen in a professional community, let alone on this wiki. Costin, your arrogance discredits you even more than your incoherent arguments. --RandyStafford
Imagine, Randy, I would definitely recommend you to read carefully AnIntroductionToDatabases?, and if you can finnish that maybe you can try FoundationsOfDatabases. And it would do me great pleasure to do that condescendingly.
I've already read Date - 12 years ago in grad school, where I wrote a term paper comparing and contrasting OODBMSes and RDBMSes.
[[ Well, I certainly recommend you to read it again, and this time more carefully. 12 years is a very long time in ComputerScience. ]]
So much for your AdHominem that you're so fond of lately.
So shame on both of us. From AdHominem: "this is a good reason to avoid condescension and sarcasm in conversation. It spoils the conversation. The reason to avoid insulting a person you are conversing with is because he is a person". You are insulting, Costin. Until you change that, I couldn't care less about your ideas. You seem to think only your ideas are relevant, and not your behavior. As far as I'm concerned, that's fallacious thinking on your part within the context of this community. I've been around here for six years or so, to the best of my memory, and politeness and respectfulness have always been the norm and, indeed, expected. It's pretty cowardly of you to be rude and insulting, and then conveniently hide behind an AdHominem defense.
[[ It is only ideas that should be relevant, and by the way I believe and my attitude are not insulting. In contrast yours are beyond any comprehensible limit. I wouldn't have mentioned AdHominem, but I ignored your insults twice before this, and you don't learn anything. It is time for you to take responsibility for what you do. ]]
[[It's clear from Ward's comment about GoodStyle on WikiHistory that civility has always been part of the WikiSocialNorms here, so the ideal that only ideas should be relevant is not the reality of this community. So why should you get to elevate your own beliefs above this community's reaction to you? Why should you be immune to feedback? RalphJohnson described your contribution as "insulting" before I ever even got on this page, and this isn't the first time you've been in this kind of conversation around here - with other people besides me. Multiple people around here have repeatedly had this kind of reaction to you, but not to others, and you maintain it's their problem not yours? FYI in the course of editing some 200 pages over the last five years or so, I've never had this kind of interaction with anyone else here besides you. I'll gladly take responsibility for my actions. Will you? It's true I attributed to you your anonymous contributions on VariousIdeasOnWhyObjectsHaveNotFailed, and I escalated hostilities there with my choice of words. That was in response to your addition of the "widespread dogmatic..." section, whose title and tone I felt to be obviously sarcastic and in violation of the last paragraph on GoodStyle. I could have, perhaps should have, responded differently. But I hate to see pages get poisoned like that. Your addition of that section was the DeathOfThePage. What could you have done differently? What should you have done differently?]]
{ You had very bad reactions, indeed. Maybe you should consider why your reactions or other's reactions to me are escalating. They're much worse than the "rudeness" they're supposed to react to. I never considered the expression of ideas to be rude, nor the expression of ideas should be hindered by political considerations. So if I point out flaws in object database, or I contradict your well entrenched prejudices against relational databases, you tend to react angrily, even in a personal manner. Some ideas are good, other ideas are not so good, others are simply bad, there's nothing new under the sun. When ideas conflict, it is people who take it personally, and that's bad. The traditional solution in wiki was a strange kind of political correctness, where you're supposed to let others SaveFace?, which is hypocritical. Everybody and their friends should just drop their personal egos from the discussio, that's the right solution. }
{ RalphJohnson qualified this page bogus, and dismiss it out of hands with little justification, even if it was a respected scholar who came up with this term ModernDinosaur. They're many, many others (including both scholars and engineers) who think the same. It's not like you can blaim this whole page on me, and say that it is just CostinCozianu that wants to show off his "rudeness".}
{ The same thing goes about "widespread dogmatic attitude". To be truthful and conforming to CriticizeBluntly, I should have added ignorant which is much more than dogmatic, because a dogmatic but informed and justified attitude is not to be condemned. And again, there are other very important people who have said it before me. That's an objective qualification of what happens in OO communities, as viewed from the outside. They learn a little bit about OO, and they know nothing more, nor will it ever cross their mind that . It goes from the bottom all the way to the top. If you feel insulted by this, be my guest. If you feel you're affiliated somehow to the idea of OO community, throwing your anger at me is not going to help at all. }
{And you'll never be able to justify your double standards. You react angrily when your ideas are under attack. When other's ideas are qualified (they are not even attacked as such ) under insulting terms, you couldn't care less. Nor the so called "wiki community" for that matter. }
As for the argument from authority you're trying to make, I have more reasons to believe that ChrisDate is the real authority on the subject. However, unlike you, I'm interested more in arguments and logic rather than in the apparent authority of ChrisDate, RalphJohnson, MartinFowler, ScottAmbler or whoever you wish to nominate here for a popularity contest.
It's quite obvious that you're interested in arguments. However I've yet to see much cogent logic from you.
Back in the early 70's one noted computer scientist, Charles W. Bachman was far more popular than Dr. Codd as an authority on databases.
So what?
It didn't mean he was right, however, and unfortunately for him, many people hear of him today in relation to the famous Codd Bachman debate which he lost.
You conflate "right" with "most popular". "Right" is context-dependent. "Right" is in the eye of the beholder. There's no one "right" that fits all.
But many so called OO "gurus" of today, revamp the same old arguments from debate, under the disguise of ObjectOrientation
Prove it.
[[ Simple. Bachman talked about "programmer as navigator" in the sense that database accesses is essentially navigation from one record to another along the edges of the Network or Hierarchical data model, it's the same argument that OO gurus come with today. But I strongly encourage you to read ChrisDate for the full account. ]]
[[That doesn't "prove" that OO "gurus" of today "revamp" the arguments. How do you disprove that the similarities you observe are not mere coincidence? Show me a specific citation from popular current OOA literature to ancient DBMS literature, and its surrounding context. Besides, even if there are similarities, so what? Why would that automatically make navigating object pointers inherently "bad" or "wrong"?]]
{ Oh, it doesn't, does it ? If you want me to prove everything you want me to prove you'd be WastingPeople. Have a look at your dear object databases, to see how they do things, have a look at EjbFlaws among other, if you want literature, google it on the web. Everybody and their friends in OO cry that they can't navigate and they have to do expensive joins when navigating a pointer is much more efficient. Do you contest that ? }
{ Navigation is not "bad" or "wrong" per se. You can do it once in a blue while. it si "bad" and "wrong" when it is the primary way of data access, or as it happens often, when it is the only way of accessign data. And if you have remaining doubts, you should consider that relational queries subsumes navigation, so the standard OO argument has no merit besides ignorance. I hope you aren't going to revive Codd bachman debate on wiki, are you ? }
There's absolutely nothing in the basic principles of ObjectOrientation, that justify the fact that Object DBMSes have the same basic flaws.
I think what you're trying to say is that "there's no fundamental reason why object DBMSes have to have the basic flaws that they have", but you haven't established that they have "basic flaws".
[[That's why I referenced AnIntroductionToDatabaseSystems. I guess you might be allergic to Date, therefore I recommend you FundamentalsOfObjectOrientedDatabases. I trust your reading abilities. ]]
Was I condescending towards RalphJohnson ?
That's for you to think about. He's a PhD, a distinguished faculty member at one of the finest computer science universities in the world, and one of the most respected people our field.
[[ I acknowledged that. Does this give him a position of authority on databases ? ]]
[[No you didn't - not his academic credentials. All you said was you have great respect for his work on DesignPatterns. How do you know that as a PhD and university faculty member he hasn't taught courses on DBMSes, and read more about them than you and I combined? The polite thing would have been to give him the benefit of the doubt. That was the arrogant and condescending part. I'm sure he knows enough about them that he doesn't need to hear from you what introduction he should go read.]]
{ Where do you read that ? I haven't challenged RalphJohnson to read. However the current state of knowledge in the database is summarized in AnIntroductionToDatabaseSystems. It would be futile for me to bring a quarte book worht of arguments, into one wiki page, so if RalphJonson? knows something better he should say it, but not dismiss out of hand. }
Although I have a great respect for his work on DesignPatterns, I have no reason to believe that his expertise spreads over to database related issues.
You might like to look at an object/relational mapping pattern language he co-authored: http://www.joeyoder.com/Research/objectmappings/Persista.pdf. That's a "database-related issue", isn't it?
[[ Yes it is related to databases. I wouldn't have brought that into discussion but that particular paper doesn't lead me to believe RalphJohnson is particularly knowledgeable with regards to databases. If he was, he wouldn't have repeated the common OO nonsense "Provide an OID Manager that creates unique keys for all objects that need to be stored in the database. Insure that all newly created objects that need to be persisted get a unique key." And by the way, it's the same fundamental mistake that is made by KyleBrown, ScottAmbler, and became so unbelievably popular in OO circles, with serious consequences with regards to the quality of relational database schemas in production. I guess you don't need to be explained why this is a mistake, because I've done it before. ]]
[[Might you be so kind as to provide that reference, so that I can re-familiarize my self with your position on that issue? Thanks.]]
{ Try RelationalHasNoObjectIdentity, ObjectIdentity. Much better, however is FundamentalsOfObjectOrientedDatabases. }
Therefore I challenged him to argument his position, which is a normal thing to do.
''As it is your resolution (that XML, OODBMSes, and UML are "modern dinosaurs"), it is your obligation to speak first with the affirmative construction. Instead your pattern is to troll, wait for someone to cry foul, and then challenge him to refute your position. That's the reverse of the way formal debate is traditionally conducted, and cheap, and lame.''
[[ Not at all. It is him that challenged the conventional wizdom that network and hierarchical data models are in fact inferior to the relational model.]]
[[Actually, you're wrong about that. All he said was that the things on the list work. He didn't assert that anything was superior to anything else.]]
{ And exactly this is the flawed argumentation. Both on his part and on your part. ModerDinosaur?s work. So does IMS, COBOL programs, PL/1 and a host of others. }
In particular, AnIntroductionToDatabaseSystems contains a very detailed account about the particular issues discussed here: the difference between OO databases and relational ones, and why OO databases are, in ChrisDate 's argumented opinion, a ModernDinosaur. Therefore, it is a valid reference in this context.
"Argumented" is not a word in the English language. Perhaps you meant "stated"? "Considered"? Regardless, ConsiderTheSource. What would you expect him to write? "Oh, yes, I was wrong all along for the last 30 years. The relational model sucks and the object model rules." If you ask IBM who makes the best mainframe, what do you think they'll say?
[[ That's what I ask you to do, ConsiderTheSource. He is one of the most noted, recognized and appreciated authorities in the domain of databases. But before you do that, consider his arguments. You might give it a try and read the latest edition of IntroductionToDatabaseSystems?. 12 years ago, when you say you did it everybody and their friends posited that OODBMSes would take the database market by the storm. ]]
[[OK, I will. I'll re-read [the newest edition of] his book. And maybe I'll get religion and renounce the heresy of most of my professional experience.]]
[[And by the same standards, why wouldn't RalphJohnson or you for that matter admit you were wrong all along ? ChrisDate is among the few people left around who's more than eager to admit his mistakes and correct his positions when they become no longer valid. Please go and read his books and his papers, before you argue such nonsense. ]]
[[I have no problem admitting it when I've been mistaken or held an unenlightened opinion about something. But I'm not "wrong" to disagree with your assertion that OODBMSes are a reinvention of an outdated thing and have failed. They certainly haven't failed for me. On the contrary, they've worked quite nicely, thanks. I and others have found them to be a much more modern and successful approach to object persistence than any of the alternatives.]]
{ They haven't failed on you. Glad to hear. Neither C has failed on me, ever. The problem that you have is that you confound data management with object persistence. }
You brought one more "argument" that I never used an OO database. That is true as a fact, but as an argument to this discussion is simply flawed. Do you think that I ought to use an object database ? As a SoftwareEngineer I have a responsibility towards my patrons to choose the most adequate technical solution for the problem at hand, and not to build up my resume with ObjectDatabases?, EnterpriseJavaBeans, TopLink or whatever else you might think I ought to use. It was my informed professional judgement that for the the things I've done so far relational DBMSes are a superior technical solution.
I see. Your professional judgment of OODBMSes is not informed by first-hand experience. That's unfortunate, because ExperienceIsTheBestTeacher?. I think that makes my point amply relevant. We can play "my authority can beat up your authority" until we're blue in the face, but those invocations pale in comparison to the lessons of experience. Yes I think you should use an object database in a real enterprise application development, so like me you can speak to both sides from a position of first-hand knowledge of the consequences (instead of second-hand knowledge of the theories).
[[ Therefore you recommend that I should risk a project just for the sake of me getting first hand experience ? That's a really lame advice. I submit to you that if a theory shows 2+2=4 you can't in good faith try to experiment with a product for which 2+2=5. Before I would ever experiment with an OODB, unless I am paid precisely to do just experimenting, I'll try to see if it's up at least to the standards set forth by DrCodd, and only after that if it measures up with regards to FundamentalsOfObjectOrientedDatabases. But it is unlikely that this can happen soon. I also recommend you to carefully read EwDijkstra on a daily basis, he might persuade you to change your opinions of "second-hand knowledge of the theories".]]
[[Yes, I recommend that you "risk a project" to get first hand experience. How else are you going to get first hand experience? It doesn't have to be critical project - it can be a low risk project, or a planned early design prototype on a more critical project. I submit to you that if a theory is not sufficient to explain observed phenomena, then the theory needs to be thrown out the window. In the last decade there have been many successful systems built and run on GemStone, Jasmine, ObjectStore, Poet, Versant, and others. Some of the more famous GemStone ones were at Texas Instruments, OOCL, Bell Atlantic, Florida Power and Light, Chrysler, Genomica, and Celestica, just to name a few. How does DrCodd and his theories explain that?]]
{ You confound here, probably deliberately, empirical theory with formal theory. There's no need for database theory to explain why projects succeeded with object databases, neither is there a need to explain why COBOL indexed file were successful at their time, or why projects with Oracle and Gemstone have failed, or why projects with Oracle and C were successful, or any combination thereof. }
{ If you think your argument is valid rather than derisory, you should start by explaining why a project filled with GrandMasterProgrammers and Gemstone/S (namely C3) failed so seriously, while tons and tons of corporations use Oracle Applications, or SAP, or PeopleSoft to pay salaries and do much more. Please note, that I don't make this demand, but onyl if you believe this line of reasoning is justified. }
Some brave AnonymousOnPurpose interjected in the above:
(If you haven't used a solution, you aren't in a position to judge what's most adequate.)
Nevermind it is already answered above, and is terrible to interject it mid sentence, but let me reiterate: am I not allowed to make use of the best scientific and engineering literature at hand, and instead, am I to try all the bells and whistle at the expense of project sponsors, so that "having used all solutions" I can make a better decision for the next project ? This argument is ridiculous.