Why SQL server was never ported to Unix
hal2020.com
hal2020.com
The decision to support anything new in the enterprise infrastructure space, given that you'll often be asked to support it for (literally) decades, is non-trivial even when you only have one platform to worry about. But especially when the second (or nth) platform in question has very different end-user expectations for usage conventions, documentation, scriptability, etc...it takes a very special partner opportunity (or end-customer so huge that it might as well be a partner opportunity) to make it worth pulling the trigger.
Databases in particular strike me as poor candidates, because the space is so hotly contested by organizations capable of research-class CS and deep optimization. So of all the things you might port to a new platform, MS SQL Server (a platform in itself) represents an enormous risk.
Red Hat (the company I work for) sells quite narrow products. For example, we'll sell you and support PostgreSQL but only on Red Hat Enterprise Linux, or KVM but only on x86-64. Upstream, PostgreSQL runs on BSD, Windows and a zillion other platforms. KVM supports i386, S/390, PPC and a few others.
You can either be a customer, or you can port yourself / find another partner to make the code work on other platforms. This only works because it's open source software.
I have a hard time believing that. I used to write to the Windows internals API a lot (the kind of stuff you see on sysinternals), and I can't imagine the sql server team not doing the same. That stuff was not easily ported to Linux, at least in the late 90's / early 00's.
It would have taken significantly more effort to bring the server to product quality on multiple *nix platforms.
If there is a compiler on the platform for the language in which the product is authored, getting core functionality standing up and walking can often be accomplished in a shockingly short timeframe. Getting things to run well, properly documented, interfacing as desired with other components on the system, and effectively marketed to a different audience...much harder and time/resource intensive.
It also kinda confirms what we already know - that every department of MS is geared towards pushing their whole software stack and to change would be like trying to redirect an iceberg.
Yes, you're right. That's what it was actually about. MS was (and still is) trying to kill all competition. Building products for the competition is a sort of approval and a confirmation that the particular product is worth using.
None of the reasons in the article make much sense to me except for the one left for last, that it just doesn't make overall strategic sense for Microsoft: Microsoft's model is pushing Windows, and selling SQL Server for an alternative OS is a bad idea (it's a good idea for SQL Server revenue, but bad for overall Microsoft revenue).
As others said, Gates would have veto'd SQL Server for Unix, that's the bottom line.
It does contrast rather strongly, though, with the experience of Oracle and Informix trialing their first Linux ports. "We just typed 'make'" was the quote out of Oracle at the time. While I'm reasonably confident that there has been a bit of platform-specific tuning since then, the point is that writing code for a standards-based platform (UNIX and POSIX) made porting to a new target pretty straightforward.
I'd reduce it all down to: we didn't want people to use SQL Server on *NIX because we wanted to sell them expensive OS licenses & licenses for other products.
>environment no one really knows nor cares what the underlying OS is. SQL Azure thus becomes Microsoft’s answer for those who don’t want to run an in-house Windows Server just so they can run SQL Server.
Nope, not really, I do care about the database and about the underlying OS. I don't like to use Windows for web hosting mainly due to its unpredictable HDD space usage (Windows folder growth vs number of installed updates over time).
Also, in Microsoft land, it's pretty difficult to be "up to date" with everything. You install hundreds of updates for the OS, the database and other components and there are some extra hotfixes you normally get when you have a support contract with them.
There's also the issue of the performance. You need more hardware for Windows than for other OSes. I had an "enterprise" CRM we will not name which had low performance on a Windows 2008 R1 Standard. I tried to upgrade it to R2 and the CRM stopped working completely. Of course, this wasn't done on the production box.
Yes, please, do reduce an elaborate article discussing technical and business trade-offs into a silly anti-MS rant that wouldn't be out of place in Slashdot circa 1999 for us.
See? Read that part "I was undermining Microsoft's entire business plan", please. That also includes the monoculture and the perfect vendor lock in.
The main issue is that you can't easily move to another platform when your entire app / system runs on MS software. If you use Oracle's DB or something else for an app with a DB, you could move away from Windows if you decided to, provided you are ready to and can make the required changes to your app's code.
As for "my rant", it looks like the porting to *NIX was just an idea, not something they were seriously considering. I never expected them to do it because some people would choose not to buy Windows licenses and just buy SQL Server licenses, not both.
That's hardly a rant. It's just the long story of MS vs. the "viral" open source / free software.
That's hardly a story.
Company wants you to use their products instead of OSS/whatever alternatives. News at 11.
Of course I maybe having some sort of strange drug induced flashback but kinda remember this?
RB
I weep cold salty tears into my stale cheerios at the thought that any large Enterprise was ever seriously considering it as a viable solution.
We call the generic category "SQL Server" belongs to: database servers, or relational database servers.
No one uses "sql server" for something besides naming that specific MS product.
sigh