Re: [HACKERS] Enticing interns to PostgreSQL - Mailing list pgsql-advocacy

From Jim C. Nasby
Subject Re: [HACKERS] Enticing interns to PostgreSQL
Date
Msg-id 20050723162405.GF37022@decibel.org
Whole thread Raw
In response to Re: [HACKERS] Enticing interns to PostgreSQL  (Bruno Wolff III <bruno@wolff.to>)
List pgsql-advocacy
On Sat, Jul 23, 2005 at 08:41:07AM -0500, Bruno Wolff III wrote:
> I don't see a problem for the professors or students using MySQL to learn
> database theory. For a first course in database theory you could use
> almost anything to practice issuing some DDL and DML commands.
>
> It might be nice PR for Postgres to have professors using that instead
> of MySQL. So as a Postgres developer or user you might not like this,
> but its not as if the students are going to be scarred for life by
> using MySQL to practice creating tables and doing simple queries.

The problem is that not only does MySQL tend to shun ANSI SQL (think
concat v. ||), but it also does a lot of things no real database would
ever do, such as silently truncating data, or allowing count(*) to
return an estimate instead of an actual rowcount. These (and other)
'MySQLisms' would certainly end up in any class, and it would be very
easy for students to think "Oh, this is just how databases are supposed
to work."

> What great alternative to Linux do you think there was when Linus started
> working on it? Free versions of BSD came out while Linux was still pretty
> raw, but they had issues of their own. It might have been better to take
> up a collection to free some existing OS, but that wasn't likely to happen
> at that time.

IIRC, FreeBSD (or maybe only NetBSD) was readily available at the time
Linas wrote Linux, there were just some licensing questions. This would
obviously be an issue for commercial use, but not really for personal
use.

But, that's really neither here nor there; my point is that linux (like
MySQL) was for a very long time significantly inferior to the *BSD's.
The only advantage it offered was it would run on cheap hardware. For a
long time it was largely (and perhaps rightfully) poo-poo'd by FreeBSD
developers.

Now, FreeBSD (the largest of the BSDs) can only dream of having the
amount of development effort available to linux, even including all the
work that Apple is putting into BSD and Darwin.

> > Why should this matter to PostgreSQL and it's users? Because if MySQL
> > becomes the defacto open source database, that means it will be much
> > more difficult to use PostgreSQL in professional environments, and that
> > many people who might have developed for PostgreSQL will end up
> > developing for MySQL.
>
> That seems unlikely to happen with the owners of MySQL threatening users
> with money to cough some up or risk being sued.

We can always hope they eat the goose that laid their golden egg... :)

> I don't think the open source database market is going to be reduced to
> effectively one system any time soon.

Soon? No. But I strongly suspect that given the current situation, MySQL
will eventually be the defacto OSS database, just as linux has become
the defacto OSS OS. This is already happening despite all it's technical
flaws, and will only get worse as those flaws get 'fixed'.

> The main problem I see is that some applications have been developed such
> that they are tied to MySQL (either form using its quirks extensively or
> being designed so that performance sucks on other databases) so that we
> are stuck running some MySQL servers to run these applications. However
> just because we run them to support specific applications (e.g. Horde),
> doesn't mean we need or want to develop are own applications using
> MySQL.

This is a perfect example of why MySQL could end up as the linux of
databases. People write applications that depend on MySQL because it's
'what everyone else does'. They don't use any kind of abstraction layer
because it's 'what everyone else does'. And they don't understand things
like why ACID is important, because 'nobody else does'.

I've run into numerous people who are 'stuck' with MySQL, because it's
too hard to migrate. As one person recently put it, "I wish MySQL sucked
more, because then it would be easy to decide to migrate. But it's just
barely OK for what we need, so we stick with it."

Fortunately, word is slowly getting around that PostgreSQL is better
than MySQL, but I suspect it's too little too late. While I expect MySQL
5.0 to still suffer from serious flaws, it will remove a lot of the
shortcommings that are easy to point out and easy to understand why
they're so bad. This makes it more and more difficult to convince people
that PostgreSQL is a better choice, because people love to follow the
herd.
--
Jim C. Nasby, Database Consultant               decibel@decibel.org
Give your computer some brain candy! www.distributed.net Team #1828

Windows: "Where do you want to go today?"
Linux: "Where do you want to go tomorrow?"
FreeBSD: "Are you guys coming, or what?"

pgsql-advocacy by date:

Previous
From: Bruno Wolff III
Date:
Subject: Re: [HACKERS] Enticing interns to PostgreSQL
Next
From: "Joshua D. Drake"
Date:
Subject: Re: [HACKERS] Enticing interns to PostgreSQL