Hacker News new | ask | show | jobs
by kalininalex 4748 days ago
And why specifically do you dislike, say, SQL Server? (except for price; obviously Microsoft wants to make money off of it).
1 comments

I have several reasons but here's the top:

* It runs on Windows and carries with it all that baggage... An unnecessary GUI is always running. Endless security issues. You'll need to reboot regularly to apply patches. You'll also need to deal with things that are unnecessary on other platforms like antivirus packages and--because it comes with that aforementioned GUI--probably a zillion little background daemons (usually with systray icons) that only keep one particular piece of software up-to-date. If your database server asks you to install the Ask Toolbar you've got a problem (haha, Java how I despise thee).

* Lack of built-in pagination or LIMIT-like mechanism. Grabbing a limited subset of any given query in SQL server is like pulling teeth! Just look at this StackOverflow question/answer on how to do pagination with SQL server: http://stackoverflow.com/questions/109232/what-is-the-best-w... If you didn't find that answer by googling you'd be in hell trying to figure it out!

* If your software isn't built on top of Microsoft tools/frameworks working with MS SQL Server is a huge pain in the ass. You'll quickly get into dependency hell just trying to get the necessary modules/libraries working and you'll never get anywhere near as good performance as Microsoft's frameworks. Whenever I'm in this situation I feel like SQL server is a nail and if you're on Windows they give you a hammer but on any other platform they give you a screwdriver and say, "just hit it with the handle really hard. Oh, and use soft wood or plastic."

* Growing SQL server is expensive. Not usually my problem but it is always a concern. It's never as simple as "just adding more servers" because you not only have to pay for the SQL Server licensing you also have to pay for the Windows licensing and all the other licenses that are intrinsic to any Windows install in any given enterprise environment.