Quote:
However I strongly disagree with your assertion on Oracle not being
downwards compatible. In fact it has always been.
And then again: has Mickeysoft ever been downwards compatible? Oracle
had to release patches when Mickeysoft released NT4 sp3, replacing
Winsock1 with Winsock2 !! |
And do you say that upgrade to Winsock2 was a
wrong move for Microsoft and their customers didn't
benefit? Well, quite a few apps had to be updated to
make use of it, but MS provided backwards compatibility
layer that emulated Winsock1 on Winsock2 to make
the transition as smooth as possible. And Oracle is
releasing patches regularly anyway, to fix their own
defects and to implement workarounds for defects or
make use of new features, introduced in operating
systems, so I don't really think it was much of issue.
Actually, I see backwards compatibility requirement
one of the main obstacles to making better software
in general, Microsoft suffering even more than others:
they know they did it wrong, but they can't just say
"Hey, we did it the wrong way, let's just scrap it and
build a new system from scratch that will (hopefully)
do it right." But there are tons of applications built on
that wrong design, using its quirks and tailored to live
with its limitations. You can't just tell all vendors to
scrap those apps and redo them the right way, too.
So you have to keep all those quirks, limitations, bugs
and "features" for the sake of backwards compatibility.
Software evolves, but if it is to be backwards compatible
it has to inherit from previous releases, and not always
the right things. Remember the problems caused by
more restrictive security model in XP SP2? When they
did things right, just partially, it immediately broken
tons of apps that were designed for, and exploiting,
the wrong model.
Pretty much the same with Oracle - they fix a bug, or
introduce a new access path, or change costing model
of some particular access path in the CBO (actually
making it better and more accurate) and all of a sudden
you need to re-tune your SQL because it was tuned
for old CBO behavior and new behavior causes unanticipated
side effects. They upgrade PL/SQL and you need to fix your
old code that exploited quirks in the old engine (yes, it's
usually latent bugs in your code that you need to fix, but it
was working correctly on older releases and now the compiler
simply barks at you. And if that code is wrapped and you
don't have sources, you're in trouble.)
Generally speaking, yes, Oracle was always backwards
compatible within documented limits (I mean, it doesn't
have to be, and usually isn't, compatible with desupported
releases,) but to a degree. There's always "to a degree"
when we talk about backwards compatibility, because the
only way to make software fully backwards compatible is
to stop evolving it.
Best regards,
Vladimir M. Zakharychev
N-Networks, makers of Dynamic PSP(tm)
http://www.dynamicpsp.com