Tim Soderstrom wrote:
Yo Jim!

I'm curious as to what your thoughts are in regards to the fact that the standard isn't itself open? Correct me if I'm wrong, but every-time something is added, removed, or changed in Drizzle in terms of syntax, some guy that happens to have a copy of said standard has to validate it? To me, in an open source world, that doesn't make any sense.
I believe that older and draft versions are available for free. That said, I don't think anyone has argued that drizzle implement every silly feature that some company get pushed into the standard. There's a lot of stuff there are vanity features, things badly thought out, design by committee, etc.

My only point is that drizzle should not have *arbitrary* differences from the spec. If you have update syntax, you should use the update syntax from the standard unless there is an overriding reason not to. Extentions are OK.

What is not OK is taking syntax from the standard (like identifiers) and deciding your identifiers should behave differently. Maybe your rules are better and maybe they are worse, but neither drizzle users nor perspective drizzle users are well served with arbitrary differences.

Case in point. SQL triggers bay at the moon (having invented the cascading trigger, this is something I have strong feelings about). So in Netfrastructure, I ignored SQL standard triggers and implemented Java-based triggers instead. But nobody is going to confuse the two. It's a difference, but not an arbitrary difference.

The more difficult cases occur when you implement something that gets standardized later (this is the only honor place for a database developer). Then you have to deal with the hash the drones made of your work and figure out how to converge. At Interbase, we innovated in GDML and waited for the SQL committee to bless it before moving it into our SQL. Unfortunately, that isn't a useful strategy anymore.

I know there's stuff in the official SQL standard that doesn't make any practical sense. Implementing those would be, well, impractical :) Drizzle's core is probably not going to need to worry about many of these anyway since they are, if I remember correctly, in relation to views, procedures, objects (I think?), etc. Alot of that seems like it would be a pluggable module into Drizzle anyway.
See above.

So, while bucking the standard isn't a good idea in the grand scheme of things, I think there could be times where it could make sense to do so. The difference is that I think Drizzle's SQL standard should be openly published and freely available for others to implement. In fact, I'd say all the open source DB's and the DB platforms that care should work on an Open SQL standard and adhere to that.
Sorry, but only an idiot bucks an international standard and declares his alternative a de facto standard. There is no difference between open source databases and commercial databases, except, perhaps, the arrogance of the developers.

If you want to lead the world in features and functionality, go ahead and innovate. If you're only playing catch up, you might as follow the standard.

Note: It's sometime worth understanding the standard before diverging. You might learning something. For example, you would have learned that folding to lower case doesn't work for many languages.

Until we have an Open SQL standard, while inherently I agree with you, I'm not so sure Drizzle needs to worry so much about the closed SQL standard. Correct me if I'm wrong, but Drizzle is mostly compliant, or at least will be depending on what people decide about those terrible back-ticks. Any place were Drizzle deviates can't be by much since Drizzle doesn't support a huge number of things from the standard in the core. So if Drizzle is just a little off, I would think a simple migration script would allow migrating to and from multiple DBs. That's not ideal, but then again, neither is having to pay money for a silly standard.
Look, I agree with you about paying for the standard. The SQL standard was originally intended as a barrier to entry to the database market. Bad idea, and it didn't work.

Let me make a suggestion. Why don't you think about ways to attract potential users to drizzle rather than thumbing you nose at them? An "open source database standard" would let you poach customers/users from PostgresSQL. Why not raise you sights a little higher and endeavor to poach users from Oracle or Microsoft?

$0.02

Tim

P.S. If I'm totally wrong about any of that, feel free to openly flame away :)
See above.


On May 3, 2009, at 2:40 PM, Jim Starkey wrote:

At the risk of boring everyone to death, I'd like to explain a bit more about why I continue to push a standard I don't like.

In the computer world, like many others, there comes a time where a technology is good enough. At that point, something better has a very high bar to acceptance. Yes, this leads to less than optimal standards, but a good enough standard allows folks to concentrate on newer and more interesting stuff. Lotus 1-2-3 was good, but not good enough. Excel, on the other hand, is widely regarded as good enough, sufficiently good that competing against it is pointless. X-11 is another example. X-10 wasn't good enough, X-11 is. Sun's News and display postscript were both better than X-11, but not sufficiently better to bother with.

When the marketplace speaks, one should either listen or prepare for a life a deep frustration.

SQL is clearly good enough. It had all sorts of competitors, all of which are nearly forgotten. SQL won more or less fair and square -- there were multiple implementations of SQL, mostly incompatible, a couple of implementations of QUEL, a couple of implementations of the DEC/Interbase language, and any number of forgotten one-offs.

Due to pressure from users, the various SQL implementations have gradually coalesced around an official standard. The process was ugly and rigged, but the world spoke very clearly that it wanted a standard database language, and those products that wished to ignore the standard would be punished.

MySQL has an idea that it sets it own standard. This is not only horseshit, but blatantly anti-democratic horseshit. It is the same horseshit that Oracle and Ingres tried to pull with non-standard SQL and QUEL -- languages that they controlled and the rest of the world be damned.

The MySQL attitude toward SQL is stupid, ignorant, short sighted, arrogant, and just plain wrong. Interoperability with the rest of the world is important because it lets people use database software to solve one set of problems so they can concentrate on other sets of problems. Throwing roadblocks in front of users that both impede acceptance of drizzle or MySQL and, not incidentally, prevent users from converting to other systems, is profoundly unfortunate.

So, drizzle, join the world or thumb your nose at it and go your own way. But please don't proclaim out of one side of your mouth that you are a SQL database system and out the other that you aren't willing to go beyond lip service to the standard.

When you have semantics beyond the standard, by all means go your own way. Innovation should not be stifled by a standard. But if the only motivation for divergence from the standard is to show the world that you're smarter than everyone else (or, in the case of MySQL, too dumb to fix it), give it up and get a life.

Let the counter-rants begin.


--
Jim Starkey
President, NimbusDB, Inc.
978 526-1376


_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp


--
Jim Starkey
President, NimbusDB, Inc.
978 526-1376


_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to