It’s very interesting that Microsoft is trying to slowly make running Linux instead of Windows a thing of the past. I know tons of developers that use Linux (or MacOS) because they want the Unix...
It’s very interesting that Microsoft is trying to slowly make running Linux instead of Windows a thing of the past. I know tons of developers that use Linux (or MacOS) because they want the Unix underpinning but using Windows does have it’s advantages (you get the benefits of Linux AND Windows.
It’s clearly a long term plan that, from what I can see, is working well for them.
I love that its a possibility, but I have some qualms when it comes to Microsoft, it wasn't too long ago that their mantra was "Embrace, Extend, Extinguish". Heres where we are: Embrace -...
I love that its a possibility, but I have some qualms when it comes to Microsoft, it wasn't too long ago that their mantra was "Embrace, Extend, Extinguish".
Extinguish - Windows only utilities? Proprietary codecs? Gotcha tricks and "bugs" and "workarounds? All of this and more once devs decide Windows is best of both worlds and they can't change? Watch this space.
Why? Thanks to the so-called Halloween documents, revealed by open-source co-founder Eric S. Raymond, we know exactly what Microsoft thought about Linux and open source: "OSS [Open-Source Software] poses a direct, short-term revenue and platform threat to Microsoft, particularly in server space."
Even then, Microsoft saw the fundamental threat Linux and open source represented to Microsoft's business model. "The ability of the OSS process to collect and harness the collective IQ of thousands of individuals across the Internet is simply amazing. More importantly, OSS evangelization scales with the size of the Internet much faster than our own evangelization efforts appear to scale."
The solution? OSS projects have been able to gain a foothold in many server applications because of the wide utility of highly commoditized, simple protocols. By extending these protocols and developing new protocols, we can deny OSS projects entry into the market."
With respect, it was over twenty years ago. That may as well be a century in tech years. Microsoft have acted as excellent stewards of open-source under Satya Nadella. If they had a mission of...
it wasn't too long ago that their mantra was "Embrace, Extend, Extinguish".
With respect, it was over twenty years ago. That may as well be a century in dog years tech years.
Microsoft have acted as excellent stewards of open-source under Satya Nadella. If they had a mission of killing Linux, they wouldn't be employing it in Azure, or releasing support for it (PowerShell, Edge, .NET).
I think you're ascribing grand intentions where it's really just independent dev teams at Microsoft working on improving the developer experience. Wine didn't kill Windows, and WSL won't kill Linux.
Disclaimer: I'm paid to work on an open-source "fork" of VSCode that lets you use it from a browser. Think of it as Codespaces, but self-hosted. See our GitHub repo. Also, my opinions are my own,...
Exemplary
Disclaimer: I'm paid to work on an open-source "fork" of VSCode that lets you use it from a browser. Think of it as Codespaces, but self-hosted. See our GitHub repo. Also, my opinions are my own, and not my employer's.
Microsoft, like all large companies, doesn't really have a single direction. Some departments at MS could very well be following the old adage, while some are not.
While VSCode's core is "open source", the components that make up GitHub Codespaces or the remote extensions (in src/vs/server) are proprietary. In addition, many of Microsoft's official extensions, including the C/C++ extensions, Pylance (the new Python extension), IntelliCode, and services like Live Share are proprietary too, with a license that prevents you from using it on anything other than the proprietary "distro" - as in the "Visual Studio Code" product.
The API surface to reimplement stuff like Codespaces and tie it into the editor still exists in the open source version, but is woefully underdocumented or undocumented, and has frequent churn. (A recent example: the RemoteTerminalChannel API went from registering one $onEvent for each terminal that handled every event, to registering several $on*Events on the channel itself, and then match which terminal it corresponds to with an ID. None of this was cleanly documented, so we had to look at the commit log and the code and figure it out.)
In fact, I feel particularly bummed with how LSP was initially pushed as "solving the matrix problem" for compatibility; only for the matrix to be raised from the dead by license instead of by compatibility.
Keeping all of this in mind, you might expect me to say Microsoft in general is not a good open-source steward, and is using open-source as a marketing tool in their embrace/extend/extinguish game of yore. But I don't really buy that.
There's another Microsoft project we use in code-server: Playwright, Microsoft's web app testing framework. The community they built around Playwright is surprisingly helpful; we've had several Playwright developers/contributors help us along writing end-to-end tests for code-server. (Keep in mind we technically "compete" with a proprietary MS product!)
I think when companies grow to Microsoft-esque scale, its very difficult to imagine a top-down "ideology", embrace-extend-extinguish included. A cynic would again say that projects where they're a good steward (like Playwright) is just smoke-and-mirrors for the long term game; I leave that to you, the reader.
Sorry for the late response. I'd already written a long reply but lost it due to a PC crash. I agree completely. I think many people like to ascribe grander goals or motivations to companies, and...
Sorry for the late response. I'd already written a long reply but lost it due to a PC crash.
I think when companies grow to Microsoft-esque scale, its very difficult to imagine a top-down "ideology", embrace-extend-extinguish included.
I agree completely. I think many people like to ascribe grander goals or motivations to companies, and I alluded to that in my earlier comment. Most of the time though it really comes down to smaller, independent teams making decisions that make the most sense in their own context. Sometimes those decisions have visible results, like the article we're commenting on, and it's only natural that people then try to fit that information to their own beliefs and narratives.
The only company that really moved squarely in one direction was probably Apple in the Jobs era. At least from the outside looking in, there seemed to be a shared and understood goal by almost all parties involved. It's rare to see that level of focus though, and I wouldn't ever describe a Google or Microsoft that way.
Regarding Microsoft's role as a steward, I take your point that some of their projects require an asterisk beside "OSS". And I think that's probably just another reality of doing this at scale. Sometimes it may be due to legal or licensing reasons, and other times it may be to protect a secret sauce. I can only imagine how much legacy code has been built on over the years.
I can sort of understand Microsoft not open-sourcing Live Share because that is likely closely tied to their own server infrastructure, and that makes it less portable. Though I would certainly love to see IntelliCode opened up.
Code Server sounds pretty cool. I think for users on a Chromebook or similar, that could make for a really powerful dev environment. I used to use Cloud9 before Amazon acquired them. It seems like an important space, and probably very useful in education.
I agree with the 'asterisk required' part of it, but not necessarily with it being just another reality. There are definitely cases with at least some explanations (such as Live Share depending on...
Regarding Microsoft's role as a steward, I take your point that some of their projects require an asterisk beside "OSS". And I think that's probably just another reality of doing this at scale.
I agree with the 'asterisk required' part of it, but not necessarily with it being just another reality. There are definitely cases with at least some explanations (such as Live Share depending on MS infrastructure, or the C/C++ extension possibly depending on years of proprietary code ported over from Visual Studio), I just don't buy it for every product.
For example, deliberately having src/vs/server be proprietary (which backs the remote extensions and Codespaces) in my opinion was just a move to make it harder to compete with Codespaces in the space; and similar with Pylance - it was a new project, started from the ground up; it did not have a "proprietary legacy" or anything of the sort.
The first of those two feels definitely weird at least: Nearly all of the plumbing for the server exists in the OSS code, but its poorly documented, and the server itself does not - which leads to both duplicated work (see code-server, Gitpod), and dead code for anyone looking to fork VSCode and not reimplement the remote features.
(On a lighter note, my wages are paid in part because we're just duplicating the work in the open in the first place, so... I would be shooting myself in the foot in an individual sense if I pushed for them to release the code :P)
Oracle is still Oracle. They're just as bad as they were 20 years ago. Google is certainly worse than they were back then. IBM is still IBM...my employer is currently exploring alternatives to...
With respect, it was over twenty years ago. That may as well be a century in dog years tech years.
Oracle is still Oracle. They're just as bad as they were 20 years ago. Google is certainly worse than they were back then. IBM is still IBM...my employer is currently exploring alternatives to RedHat because of that acquisition. Corporate culture doesn't change at the same pace tech does.
If they had a mission of killing Linux, they wouldn't be employing it in Azure, or releasing support for it (PowerShell, Edge, .NET).
They are using it in Azure because that's the only way they'll be able to compete with cloud services. I don't know if you've done much sysadmin stuff, but Linux servers are infinitely easier to scale out and manage than Windows ones. The tooling for Linux means if you can deploy it on one server, you can just as easily deploy on 10,000.
Microsoft working on improving the developer experience.
This is really the key point. I talked more about this in another post, but the userbase follows the devs. It might take decades, but if there's a tipping point where a majority of devs start making Linux-first software, users will follow.
While I am scared of that acquisition, I don't think Red Hat will succumb to IBM. It seems that IBM wants to change its company culture. They even put the founder and ex-CEO of Red Hat as IBM...
IBM is still IBM...my employer is currently exploring alternatives to RedHat because of that acquisition.
While I am scared of that acquisition, I don't think Red Hat will succumb to IBM. It seems that IBM wants to change its company culture. They even put the founder and ex-CEO of Red Hat as IBM president. For the moment, I've not seen anything that would indicate Red Hat's downfall.
I dunno, I see the same practices and I was barely born back in the evil days of Microsoft. Example one, VSCode. Free and open source, except all the important bits like C extension, new python...
I dunno, I see the same practices and I was barely born back in the evil days of Microsoft.
Example one, VSCode. Free and open source, except all the important bits like C extension, new python LSP, remote debugging extension are all proprietary. You can say that MS created VSCode so its not extend, but its still worrisome that to get the goodies, you have to pay MS with your "telemetry".
Example 2, WSL. MS extended Linux kernel with proprietory DX12 support that works only on MS platform, which is Windows.
I have a hard time believing they're really trying to EEE with WSL mainly because it's just not worth it. Even if they manage to poach a large portion of users who would have used Linux or macOS...
I have a hard time believing they're really trying to EEE with WSL mainly because it's just not worth it. Even if they manage to poach a large portion of users who would have used Linux or macOS instead because Windows isn't POSIX, that's rounding errors level of marketshare and revenue.
Linux isn't a threat to windows. Chrome is a threat to windows. Webapps and mobile are a threat to Windows. The only way I can see Linux on desktop being popular anywhere for consumers is in China, if the gov makes a big push to be independent of Western tech companies.
But the web is an infinitely more potent threat to MSFT's traditional revenue streams.
I'll second you and further your observations. Where does Microsoft get its money from? The majority of their revenue comes from Azure, followed quickly by Office and then by Operating Systems. At...
I'll second you and further your observations.
Where does Microsoft get its money from?
The majority of their revenue comes from Azure, followed quickly by Office and then by Operating Systems. At least 50% of all VMs running on Azure are running Linux. People are and will continue to develop software to run on Linux servers.
So, Satya Nadella (former head of Azure, now CEO) sees their future in *aaS offerings...and rightfully so...and a lot of those *aaS offerings will be using Linux. So why extinguish Linux? To hurt their bottom line? That makes no sense. To sell more Windows Server licenses? Given Microsoft's embracing Kubernetes and moves to make sure that .NET runs on Linux, that doesn't seem to make them money - only lose it - as K8S doesn't really like Windows.
So, if the future is to support Linux software development, WSL/WSL 2 makes a LOT of sense. Not necessarily for the home hacker that would run Linux on their machine, but for the corporate developer who builds Linux server applications but Corporate wants to have controls over their machine. Extending their Linux support to allow for a faster, easier Linux software development experience while making sure that the Corporate customers are happy that they can manage patches to their developer machines makes a TON of sense.
I speak from a place of some knowledge where the group I work in (inside of a MUCH larger Corporate behemoth) are constantly clamoring to get Corporate approved Linux workstations as a lot of the development work we do only really works on Linux. We currently suffer on Macs running Linux VMs or have bits and pieces of Shadow IT where folks have Linux workstations to write their code. If we could get full Linux GUI apps, GPU passthrough/emulation, and run at 95% of the speed of native Linux development, our developers would be much, much happier. Corporate will also be happier because then they can have Group Polices making sure our dev machines are patched to their standards, guarantee at-rest disk encryption, and be able to remote lock/wipe a device if it's stolen - things they really can't do with a native Linux box.
So, if Microsoft is able to make some more money off Windows licenses to sell more Azure compute, they're going to Embrace and Extend the fuck out of Linux while never moving to Extinguish because Extinguishing is just going to hurt their bottom line.
None of these are "the important bits"; they're very useful bits to very specific people, which make them good candidates to include in "enterprise" packages and what not, and that is likely the...
except all the important bits like C extension, new python LSP, remote debugging extension are all proprietary.
None of these are "the important bits"; they're very useful bits to very specific people, which make them good candidates to include in "enterprise" packages and what not, and that is likely the reasoning behind not open sourcing them.
I don't agree with it, but it doesn't have anything to do with EEE. And personally, I don't have a problem with the open core model that gitlab & co use (and this is likely based on): It's a proven way of getting a revenue stream while contributing back a significant amount of stuff.
I'm a huge open source enthusiast and advocate. For very practical reasons, I want humanity to strive for the best possible access to these advances in software. And as it stands "pure free software" generally sucks ass. Software that has no proven revenue stream for its authors gravitates towards being unmaintained, or agonizingly slowly developed (which can work for some industries, but in the majority of cases makes it useless).
Case in point: VS Code vs. GIMP. Today, the best-in-class IDE is open source. I'm running the open source version myself, not the proprietary one, and it's just as usable. Microsoft financing this made it possible.
For serious image editing, I'm shit out of luck. I can use GIMP for basic stuff but "best in class" it is not. Photoshop, the one with the revenue stream, is.
VSCode's "open core" has allowed people to implement very interesting new things. Its open source typescript-based editor component has created new businesses, services and neat tools (such as github1s.com). This is one of the best things open source can offer.
GIMP in the mean time has spawned two somewhat acceptable projects over two decades: GTK and GEGL. GTK is awful and only popular by virtue of having been the only option for a long time (once again, Qt, the library with the revenue model, is the better choice). GEGL is … nice, but too niche and not developed enough to have spawned anything beyond that.
Something being open source doesn't do shit for the world if there is no high quality long term plan for its development.
That is the most succinct, accurate review of GIMP I've ever seen. GIMP is probably the biggest strawman of "free software can't be best in class" out there. But newer software does a pretty well...
If you area already familiar with Photoshop, GIMP is almost completely alien, even though it can do pretty much anything Photoshop can. It just does things very differently. On the other hand, if this is the first professional editor you use, I think the learning curve is as steep or as lean as Photoshop.
That is the most succinct, accurate review of GIMP I've ever seen. GIMP is probably the biggest strawman of "free software can't be best in class" out there. But newer software does a pretty well at not being obtuse: Darktable for photography, Inskcape for vector graphics, Krita for drawing.
And as it stands "pure free software" generally sucks ass. Software that has no proven revenue stream for its authors gravitates towards being unmaintained, or agonizingly slowly developed (which can work for some industries, but in the majority of cases makes it useless).
Get paid or die kinda applies there. But setting that aside... I've stopped hunting for proprietary software outside of the workplace. If I have a need, I hunt around until I find something at all and then poke around alternativeto.net. This process has rarely failed me. Hell, I rarely seek out paid stuff at work either, simply because not having to deal with purchasing stuff at work is well worth it.
For VS Code, the telemetry can easily be disabled and others can reuse the source code that's available in their own projects, so sponging off Microsoft's work still seems like a very good deal,...
For VS Code, the telemetry can easily be disabled and others can reuse the source code that's available in their own projects, so sponging off Microsoft's work still seems like a very good deal, overall.
It's not like the old days when projects like Samba and WINE had to start from scratch.
Those seem extremely minor compared to what Microsoft got up to under Ballmer. Like, the high-water mark there is committing corporate espionage to essentially steal another mulibillion dollar...
Those seem extremely minor compared to what Microsoft got up to under Ballmer. Like, the high-water mark there is committing corporate espionage to essentially steal another mulibillion dollar company. Even their entire otherwise ethically inert gaming division's approaches in the 2000's was orders of magnitude worse than this.
Well, sort of. It's built on Electron, which used to be part of the Atom project. The actual text editor is their own invention, and it's called Monaco. (It actually mentions this in the article...
Well, sort of. It's built on Electron, which used to be part of the Atom project. The actual text editor is their own invention, and it's called Monaco.
(It actually mentions this in the article you linked.)
Embrace, extend, extinguish has definitely been forefront when I think about these issues. I vividly remember the anti-trust trial from the 90s/00s. Obviously we don’t know what Microsoft’s...
Embrace, extend, extinguish has definitely been forefront when I think about these issues. I vividly remember the anti-trust trial from the 90s/00s. Obviously we don’t know what Microsoft’s overall plan is, but I do view almost everything they do with a fair bit of skepticism.
I will believe Microsoft really loves open source when they release Office 365 under an MIT or GPL licence. Until then, it's merely doing everything they can to stop the developer emigration....
I will believe Microsoft really loves open source when they release Office 365 under an MIT or GPL licence.
Until then, it's merely doing everything they can to stop the developer emigration. DEVELOPERS, DEVELOPERS, DEVELOPERS, DEVELOPERS.
Enough devs switch platforms, all of a sudden they're not making windows-exclusive software. Makers start doing linux-first drivers. Enough developers switch, eventually userbase follows.
If my comment didn’t make it clear, I 100% think this is all about attracting developers away from Linux. They want to convince them to pay for Windows and just use Linux from inside of Windows. I...
If my comment didn’t make it clear, I 100% think this is all about attracting developers away from Linux. They want to convince them to pay for Windows and just use Linux from inside of Windows.
I think they, just like almost all corporations, support open source as long as it is in their best interest. Right now, it’s in their best interest to support OSS from a PR and developer relations standpoint.
The things they’ve open sourced are things that won’t impact their bottom line. So, as you pointed out, they won’t open source something like Office, since that would cost them money.
Agree, with the stipulation that they want Enterprises and Companies to pay for Windows and Azure, and since IT can do their Linux magic within Windows instead of having to appropriate another...
I 100% think this is all about attracting developers away from Linux.
Agree, with the stipulation that they want Enterprises and Companies to pay for Windows and Azure, and since IT can do their Linux magic within Windows instead of having to appropriate another laptop with all the paperwork and handholding required, it works out better for the people signing checks and liabilities.
I think it is in Microsoft's best interest to support OSS as long as said software is popular. Microsoft is in the midst of transitioning it's business model from selling software products to...
I think it is in Microsoft's best interest to support OSS as long as said software is popular. Microsoft is in the midst of transitioning it's business model from selling software products to selling software services.
This means that Windows itself is actually becoming less important, as MS sees their future growth in areas like Azure. The best way to grow Azure is not to make people want to run their web apps on Windows, it is to make Azure the best place to host their web app regardless of OS. That is why Microsoft is pushing cross platform development tools and .NET so hard. If developers are writing software in Microsoft technologies, then Azure is their best cloud hosting option, regardless of whether or not they use Windows or Linux.
Yes, mine was a comment of agreement. The stuff they've released open source is largely superficial or is a gateway drug. You do .NET development? Eventually you're going to want full Visual...
Yes, mine was a comment of agreement. The stuff they've released open source is largely superficial or is a gateway drug.
You do .NET development? Eventually you're going to want full Visual Studio, which costs big bucks, only runs on Windows. .NET integrates much easier with SQL Server than most other databases, and SQL Server gets pricey fast.
Does .NET core even integrate well with Visual Studio? There's nothing stopping people from making IDEs which support .NET core. I don't know if I agree with this logic.
You do .NET development? Eventually you're going to want full Visual Studio, which costs big bucks, only runs on Windows.
Does .NET core even integrate well with Visual Studio? There's nothing stopping people from making IDEs which support .NET core. I don't know if I agree with this logic.
Yes it does. And starting with .NET 5, Core and Framework have been merged into one platform, with only very Windows-specific components like WPF and DX12 remaining exclusive to Windows. MAUI is...
Does .NET core even integrate well with Visual Studio?
Yes it does. And starting with .NET 5, Core and Framework have been merged into one platform, with only very Windows-specific components like WPF and DX12 remaining exclusive to Windows. MAUI is coming as an official cross-platform alternative to WPF and winforms.
There are a number of IDE options for developing .NET apps. I mostly prototype things in VSCode with a number of extensions. Rider is quickly becoming a popular cross-platform alternative to Visual Studio proper, and Microsoft has been investing a lot in the free Visual Studio for Mac (formerly Xamarin Studio). Visual Studio Community Edition is a viable option for the majority of hobbyists and open source contributors working on Windows.
At the end of the day, Microsoft gives you .NET in the hopes that you will want to use their paid products that integrate so well with it (SQL Server, Visual Studio for Windows, Azure), but there is nothing that inherently difficult to work with outside of these. Mature entity framework connectors for other popular databases have been around a long time, and Vsual Studio alternatives are getting better by the day.
I'm old enough that I remember this happening quite a lot. But honestly, I look at what they are doing and I quite simply do not see a way this is possible. WSL2 is basically a glorified virtual...
I'm old enough that I remember this happening quite a lot. But honestly, I look at what they are doing and I quite simply do not see a way this is possible. WSL2 is basically a glorified virtual machine. While running Ubuntu on WSL is not exactly the same as real-hardware Ubuntu, it's close enough that it doesn't really make much difference. In any case, it seems like Linux is not the thing that Microsoft is looking to "expand" upon. Rather, they're expanding the Windows experience.
If anything, I think that this goal they are working towards will make developers drop support for the Windows versions of their applications, since users will be able to run the Linux versions directly, which I see as a benefit to everyone - users will get access to the 'best version' of Linux applications (including applications where there weren't Windows versions to begin with), and developers won't have to devote resources towards a Windows version and can improve their Linux version instead.
Until I see them integrate programs running in WSL2 in their store or something of the like, I don't believe this will happen outside of the enterprise. Telling people to setup WSL2 for your...
If anything, I think that this goal they are working towards will make developers drop support for the Windows versions of their applications, since users will be able to run the Linux versions directly
Until I see them integrate programs running in WSL2 in their store or something of the like, I don't believe this will happen outside of the enterprise. Telling people to setup WSL2 for your program is too high a barrier at the moment. I do think that would be very cool though.
There are a number of projects that have added and removed support for Windows because of a lack of interested maintainers. GIMP used to have an unofficial Windows port, and Darktable's official...
There are a number of projects that have added and removed support for Windows because of a lack of interested maintainers. GIMP used to have an unofficial Windows port, and Darktable's official support is a fairly recent event. Evince dropped Windows support a few years ago.
Asking someone to setup WSL might be a barrier, but it's an easier barrier to overcome than finding interested developers to continuously work on supporting a platform that the majority of contributors consider to be unimportant.
For Free Software project and people who want a very specific piece of software, maybe, but I don't think the mainstream cares about Evince or any of the projects which don't do Windows anymore....
For Free Software project and people who want a very specific piece of software, maybe, but I don't think the mainstream cares about Evince or any of the projects which don't do Windows anymore. They'll just another piece of software that accomplishes their needs.
For commercial interests, they'll never do that. Giving people a lot of work to setup your program is not something a lot of people want to do.
That’s fine. I wasn’t really considering commercial software when I was talking about programs dropping support for Windows. I personally am not familiar with any commercial software written...
That’s fine. I wasn’t really considering commercial software when I was talking about programs dropping support for Windows. I personally am not familiar with any commercial software written primarily for Linux to begin with, so I am not really sure why you are talking about that.
Well, you said : I assumed this included commercial software. The idea being dropping Windows support in favour of Linux support since it's possible to run through WSL2. It's also an idea that I...
Well, you said :
If anything, I think that this goal they are working towards will make developers drop support for the Windows versions of their applications, since users will be able to run the Linux versions directly, which I see as a benefit to everyone
I assumed this included commercial software. The idea being dropping Windows support in favour of Linux support since it's possible to run through WSL2. It's also an idea that I think is supported by Microsoft giving WSL2 a DX12 driver which would make for WSL2-specific software which I don't know anyone but enterprise or commercial would use. My bad though, I thought that's what you meant.
They are working on DX12 on WSL2 iirc. The mesa driver for it essentially just pushes the dx12 calls to the host so it doesn't benefit Linux in that way. I don't think that this would enable...
Extinguish - Windows only utilities? Proprietary codecs? Gotcha tricks and "bugs" and "workarounds? All of this and more once devs decide Windows is best of both worlds and they can't change? Watch this space.
They are working on DX12 on WSL2 iirc. The mesa driver for it essentially just pushes the dx12 calls to the host so it doesn't benefit Linux in that way. I don't think that this would enable extinguishing, if anything, it makes them more reliant on Linux as a guest.
It’s very interesting that Microsoft is trying to slowly make running Linux instead of Windows a thing of the past. I know tons of developers that use Linux (or MacOS) because they want the Unix underpinning but using Windows does have it’s advantages (you get the benefits of Linux AND Windows.
It’s clearly a long term plan that, from what I can see, is working well for them.
I love that its a possibility, but I have some qualms when it comes to Microsoft, it wasn't too long ago that their mantra was "Embrace, Extend, Extinguish".
Heres where we are:
With respect, it was over twenty years ago. That may as well be a century in
dog yearstech years.Microsoft have acted as excellent stewards of open-source under Satya Nadella. If they had a mission of killing Linux, they wouldn't be employing it in Azure, or releasing support for it (PowerShell, Edge, .NET).
I think you're ascribing grand intentions where it's really just independent dev teams at Microsoft working on improving the developer experience. Wine didn't kill Windows, and WSL won't kill Linux.
Disclaimer: I'm paid to work on an open-source "fork" of VSCode that lets you use it from a browser. Think of it as Codespaces, but self-hosted. See our GitHub repo. Also, my opinions are my own, and not my employer's.
Microsoft, like all large companies, doesn't really have a single direction. Some departments at MS could very well be following the old adage, while some are not.
While VSCode's core is "open source", the components that make up GitHub Codespaces or the remote extensions (in
src/vs/server
) are proprietary. In addition, many of Microsoft's official extensions, including the C/C++ extensions, Pylance (the new Python extension), IntelliCode, and services like Live Share are proprietary too, with a license that prevents you from using it on anything other than the proprietary "distro" - as in the "Visual Studio Code" product.The API surface to reimplement stuff like Codespaces and tie it into the editor still exists in the open source version, but is woefully underdocumented or undocumented, and has frequent churn. (A recent example: the RemoteTerminalChannel API went from registering one
$onEvent
for each terminal that handled every event, to registering several$on*Event
s on the channel itself, and then match which terminal it corresponds to with an ID. None of this was cleanly documented, so we had to look at the commit log and the code and figure it out.)In fact, I feel particularly bummed with how LSP was initially pushed as "solving the matrix problem" for compatibility; only for the matrix to be raised from the dead by license instead of by compatibility.
Keeping all of this in mind, you might expect me to say Microsoft in general is not a good open-source steward, and is using open-source as a marketing tool in their embrace/extend/extinguish game of yore. But I don't really buy that.
There's another Microsoft project we use in code-server: Playwright, Microsoft's web app testing framework. The community they built around Playwright is surprisingly helpful; we've had several Playwright developers/contributors help us along writing end-to-end tests for code-server. (Keep in mind we technically "compete" with a proprietary MS product!)
I think when companies grow to Microsoft-esque scale, its very difficult to imagine a top-down "ideology", embrace-extend-extinguish included. A cynic would again say that projects where they're a good steward (like Playwright) is just smoke-and-mirrors for the long term game; I leave that to you, the reader.
Sorry for the late response. I'd already written a long reply but lost it due to a PC crash.
I agree completely. I think many people like to ascribe grander goals or motivations to companies, and I alluded to that in my earlier comment. Most of the time though it really comes down to smaller, independent teams making decisions that make the most sense in their own context. Sometimes those decisions have visible results, like the article we're commenting on, and it's only natural that people then try to fit that information to their own beliefs and narratives.
The only company that really moved squarely in one direction was probably Apple in the Jobs era. At least from the outside looking in, there seemed to be a shared and understood goal by almost all parties involved. It's rare to see that level of focus though, and I wouldn't ever describe a Google or Microsoft that way.
Regarding Microsoft's role as a steward, I take your point that some of their projects require an asterisk beside "OSS". And I think that's probably just another reality of doing this at scale. Sometimes it may be due to legal or licensing reasons, and other times it may be to protect a secret sauce. I can only imagine how much legacy code has been built on over the years.
I can sort of understand Microsoft not open-sourcing Live Share because that is likely closely tied to their own server infrastructure, and that makes it less portable. Though I would certainly love to see IntelliCode opened up.
Code Server sounds pretty cool. I think for users on a Chromebook or similar, that could make for a really powerful dev environment. I used to use Cloud9 before Amazon acquired them. It seems like an important space, and probably very useful in education.
I agree with the 'asterisk required' part of it, but not necessarily with it being just another reality. There are definitely cases with at least some explanations (such as Live Share depending on MS infrastructure, or the C/C++ extension possibly depending on years of proprietary code ported over from Visual Studio), I just don't buy it for every product.
For example, deliberately having
src/vs/server
be proprietary (which backs the remote extensions and Codespaces) in my opinion was just a move to make it harder to compete with Codespaces in the space; and similar with Pylance - it was a new project, started from the ground up; it did not have a "proprietary legacy" or anything of the sort.The first of those two feels definitely weird at least: Nearly all of the plumbing for the server exists in the OSS code, but its poorly documented, and the server itself does not - which leads to both duplicated work (see code-server, Gitpod), and dead code for anyone looking to fork VSCode and not reimplement the remote features.
(On a lighter note, my wages are paid in part because we're just duplicating the work in the open in the first place, so... I would be shooting myself in the foot in an individual sense if I pushed for them to release the code :P)
Oracle is still Oracle. They're just as bad as they were 20 years ago. Google is certainly worse than they were back then. IBM is still IBM...my employer is currently exploring alternatives to RedHat because of that acquisition. Corporate culture doesn't change at the same pace tech does.
They are using it in Azure because that's the only way they'll be able to compete with cloud services. I don't know if you've done much sysadmin stuff, but Linux servers are infinitely easier to scale out and manage than Windows ones. The tooling for Linux means if you can deploy it on one server, you can just as easily deploy on 10,000.
This is really the key point. I talked more about this in another post, but the userbase follows the devs. It might take decades, but if there's a tipping point where a majority of devs start making Linux-first software, users will follow.
While I am scared of that acquisition, I don't think Red Hat will succumb to IBM. It seems that IBM wants to change its company culture. They even put the founder and ex-CEO of Red Hat as IBM president. For the moment, I've not seen anything that would indicate Red Hat's downfall.
I dunno, I see the same practices and I was barely born back in the evil days of Microsoft.
Example one, VSCode. Free and open source, except all the important bits like C extension, new python LSP, remote debugging extension are all proprietary. You can say that MS created VSCode so its not extend, but its still worrisome that to get the goodies, you have to pay MS with your "telemetry".
Example 2, WSL. MS extended Linux kernel with proprietory DX12 support that works only on MS platform, which is Windows.
I have a hard time believing they're really trying to EEE with WSL mainly because it's just not worth it. Even if they manage to poach a large portion of users who would have used Linux or macOS instead because Windows isn't POSIX, that's rounding errors level of marketshare and revenue.
Linux isn't a threat to windows. Chrome is a threat to windows. Webapps and mobile are a threat to Windows. The only way I can see Linux on desktop being popular anywhere for consumers is in China, if the gov makes a big push to be independent of Western tech companies.
But the web is an infinitely more potent threat to MSFT's traditional revenue streams.
I'll second you and further your observations.
Where does Microsoft get its money from?
The majority of their revenue comes from Azure, followed quickly by Office and then by Operating Systems. At least 50% of all VMs running on Azure are running Linux. People are and will continue to develop software to run on Linux servers.
So, Satya Nadella (former head of Azure, now CEO) sees their future in *aaS offerings...and rightfully so...and a lot of those *aaS offerings will be using Linux. So why extinguish Linux? To hurt their bottom line? That makes no sense. To sell more Windows Server licenses? Given Microsoft's embracing Kubernetes and moves to make sure that .NET runs on Linux, that doesn't seem to make them money - only lose it - as K8S doesn't really like Windows.
So, if the future is to support Linux software development, WSL/WSL 2 makes a LOT of sense. Not necessarily for the home hacker that would run Linux on their machine, but for the corporate developer who builds Linux server applications but Corporate wants to have controls over their machine. Extending their Linux support to allow for a faster, easier Linux software development experience while making sure that the Corporate customers are happy that they can manage patches to their developer machines makes a TON of sense.
I speak from a place of some knowledge where the group I work in (inside of a MUCH larger Corporate behemoth) are constantly clamoring to get Corporate approved Linux workstations as a lot of the development work we do only really works on Linux. We currently suffer on Macs running Linux VMs or have bits and pieces of Shadow IT where folks have Linux workstations to write their code. If we could get full Linux GUI apps, GPU passthrough/emulation, and run at 95% of the speed of native Linux development, our developers would be much, much happier. Corporate will also be happier because then they can have Group Polices making sure our dev machines are patched to their standards, guarantee at-rest disk encryption, and be able to remote lock/wipe a device if it's stolen - things they really can't do with a native Linux box.
So, if Microsoft is able to make some more money off Windows licenses to sell more Azure compute, they're going to Embrace and Extend the fuck out of Linux while never moving to Extinguish because Extinguishing is just going to hurt their bottom line.
None of these are "the important bits"; they're very useful bits to very specific people, which make them good candidates to include in "enterprise" packages and what not, and that is likely the reasoning behind not open sourcing them.
I don't agree with it, but it doesn't have anything to do with EEE. And personally, I don't have a problem with the open core model that gitlab & co use (and this is likely based on): It's a proven way of getting a revenue stream while contributing back a significant amount of stuff.
I'm a huge open source enthusiast and advocate. For very practical reasons, I want humanity to strive for the best possible access to these advances in software. And as it stands "pure free software" generally sucks ass. Software that has no proven revenue stream for its authors gravitates towards being unmaintained, or agonizingly slowly developed (which can work for some industries, but in the majority of cases makes it useless).
Case in point: VS Code vs. GIMP. Today, the best-in-class IDE is open source. I'm running the open source version myself, not the proprietary one, and it's just as usable. Microsoft financing this made it possible.
For serious image editing, I'm shit out of luck. I can use GIMP for basic stuff but "best in class" it is not. Photoshop, the one with the revenue stream, is.
VSCode's "open core" has allowed people to implement very interesting new things. Its open source typescript-based editor component has created new businesses, services and neat tools (such as github1s.com). This is one of the best things open source can offer.
GIMP in the mean time has spawned two somewhat acceptable projects over two decades: GTK and GEGL. GTK is awful and only popular by virtue of having been the only option for a long time (once again, Qt, the library with the revenue model, is the better choice). GEGL is … nice, but too niche and not developed enough to have spawned anything beyond that.
Something being open source doesn't do shit for the world if there is no high quality long term plan for its development.
That is the most succinct, accurate review of GIMP I've ever seen. GIMP is probably the biggest strawman of "free software can't be best in class" out there. But newer software does a pretty well at not being obtuse: Darktable for photography, Inskcape for vector graphics, Krita for drawing.
Get paid or die kinda applies there. But setting that aside... I've stopped hunting for proprietary software outside of the workplace. If I have a need, I hunt around until I find something at all and then poke around alternativeto.net. This process has rarely failed me. Hell, I rarely seek out paid stuff at work either, simply because not having to deal with purchasing stuff at work is well worth it.
For VS Code, the telemetry can easily be disabled and others can reuse the source code that's available in their own projects, so sponging off Microsoft's work still seems like a very good deal, overall.
It's not like the old days when projects like Samba and WINE had to start from scratch.
Those seem extremely minor compared to what Microsoft got up to under Ballmer. Like, the high-water mark there is committing corporate espionage to essentially steal another mulibillion dollar company. Even their entire otherwise ethically inert gaming division's approaches in the 2000's was orders of magnitude worse than this.
Technically, they forked and extended upon the Atom code editor by Github until it became VSCode and then knocked it out of mainstream existence.
Well, sort of. It's built on Electron, which used to be part of the Atom project. The actual text editor is their own invention, and it's called Monaco.
(It actually mentions this in the article you linked.)
Embrace, extend, extinguish has definitely been forefront when I think about these issues. I vividly remember the anti-trust trial from the 90s/00s. Obviously we don’t know what Microsoft’s overall plan is, but I do view almost everything they do with a fair bit of skepticism.
I will believe Microsoft really loves open source when they release Office 365 under an MIT or GPL licence.
Until then, it's merely doing everything they can to stop the developer emigration. DEVELOPERS, DEVELOPERS, DEVELOPERS, DEVELOPERS.
Enough devs switch platforms, all of a sudden they're not making windows-exclusive software. Makers start doing linux-first drivers. Enough developers switch, eventually userbase follows.
If my comment didn’t make it clear, I 100% think this is all about attracting developers away from Linux. They want to convince them to pay for Windows and just use Linux from inside of Windows.
I think they, just like almost all corporations, support open source as long as it is in their best interest. Right now, it’s in their best interest to support OSS from a PR and developer relations standpoint.
The things they’ve open sourced are things that won’t impact their bottom line. So, as you pointed out, they won’t open source something like Office, since that would cost them money.
Agree, with the stipulation that they want Enterprises and Companies to pay for Windows and Azure, and since IT can do their Linux magic within Windows instead of having to appropriate another laptop with all the paperwork and handholding required, it works out better for the people signing checks and liabilities.
I think it is in Microsoft's best interest to support OSS as long as said software is popular. Microsoft is in the midst of transitioning it's business model from selling software products to selling software services.
This means that Windows itself is actually becoming less important, as MS sees their future growth in areas like Azure. The best way to grow Azure is not to make people want to run their web apps on Windows, it is to make Azure the best place to host their web app regardless of OS. That is why Microsoft is pushing cross platform development tools and .NET so hard. If developers are writing software in Microsoft technologies, then Azure is their best cloud hosting option, regardless of whether or not they use Windows or Linux.
Yes, mine was a comment of agreement. The stuff they've released open source is largely superficial or is a gateway drug.
You do .NET development? Eventually you're going to want full Visual Studio, which costs big bucks, only runs on Windows. .NET integrates much easier with SQL Server than most other databases, and SQL Server gets pricey fast.
Does .NET core even integrate well with Visual Studio? There's nothing stopping people from making IDEs which support .NET core. I don't know if I agree with this logic.
Yes it does. And starting with .NET 5, Core and Framework have been merged into one platform, with only very Windows-specific components like WPF and DX12 remaining exclusive to Windows. MAUI is coming as an official cross-platform alternative to WPF and winforms.
There are a number of IDE options for developing .NET apps. I mostly prototype things in VSCode with a number of extensions. Rider is quickly becoming a popular cross-platform alternative to Visual Studio proper, and Microsoft has been investing a lot in the free Visual Studio for Mac (formerly Xamarin Studio). Visual Studio Community Edition is a viable option for the majority of hobbyists and open source contributors working on Windows.
At the end of the day, Microsoft gives you .NET in the hopes that you will want to use their paid products that integrate so well with it (SQL Server, Visual Studio for Windows, Azure), but there is nothing that inherently difficult to work with outside of these. Mature entity framework connectors for other popular databases have been around a long time, and Vsual Studio alternatives are getting better by the day.
to become more like Alphabet, inc., isn't it ? I wonder what is the share of advertising in their new revenue model.
I'm old enough that I remember this happening quite a lot. But honestly, I look at what they are doing and I quite simply do not see a way this is possible. WSL2 is basically a glorified virtual machine. While running Ubuntu on WSL is not exactly the same as real-hardware Ubuntu, it's close enough that it doesn't really make much difference. In any case, it seems like Linux is not the thing that Microsoft is looking to "expand" upon. Rather, they're expanding the Windows experience.
If anything, I think that this goal they are working towards will make developers drop support for the Windows versions of their applications, since users will be able to run the Linux versions directly, which I see as a benefit to everyone - users will get access to the 'best version' of Linux applications (including applications where there weren't Windows versions to begin with), and developers won't have to devote resources towards a Windows version and can improve their Linux version instead.
Until I see them integrate programs running in WSL2 in their store or something of the like, I don't believe this will happen outside of the enterprise. Telling people to setup WSL2 for your program is too high a barrier at the moment. I do think that would be very cool though.
There are a number of projects that have added and removed support for Windows because of a lack of interested maintainers. GIMP used to have an unofficial Windows port, and Darktable's official support is a fairly recent event. Evince dropped Windows support a few years ago.
Asking someone to setup WSL might be a barrier, but it's an easier barrier to overcome than finding interested developers to continuously work on supporting a platform that the majority of contributors consider to be unimportant.
For Free Software project and people who want a very specific piece of software, maybe, but I don't think the mainstream cares about Evince or any of the projects which don't do Windows anymore. They'll just another piece of software that accomplishes their needs.
For commercial interests, they'll never do that. Giving people a lot of work to setup your program is not something a lot of people want to do.
That’s fine. I wasn’t really considering commercial software when I was talking about programs dropping support for Windows. I personally am not familiar with any commercial software written primarily for Linux to begin with, so I am not really sure why you are talking about that.
Well, you said :
I assumed this included commercial software. The idea being dropping Windows support in favour of Linux support since it's possible to run through WSL2. It's also an idea that I think is supported by Microsoft giving WSL2 a DX12 driver which would make for WSL2-specific software which I don't know anyone but enterprise or commercial would use. My bad though, I thought that's what you meant.
They are working on DX12 on WSL2 iirc. The mesa driver for it essentially just pushes the dx12 calls to the host so it doesn't benefit Linux in that way. I don't think that this would enable extinguishing, if anything, it makes them more reliant on Linux as a guest.