How Microsoft brought SQL Server to Linux
techcrunch.com
techcrunch.com
I jumped on the Linux version as soon as I heard about it. I never got an invite to the preview, but once the Docker container was released, I fully integrated it into our tests:
https://github.com/BigSense/BigSenseTester/blob/master/docke...
I can now pull up all three DBs in containers (mysql/pgsql/mssql) and three instances of BigSense and run tests over all three in a deterministic manner.
I had started working on automating a Windows Server with automatic SQL installation in Vagrant, but that was starting to look really complicated. If it wasn't for MS porting their database to Linux, we probably would have dropped it from the project.
Sounds like they develop a product that can use multiple RDBMS back-ends. Also, I'm guessing that since 90% of the businesses out there use Microsoft products, you would probably want to support their products in such a venture.
On a personal note, I find anything that's not SQL Server to be tedious to work with due to the lack of high quality GUIs, client tools and certain features.
For instance - did you know that Postgres can't easily return multiple resultsets? In SQL Server I just write one procedure containing multiple SELECT statements and my client code can get all of those resultsets with only one call to that procedure. This one feature alone cuts down on all sorts of boilerplate code and trips to the database.
you can do that on postgres as well btw, my first idea would be to create a function [1] and just throw the rows together. still can't imagine a usecase for that though, i'd always want to get them separately if they're unrelated.
you're correct on the GUI side however. Everything i've tried is a buggy mess. i've actually mostly given up on that front and just went with pgcli [2]. its pretty good for ad hoc queries. But it doesn't really help if you're trying to write a function. Its just nice for selects with lots of joins or nested selects.
[1] https://www.postgresql.org/docs/9.1/static/sql-createfunctio... [2] https://github.com/dbcli/pgcli
I usually write queries that return multiple resultsets when the caller needs to get a bunch of data from different tables all at once. (So, all of the time.) Instead of sending each table query to the database server individually, I just query one "stored procedure" in SQL Server. It saves a lot of round-trips on the network and there are other benefits too.
For instance, say my API needs to take the relational data from tables `Customer, Order, OrderItem(s) and OrderShipment(s)` and return them as a JSON object `{order:{customer: {...}, items: [...], shipments: [...]}}`. Or, say I need to render a PDF using those same tables. In either case the client needs to get a whole graph of data out of the database and with SQL Server, they can only send one little query to call my procedure: `EXEC dbo.GetCustomerWithOrderDetail @OrderId=999;` instead of sending 4 or 5 single-resultset queries.
Sometimes I do also end up sending 2 or 3 procedure queries separately, for instance the client might send a query for `GetCustomerWithOrderDetail` followed by `GetPdfTemplateWithDetailForRendering`. So, I get code encapsulation too.
The benefits of this style are exponential in my opinion. Most of the time, my client apps don't even need to know the names of the tables because they are calling procedures, not embedding "SELECT * FROM TABLE" in the client code. The only minor drawback is that the client does need to know the order that the resultsets are returned in ahead of time.
I think there are a few ways to attempt this in PG but none of them seem to come very highly recommended. I looked around just now and found this post:
https://stackoverflow.com/questions/36717138/postgres-functi...
You can see the programmer wants to do what they need to in a very simple way, similar to how it would be done in SQL Server. However, it's not possible. Here is an article that explores some of the options in PG and the problems with each approach:
https://blog.dsl-platform.com/multiple-result-sets-alternati...
You might be "joining" client side if you had something like a master/detail UI. Network round trips are relatively slow and to be avoided if you can (n+1 errors being the pathological case):
https://people.eecs.berkeley.edu/~rcs/research/interactive_l...
Looks like it can, just not as easily: https://github.com/docevaad/Chain/wiki/Multiple-Result-Sets-...
Like the business intelligence features
Datawarehouse functionality Machine learning capabilities within the warehouse suite
Mdx (which enables things like power pivot / power query)
Myself I am a Postgres guys, but man those extras are really enticing to me as a problem solver.
Unless they actually started from a blank source repository then it was not a rewrite.
I only made use of TDS C library, because there were some DML features not yet exposed via ADO and ODBC.
Sybase even in the 11.5 days was horrible. Even with updated stats, it would drop off the cliff and you would suddenly have queries that took less than a second go to multiple minutes. It was the database where I had to force a lot of indexes. It really got confused with simple reference tables. Temporary tables were just plain problematic unless you did the trick of declaring them in the outer procedure and then calling another stored procedure to actually use the temp table.
I never knew the definition of rewrite would be so controversial.
What you wrote is the same but will be a little different
I find this hard to believe.
I do remember 7 on 4 was much improved re: requiring reboots, and the projects I was on ended up doing it periodically more out of proactive concern re: NT4 than real demonstrated problems with MSSQL 7. 1999 project had 80 NT servers running IIS reboot on a schedule every few hours with a big load balancer in front. 70+ up at any one time, always a handful being reboot and coming in and out of the pool. If we didn't proactively do it, they'd just go down anyway. IIRC that spoke more to IIS than NT but again... how can you necessarily tell the difference? Not rhetorical, there were probably good ways to dig in and try to determine root causes (and I think some folks tried or did) but it didn't mean we could actually do anything about it (like patch and recompile the NT kernel).
I don't think this (in the end) is anything more than a marketing trick, there to give the illusion of choice.
This is not uncommon in ISVs, btw. There are many commercial offerings that have a Linux version, crippled in so many interesting ways that it makes it pointless. I'm a Linux person but I advocated against choosing Linux versions (of different products) many times in the past. Actually, that means the marketing trick works.
In my experience, software always has a primary plaform where it shines, and the other "supported" platforms are always stepchildren.
Ignoring Linux compatibility would have knock on effects because Linux is now the platform for so many other tool, e.g. Docker.
Regardless of how easy the 'upgrade and migrate to Linux' story is right now, I think it's vital that MS started down this road. Otherwise the .net framework would be [seen as] finished now, and people would start planning to migrate off it.
Now that practically all the features are available in the standard edition (depending on your support and scale-up/scale-out requirements) it could end up used in production for licensing cost reasons particularly if the availability/DR/scaling features work well (where previously if you needed Enterprise edition the cost of windows was a drop in the ocean - Standard isn't exactly pocket money cheap but still...).
Another PoV could just be that these days interpolarity matters much more to MS than it used to, as their key product focus is moving further away from the OS & individual services and more onto the platform with Azure - they don't care what DB engine you run on which OS, as long as you do so on their platform - hence moves to support postgres & mysql in the database-as-a-service-upon-platform-as-a-service manner that they already offer for SQL Server. Of course they'd prefer that you used Windows and SQL Server but not wanting to (or depending on the project, not being able to) use one needn't get in the way of using the other, not should not using one (or either) get I the way of using Azure.
MS SQL is the product that people are choosing, not Windows. Why should the MS SQL team force people to choose Windows?
I'm incredibly happy Microsoft is bringing SQL Server to Linux as a DevOps person, I'm really hoping SSIS/SSAS/SSRS makes it in eventually because they're the only thing keeping me from saying we should be deploying the new cluster on Linux instead of Windows.
Especially since 2016sp1 when they unlocked a lot of previously enterprise edition only features in standard edition. The scalability is still locked down a bit but those limits have crept up over time also: there is a lot that you can do before 128Gb RAM & 24 cores spread between up to 4 CPUs becomes limiting (core engine only limits there, OLAP services, reporting services, and the mem-optimised engine parts have extra limits on SE compared to EE).
Also a chunk of enterprise licensing is in support which if you are truly at that scale might be worth paying for. But if your company/product isn't there yet that is a cost worry to put off to the future, and as developer edition (which feature-wise is enterprise edition, you just can't use it in production) is essentially free you can test in advance to see when/if that expenditure is going to be worthwhile.
Of course it doesn't beat Free on price, so if postgres has the features & support you need, which for many it has, then it is far from an open/shut case. But compared to the other commercial products in the same market...
> it's been an absolute rock
Agreed. I can't think of another product that I've used nearly as much which has caused us so little hassle over the time. It certainly hands MS's other products their arses in that respect.
Here's my writeup on setting up Windows 10 as a long, long time Linux user https://github.com/chx/chx.github.io/wiki/How-I-set-up-my-Wi...
Every application looks different (yes they used to blame Linux/X11 on that one). It has two control panels (or three maybe), two web browsers shipped with it.
Takes more than a minute to boot on a new and pretty formidable laptop. This is the fresh factory install.
Can freeze the desktop while apparently doing something under the hood (installing updates? scanning malware? summoning the devil?), without any indication as to why, and not come back in five minutes.
Seriously considering overwriting it with Ubuntu even when it's aimed for a non-technical user.
So you want your cake and you want to eat it too? It's pretty well known that as part of the new iterative release cycle they're slowly moving things into the new "control panel". That's not going to happen overnight, and unless you want to go back to only seeing new releases every 4+ years, we're going to have to be patient.
>Takes more than a minute to boot on a new and pretty formidable laptop. This is the fresh factory install.
Then something is seriously broken with the laptop, or you're running off a spinning drive. Regardless, if boot time is your primary factor in choosing an OS, you're doing it wrong.
>Can freeze the desktop while apparently doing something under the hood (installing updates? scanning malware? summoning the devil?), without any indication as to why, and not come back in five minutes.
Between that and your boot times, I would imagine you've got a garbage hard drive. I've never had windows "Freeze the desktop for 5 minutes at a time". A quick google search also finds no relevant posts on other people experiencing the same behavior. Windows updates wouldn't freeze your desktop. Heck, video card driver updates will cause your screen to black out for a couple seconds, but not freeze for 5 minutes.
Linux DEs were blasted for things like that, but now they're suddenly OK for a multi-billion-dollar company's flagship product?
> you're running off a spinning drive
I also happen to walk on the ground and climb up the stairs, being aware of alternatives. That's what I've got in a shop and it has MS Windows logo glued to it.
> I would imagine you've got a garbage hard drive.
I imagine that's what gets sold these days. BTW, I've also bought Xiaomi phone for $200 and it's a real snap.
Yes actually. It's what users asked for, and I rather appreciate it. Linux DEs were BLASTED for breaking things. MS isn't breaking anything as they make the slow transition to the new panels. If you want to use the old control panel, everything is right there where it always was. If you want to use the new panel it will get you 90% of the way there on day-to-day tasks.
>I also happen to walk on the ground and climb up the stairs, being aware of alternatives. That's what I've got in a shop and it has MS Windows logo glued to it.
You're seriously on a technical site claiming you're pissed that you bought a dirt cheap laptop and got dirt cheap components? It's 2017, if you aren't willing to crack it and put an SSD into it, don't complain about performance. The laptop will be slow regardless of OS with a spinning drive.
Having a "windows logo" makes no guarantees of performance. Are you also pissed you can't run games in 4K on your $300 laptop?
Whoooa! I've now tried to find when you can change the hotkey for changing keyboard layout. It turns out, you can't find it now. New control panel has nothing and drops you into the old one immediately, which has nothing too.
It was working under Windows XP. Obviously you can't find how to configure anything in Windows these days without extensive googling.
As I've already said, you're a wrongfullt accusing right here. I've bought a mid-range laptop.
> The laptop will be slow regardless of OS with a spinning drive
As I've already said, you're wrong. Linux will still boot in 10 seconds and won't freeze for minutes during work.
I was fine with that, I like my desktop to just be there and get out of the way, not something that has to impress me with shiny new features constantly. Even the ported apps aren't consistent though, look at the mail app and the hideous background image they put in it.
> I've never had windows "Freeze the desktop for 5 minutes at a time".
I certainly have on an intermittent internet connection, the start menu can freeze for several minutes. That isn't good enough for a basic OS feature that shouldn't even have an internet connection. On the same connection it can also take several minutes to login to login to the machine because it's tied to the MS account.
Boot speed is pretty good and doesnt freeze like that.
Check your hardware if that is a fresh factory install. You are doing something wrong.
They are not common problems. They are yours.
Maybe they're not common problems, but it's certainly not just him that find it gives a poor experience.
Why then do Windows 10 laptops get sold with HDDs? You come to store and that's what you get out of it.
Also, Linux doesn't mind running from HDD. Not ten years ago, not now.
Lesson to MS: Get your act together or get out of this business. Come back from make-believe world. MS is running on make-believe for the last 10 years. Windows 8, the whole Avalon story, Windows Phone and now this Windows 10 "which only works well on SSD but never discourages anybody from getting an HDD laptop". Supposedly we should learn about this by telepathy or something.
That's factually incorrect. OSX, Windows, Linux, it makes no difference. You cannot hide the 8ms of response time that comes with a crappy laptop spinning drive. If you spend all your time in a web browser with ample amounts of memory... sure. If you're doing ANYTHING that requires disk I/O - whether it be launching a game, or opening a large directory, you will experience significant lag time with a spinning drive.
https://www.youtube.com/watch?v=Bgmph_bL8V4
https://www.youtube.com/watch?v=X-Rsr4E6b68
But I would once again question why you care how long it takes to cold boot a laptop. I think my laptop gets cold booted MAYBE once a month.
On my SSD, my Win10 cold boots faster than my Dell U2410 screen displays anything if powered at the same time (couple of secs)
Sure you can, you can load stuff in memory so you don't have to hit the hard drive every time you do something like open the start menu. Once in a while the taskbar likes to "refresh" itself and the icons disappear while the drive spins up. It's not a problem I ever had on windows 7 or any linux machine.
Excellent question. These machines should do better with Win7 but Microsoft doesn't want to sell it.
Microsoft sells windows 10 and Microsoft sells laptops with Windows 10 on an SSD. I doubt (but do correct me if I'm wrong) Microsoft sells any computers with Windows 10 on a mechanical drive.
Various manufacturers sell underpowered computers with Win10 on it, but thats hardly microsofts fault. They do that because otherwise they can't hit the lowest price segments.
What IS Microsoft's fault:
1)Microsofts "hardware requirements" only say what's necessary to use it, not what's needed for a decent experience.
2) not selling Win7 or making newer versions of windows work with older hardware.
That's a lie right here because the laptop in question not low end, definitely middle one.
> Various manufacturers sell underpowered computers with Win10
That was always part of Microsoft deal. You get your computer from a manufacturer other than MS and they still have to deliver experience, and they've failed that one.
You'll note that with respect to my sons laptop, Linux ran just fine on his much older, slower laptop.
Says it all, really.
Well, "Linux" is much broader than a specific version of windows (Windows 10). But yes, for most kinds of linux setup (distro, window managers etc) I'd say the bare OS definitely needs less resources on Linux than on Windows.
I do find that apart from the storage issues, Win10 actually runs about as lean (on cpu and mem) as Win7. The problem with consumer hardware such as cheap or midrange laptops is usually that it's infested with crapware from the start, something I also blame microsoft for, not manufacturers.
The OEM agreeements microsoft do with laptop manufacturers should explicitly ban them from installing any crapware such as antivirus trial versions, poorly written hardware apps and similar. I realize the $400 price of a cheap laptop sometimes includes a big rebate due to the software bundles - but ms ought to put a stop to it. Has to be damaging to their brand.
/s
If it doesn't work on a mechanical drive, it's fucking broken.
Additionally, you don't get to compare two products if one of them has massively higher hardware requirements.
Completely agree that having a major version bump as an automatic is insane.
That's why they should just skip the version numbering and just make it a subscription. Then they can sunset hardware 5-6 years old continuously like iOS, but let people choose to stay on the of version indefinitely.
Also: your recommendation for resolving reliability issues is to reinstall the OS? Yes I know the historical reasons for saying this, but in 2017 if the user has to re-install the OS to get it to work I suggest the problem lies somewhere other than in the user.
I am also a technician and installed win10 more than i can count. Yes Old & Slow and New Budget-friendly machines are problematic with windows 10. Thats mainly because hardware. Because its new OS and getting better hardware is a must. You cant complain about a calculator can not run win10 properly. OF course 5200 rpm hdd and celeron cpu fails.
win10 is confusing? Yes. Sometimes goes hard on user? Yes. Annoying with their "windows store"? Oh very yes.
Slow and Freezing constantly? No. Proper UEFI setups works like a charm with proper machines.
Usable? yes it is.
And here I thought it was Linux users that were supposed to say "you're holding it wrong" and "just make sure you get supported hardware"
I am always surprised to hear these statements. Hundreds of millions of people use W10, so it must be usable to some extent. I think it's also quite rare that the system stops for 5 minutes -- actually I've never seen that happening.
I don't use Macs so I can't say if the grass is greener there. I do have a feeling that if I were using Linux on the laptop it would be much worse than Windows, but that's just a hunch based on my historical experience with Linux and device drivers.
I use Linux servers extensively and all my code runs on Linux in production fwiw. Linux on the server is almost at Solaris-level reliability today. The comments above relate to desktop/laptop machines.
No kidding. I use it every day nearly all day and I can count the number of times I've had the OS itself get in my way on 1 hand.
I could overflow both hands just counting two Explorer things: (1) trying to figure out where MS put a setting/option if it's not on Ribbon & (2) trying to use any advanced search operators.
https://technet.microsoft.com/en-us/library/ff714569.aspx
Let's say I didn't know ForEach-Object existed (trivial example, but generalizes), how do I find out there is a cmdlet that does what I'm looking for?
We're there with Windows 10. We were better off with Windows XP and arguably we're much better with Android.
As for full screen browser, touch-optimised IE was in Windows 8. It is not in Windows 10. Your rant is 2 years out of date.
Around half settings that the internets tell me to tweak these days are on [the old] Control Panel. Another half is in the registry or group policy or some "Run..." utility and never the new one.
> you don't get to access them unless you really want to
That one is correct, I can never find the thing when it's needed again.
Obviously, there is some variation in experience, and I doubt all of it can be chalked up to the OS.
Oh come on, you can't blame the OS for that. Whenever I want to play games my Desktop is loading the desktop in less than 20 seconds, it's not optimal but if it takes 1 minute there has to be something wrong with the laptop.
Why would a so called "hacker" choose to use an OS that's slow, has horrible update policies, horrible privacy standards, injects ads into the main programs and start menu, requires anti-virus, etc?
Also, the idea that Windows has good drivers and Linux doesn't is asinine. My current dell came pre-loaded with windows 10 and failed to wake from sleep without me opening and closing the lid, then when it woke up, wifi would not come on and the only thing that fixed it was a reboot. Then when I used the touch screen things were going fine until I tried to select text and got an instant BSOD. Also I learned not to accidentally touch the screen and then try to type immediately afterward, or it would lock up the whole OS.
Linux just worked. Literally. Even the touch screen. I get 15 minutes less battery life but it's worth it.
I don't know, but that's why I use Windows 10 instead of Ubuntu.
Please back up your polemics with facts. I don't run antivirus on Windows and never have; it's the same fundamental security model as desktop Linux, and if you don't go around installing programs from untrustworthy places (whether download.com or SourceForge), you don't need it. And at a more-than-first-order level, Windows' security model is far better.
I have patches in the Linux kernel and I strongly recommend that someone looking for a secure desktop OS use Windows instead of Linux.
Please explain how to do any of those things on Windows - either the new 10, or the retrofitted-telemetry 7 which one has to retrofit with telemetry if they want security updates.
How much of Ubuntu has undergone a security audit by people who are looking for actively maliciously obfuscated code?
In a codebase the size of Ubuntu (and all its packages), "you can look at the source" is a mindgame, nothing more.
Also, you can look at Windows' source code. In addition to the numerous programs Microsoft has for licensing the code to universities, researchers (including security auditors!), well-known community members, etc. the source code has been leaked multiple times.
You've just moved the goal posts from "we can look at what it's doing" to "we assume they tried to hide what it is doing" - which we know that e.g. Microsoft did bundling telemetry into Win7 security updates, but that Canonical never did. Nice.
I don't know how much has been gone through by people looking for underhanded code, but ... quite a few looking at the basic code. And if you expect underhanded code, I think you should just not trust the vendor.
> In a codebase the size of Ubuntu (and all its packages), "you can look at the source" is a mindgame, nothing more.
Actually, quite a few people diff ubuntu against debian to see the changes, and Ubuntu's original, independent code is not that huge - in fact, the community took over Unity, so there are a lot of people looking at it.
> Also, you can look at Windows' source code. In addition to the numerous programs Microsoft has for licensing the code to universities, researchers (including security auditors!), well-known community members, etc. the source code has been leaked multiple times.
Now, that's a complete joke.
Unlike ubuntu (which I have, in the very distant past 8.04 or 6.06 days rebuilt the base of, and which others regularly do), you have absolutely zero way to verify that the 400MB executable you installed does not include, in addition to the source you have, backdoors, telemetry etc.
When I was in Uni, I talked to one of the guys who get access to the source. It was view-only, can't rebuild, some critical parts missing. Maybe these days it is buildable, but I'd be surprised. And even if it is, you're not allowed to use it (except for auditing purposes), which goes back to the previous point - you have little idea what you're actually running.
> the source code has been leaked multiple times.
That's another joke. First, no professional would review _that_ because of legal ramifications.
I have a simple proof that you are completely, utterly, wrong in your assertions, and I would love for you to refute it.
If it's so easy to see what Microsoft is doing, how come there wasn't a single source for what Win10 actually sends home, for what the Win7/8.1 telemetry sends home, that was based on facts? In fact, the only semi-reliable (but not audited, or 3rd party confirmed!) source of what Win10 sends is from Microsoft, released over a year after Win10 was out. And it's frightening enough as it is.
I call bullshit on your claims. You're welcome to like Microsoft better than Ubuntu, but please stick to the facts.
Now Google Maps even asks me to upload pictures of places where I happen to be.
I disagree. If you're a programmer who cares about privacy use Linux.
- licensing costs are probably the same. If the cost of an additional Windows Server license is an argument, something else is going on.
- recently having dealt with MS Enterprise support on Linux, it was an horrendous experience I can nobody recommend
- an Enterprise with need for SQL Server without Windows Server support engineers?
- did we see independent performance tests published? A quick search I found these http://www.fhtino.it/blog/showpost.aspx?id=6790c78accb84f9c9..., seemingly not a convincing argument.
IMHO the whole story stinks and none of the arguments mentioned by Microsoft are valid. Probably it is all about winning hearts and minds.
SQL Server on Docker images for Devs is great as these are free of licensing costs (I guess).
If you're ponying up for a SQL Server license you can afford to pony up for the Windows license. But if you're not a Microsoft shop and you're buying .NET Core-based COTS you can skip the license fees and install SQL Server vNext Express on your Linux machines. (Up to the point where you max out Express and have to cough up for Standard anyway.)
You can switch between SQL Server and MySQL by changing just one line of code.
I haven't looked at much ServiceStack stuff because of the cost.
I think it's worth it.
In my opinion, anybody working on .net ends up spending a lot of time writing what is essentially their own version of ServiceStack, on Web API.
It has a lot of features that you would end up writing anyway, spend months doing so, and would probably do less well. It basically gives you a massive head start.
SQL server and a few of the other behemoth apps seem to have a very hard time staying separate from windows which is annoying.
In Linux the design benefit is that there are package managers and the flaw is that there are many. Shipping a simple binary installer for multiple distributions is still tricky.
Because you're bypassing the package manager. Packaging isn't all that hard, much easier than building your own binary installer that handles multiple platforms.
By using Red Hat's sssd which handles it pretty much seamlessly.
You get fully working Kerberos with that which should work with SQL server probably.
Admittedly I mostly use it for logging into servers with AD accounts (it will autocreate homedirs too!) and access controls via AD groups.
You can permit SSH/sudo access through AD group memberships. SSH works with Kerberos SSO.
Happens on Windows too but they mitigate it by _forcing_ you to use NTP against the AD servers.
We did have some problems with timedatectl being a dick in the early days of CentOS 7 which reported NTP as enabled but it wasn't. That caused the same issue but we resolved that one and it still periodically happens.
I can't quote for the state of the DC's though; they're not mine and I don't want them! :)
https://www.microsoft.com/en-us/research/project/drawbridge/
Postgres is a great database but SQL Server has some fantastic features like columnstores, in-memory oltp, graph queries.
Linux has better tooling than Windows and SQL Server has better tooling than all other relational databases, it's a great match.
Does this translate to enterprises wanting a stick to beat Oracle with when negotiating license fees?
https://blog.sqlauthority.com/2015/11/11/sql-server-what-is-...
I think Microsoft is now afraid that people (developers that were hired by enterprises) are willing to move to *nix so much so that they will force enterprises to gave up on MS stack.
This way they could lose SQL Server customer and Windows customer at the same time - having SQL Server version for Linux will keep SQL Server customer.
I believe this wouldn't have happened 10 years ago, and moreover, it would have sounded just unbelievable.
This reminds me not only of things that could change very fast. It reminds that even when things go well with your business there's always someone thing that could "disrupt" your market, like a new dimension. And that thing won't be invisible. It will grow nearby and you will see such company and just won't assume that it represents any danger.
Look at SGI and Cray, they also had to re-invent themselves around their own distributions of GNU/Linux and tailored made hardware, instead of keep selling their own UNIX variants.
If I have to develop on UNIX-like OSes, but can still enjoy all the nice Microsoft tooling I have grew to love, then great.
Love or hate it, FOSS around UNIX has commoditized the OSes.
Who knows if now we will ever move away from a UNIX monoculture on the enterprise, specially with the increasing Linux / OS X love from Microsoft side.
Your sadness is misplaced.
Presumably you like resilience, yes? How does one achieve resiliency? At least in part via redundancy. A homogeneous environment, which an environment which relies on one vendor is, is non-redundant. All you've got then is a single point of lock-in, that can never be a good idea. You can be held hostage to the whims of the vendor. As soon as Linux became a viable choice to Windows and old Unix people left in their droves, and for this very reason.
To my mind, Microsoft is now acting like a more mature rational hungry company. I thought I'd never see the day. And frankly, if they hadn't started changing they'd be on the road to complete irrelevance.
> This way they could lose SQL Server customer and Windows customer at the same time
False. See https://news.ycombinator.com/item?id=14845783 Staying with SQL Server because Linux version was provided.
> I believe this wouldn't have happened 10 years ago, and moreover, it would have sounded just unbelievable.
Agreed. But that was not a good thing, that was very bad. For Microsoft, and their customers. Now that may have been something to lament.
For Microsoft, this is continued victory, not defeat.