Why? Because I hate Oracle. I hate how it works. I hate its name. I hate the logo. I hate Larry Ellison. I even hate The Oracle from The Matrix.



Good to get that out of the way. But I figure, with all of the people out there touched by Oracle, there's gotta be a whole lot who hate it as much as I do. Or, a the very least, have an utter discontent for it. So that's what this is all about: sharing your ramblings about the product/company or, if you're brave, sticking up for the absurdity that has become Oracle. If you want to become an official member, simply reply here.



And believe it or not, I actually have some rational reasons to hate Oracle. So, let me start out by sharing just a few of them them

It’s from the world of UNIX and makes sure you know it

UNIX isn’t just another platform, it’s a whole set of cultural values. Although I respect the other side, I just prefer move, copy, and delete instead of mv, cp, and rm. But not Oracle, goodness no; it came from UNIX, and by golly, it’ll act like it. It insists on a root directory “C:\Oracle” instead of recognizing the decade-old “Program Files.” Its screens don’t look like normal windows. It even refuses to put itself in just as old “Add/Remove Programs” list. And the list goes on. Just to contrast, look at Microsoft’s Office:mac; even the website doesn’t look like Microsoft. Now that’s respect for another culture.

Just use the command prompt, sissy

Oracle is in their tenth revision. Why do they refuse to ship a tool other than a SQL command-prompt? Because real developers don’t need no stinkin’ tool. Unless you’re a “real” developer, you’re forced to use a third party tool. And just take a quick look at the number one tool. Seriously. Don’t let the “I let my kid design my brand” look fool you, it’s like $1,500 or so. The site doesn’t list prices, so I think we know what that means.

I can’t figure the damn thing out

Oracle was kind enough to send a personal edition of their product for me to try out. I installed the whole 2GB bloatware package, guessing on most of the configuration options which provided no defaults. It had a handful of programs it installed, but knowing none actually do anything database-wise, I went directly into the SQL*Plus command prompt. After an hour of figuring out how to connect to myself, I still couldn’t figure out how to get the thing to connect as a SYSADMIN to so I could run some DDL SQL scripts. I don’t think it’s even necessary for me to mention I learned all I need to know about being a DBA (from creating maintenance plans to replication) by just clicking around in Enterprise Manager and reading context-sensitive help.

Optimize it yourself, idiot

I’m going to write a whole separate post going into more detail than this. But, it would seem that real developers don’t need no stinkin’ query optimizer guessing which indexes to use where. I can’t tell you how many times I’ve had to terminate TOAD or SQL*Plus because I accidentally had a non-indexed column in the SELECT list, causing a FULL TABLE scan. Apparently, it’s not up to the database to use an index to filter by row, then select columns from the filtered rows.

The VARCHAR2 Type

Seriously. Thank goodness they don’t have power to name types outside of their database. I could just picture it, a String6 is just like a String4, but concatenates differently (like the now-obsolete String2 did).

The regular “Health Check-Ups” best-practice

I’m going on the word of a few Oracle DBA here, but they claim that it’s a best-practice to have a high faulting consultant (an Oracle Oracle if you will), come in semi-annually and check the health of your database. I’m all about going to the auto mechanic regularly and having the HVAC guy come over once in a while. But that’s because those cars and heaters cannot possibly maintain themselves. Shouldn’t advanced software be able to perform self-maintenance?

It’s an insult to Computer Science and the Relational Model

As our favorite Oracle guru puts it, “One of the remarkable extensions of the Oracle database is the ability to reference Oracle objects directly by using pointers as opposed to relational table joins.” I’m sure I’ll write about this more later, but the insults continue with the instance of using row numbers and the abomination of nested tables. Yes, it takes a lot to create something that doesn’t adhere to First Normal Form. No wonder Mr. Burleson needs consultants like himself to come in later and fix the mess he made.

UPDATE:

T-Shirt + Mug avaiable at http://www.cafepress.com/oraclehaters

Fun Logos at http://thedailywtf.com/images/ihoc