As will surprise nobody who knows me, the shininess of the Firebird database server had been blinding me since I posted that interview yesterday. It was calling my name, so I just had to download and install it.
I’m extremely happy with what I found — it’s a free database server with a ton of features you’re not going to find in MySQL. There’s a self-extracting Windows installer, it installs itself as a service, and it even gives you a little Control Panel applet to manage it.
It has support for foreign keys, views, triggers, and stored procedures (with what looks like a very rich procedure language). There’s full PHP support through the ibase_* set of functions and it’s supported in the ADODB database abstraction library.
There’s not much in the way of free clients. It comes with a command line client, of course, but I didn’t find any free graphical clients. There’s this one and this one, but they run from $79 to $250.
I still don’t quite have a handle on the genesis of the project. I gather it came out of Borland’s InterBase product, but I’m not sure if InterBase continues, or if it was abandoned (there’s a Windows 2003 version of it, so it’s probably still alive in some form). Firebird (and InterBase) penetration appears to be most heavy in Europe. It’s commonly used with the Delphi language (another Borland product).
In browsing some of the message boards about Firebird, I got the same…vibe that I got about MySQL five years or so ago. There’s a lot of buzz, and there seems to be a lot of transfer from MySQL to Firebird. The talk all seems to be exceedingly positive.
So why would you use MySQL over Firebird given that the latter has support for so many more features and is just as free? I guess I’m a little more confident with MySQL’s battle-worthiness, given that it’s been around the block so many times. (But by the same token, InterBase wasn’t in beta or anything — that was a production quality database server.)
So am I ready to switch all my stuff over to Firebird? No…not yet. But I don’t think I’ll look at MySQL quite the same way ever again. This seems like a very attractive option.