Hacker News new | past | comments | ask | show | jobs | submit login

It keeps smelling a lot like embrace-extend-exterminate to me, and I keep not trusting WSL and advise people to use native Linux instead.



From a Microsoft perspective, this feels like damned if you do and damned if you don't.

If they didn't embrance linux style tooling, they get told that they're anti-open source and that Macs will always be a better development environment when you're targeting Linux servers.

If they do embrance Linux style tooling, they get told it's EEE all over again.

I've been following the development of WSL, Terminal and VS Code. It doesn't strike me that this is some corporate EEE style policy, more it's a directive to make Windows as developer friendly as possible.

There's quite possibly an ulterior motive here, but it's more "make deploying onto Azure the happy path" than anything else.

WSL+VS Code+Terminal+Docker for Windows+Github == more business running their workloads on Azure == more money for Microsoft.


This is one of the more sane comments on this thread. There is a lot of paranoia about MS wanting to somehow "corrupt" Linux because some web developers are having IE6 flashbacks. Sure if it was still 1999 I'd be scared of that, but now Microsoft's biggest growth business is Azure, so this move is largely about supporting Azure usage, not about creating a weird Linux Windows hybrid to lock developers out of proper Linux distros. The rest all comes from MS being developer friendly, which has always been a part of their culture on the tools side


That's a poor portrayal of EEE. Of course this move is largely about supporting Azure usage, it just supports Azure usage by locking developers out of proper Linux distros.

When you use the proprietary DirectX extension in WSL, you're not developing for Linux anymore, you're developing for WSL, a proprietary package. And now that you're reliant on DirectX/WSL/Windows, what cloud provider are you going to pick? You see, the Azure Advantage (TM) is that only Microsoft knows how to run DirectX on Linux effectively, because only Microsoft can inspect and modify the code. The Azure Advantage (TM) is that only Microsoft has the proprietary rights for Windows, so Microsoft can charge their competitors anything they want while offering it on Azure at a (relatively) affordable price.


If you buy the theory that Microsoft now loves opensource and Linux, I want to ask you why they don't provide full support for things like 'Wine'. May be even develop something like that themselves, that will allow people run Windows programs flawlessly on Linux. (I mean, if they only mostly care about Azure)

Also, they have acquired Github, and they are slowly pushing towards the entire development/discussion to be moved to Github (In the guise of making it easier for people to contribute to Linux), from the current method of using the Emails for discussions and submitting patches.

When you consider everything, and don't just go by localized observations, you might get a better picture of the old EEE in the new bottle.


Supporting Wine would cost Microsoft money and not make them much/any money, why would they do that?

On the other hand, supporting VS Code, Terminal, WSL2 makes them money by helping boost their cloud services, so it makes sense to spend money in those areas.

That doesn't feel nefarious to me, just business.


Not to mention the uptake of proper linux desk top distro's is a rounding error in the big scheme of things. They need to worry more about Apple and Google. And Apple has done more to EEE Linux than Microsoft is going to do.


If they were just embracing Linux, it wouldn't be so nefarious. You're missing that they're already starting the "Extend" phase with proprietary DirectX extensions for WSL, encouraging developers who normally favor the Linux environment to instead target the WSL, which is Windows only.

This isn't just making deploying to Azure the happy path. This is ensuring that a generation of software in the Linux environment only works on Windows' WSL.


If you're going to do Windows specific GUI development, why would you go to the hassle of using DirectX/WSL at all? Why not just do native Windows development?

If you're not doing native development on Windows 'cause you want cross-platform support, you won't use DirectX specific pieces...


The DirectX extensions to WSL aren't intended for GUI development, they're intended for ML workloads.


So if I'm understanding correctly, your theory is that MS will be expecting Windows servers with DirectX and WSL to be the targets for ML production workloads? Instead of Linux servers in Azure...

Wouldn't developers just write native Windows ML apps then?


It's about developing ML applications. Right now ML programming using CUDA is a very Linux centric ecosystem.

The DirectX integration is going to bring over that support to Windows.

https://developer.nvidia.com/blog/announcing-cuda-on-windows...


They also cannot be used from applications directly since they're just implementation detail inside mesa.


This isn't true, you''re supposed to use proprietary DirectX libs that interface with a virtual DirectX device, as shown in this architecture diagram provided by Microsoft:

https://devblogs.microsoft.com/directx/wp-content/uploads/si...

From https://devblogs.microsoft.com/directx/directx-heart-linux/

I'm not even sure where mesa comes in. Can you elaborate where you got your info?


You're supposed to use APIs provided by mesa (OpenGL, OpenCL) or TensorFlow and similar ML Frameworks which then talk to D3D12 or DirectML as seen on linked diagrams.

It makes zero sense to consume D3D12 and DirectML under WSL directly from user applications since that prevents your app from being deployed on the real linux. There also won't be any SDK or headers released by Microsoft so you'll have to manually load functions from .so.


Not everyone will be using the popular ML frameworks that will likely try to smooth out cross platform differences. OpenGL & OpenCL is still available, that doesn't negate the fact that Microsoft's proprietary DirectX extension is exposed directly.

> It makes zero sense to consume D3D12 and DirectML under WSL directly from user applications since that prevents your app from being deployed on the real linux.

That's the whole point, people will do it because it's convenient, and Microsoft is counting on the fact that it prevents your app from being deployed on "real Linux". DirectX is already quite a popular API on a popular OS and actually pretty good on technical merit alone. It may very well be a sensible trade-off for a project or developer to move to DirectX, but it will be a loss for the Linux ecosystem.

> There also won't be any SDK or headers released by Microsoft so you'll have to manually load functions from .so.

The .so files are compiled from the same source code, the article doesn't go into a lot of detail but I suspect existing DirectX tooling will be updated for Linux targets. Either way, normal developers will have access to the same tooling and documentation as the developers for TensorFlow and similar ML frameworks you already claimed will talk to D3D12 or DirectML (unless you're claiming that Microsoft will give special tools to the open source TensorFlow project or something).


I think there a way too many people who are not political and do not give a flying fuck about all those conspiracy theories. They just care about doing the actual work. What we have on sites like this one is a vocal minority that may not represent common situation at all.


Unfortunately it doesn't make it more friendly to developers. If they wanted to make it more friendly to developers, they would release a Microsoft Linux distribution. Maybe port some critical dev tools. There are far too many incompatible quirks with Windows to ever make it a reasonable development platform when targeting Linux.


WSL2 is a virtual machine. It is way more than a reasonable development platform for linux and it is very much friendly to developers, much more so than another distro would be.

As a linux user I'm immensely happy that I can use the same shell-scripts and applications on windows machines as I do on linux. And that I can just SSH into it (and use the same tools, SSHing into powershell doesn't help much if you don't know or use powershell for anything else). It makes coexisting so much more comfortable.


This is more of "embrace" so the other steps are made obsolete. i.e. anyone running windows who ever considered trying linux will no longer be tempted since he would probably be able to do anything he wanted in windows either way.


Microsoft has created a GPU accelerated DirectX driver with Nvidia that only works on WSL 2. That is 'extend'. [0]

I can't begin to imagine if Microsoft starts creating an entire Linux development suite of apps that 'requires' the presence of WSL and Windows installed.

[0] https://developer.nvidia.com/cuda/wsl


Like Android and ChromeOS?


At least for me, a huge part of running a Linux OS is not just having access to some Linux-exclusive features, but not having Windows anti-features.

WSL does not give you the non-intrusiveness, better performance, security, and privacy of a native Linux distro installation.


Depends on your perspective if you look at it from the perspective enterprise where Microsoft makes a lot of its money its a different story. The enterprise's IT department (which is probably already running Windows with Exchange, Office and the rest of MS stuff) faces the following issue: Developers want Linux tools, but to IT, it makes sense to keep all employees on Windows rather than give developers the option of Linux in order to make their management easier. With WSL the problem is solved, everyone is on Windows and developers get the tools they need.


Linux is definitely better at privacy by leaps and bounds. But! Performance, no, there are use cases where windows outperforms, and others where Linux does. Security they're almost equal with Linux with a slight advantage if you keep your OS up to date and fire walled.


The big danger of WSL is in drivers. For many hardware vendors, driver development is a cost center. It they could just get away with writing a single Windows Driver and then rely on a Microsoft supplied WSL universal driver which just does pass through to the Windows driver, it would cut down on their development cost. With GPU pass through, Microsoft already has this type of model, where the graphics driver on the Linux side of WSL is just a thin shim that calls to the Windows GPU driver. In the future, I could see NVidia, making all their consumer GPU drivers like this, and reserving native Linux drivers for their professional GPUs, which would help them segment the market better.


As much as I like to crap on nvidia, they have supported a relatively high quality Linux driver when it barely registered as a desktop platform. Hell, they even have a FreeBSD driver.


The good news is that if Microsoft becomes Micro$oft of old, you can just move off Windows and back to just normal old Linux.

At the moment though, this brings Linux and the entire Linux software ecosystem, a pretty good desktop experience, all of the Windows hardware/software ecosystem, and very good integration between the two environments.

It's sort of everything that OS X/MacOS used to be with respect to a great GUI + nix CLI. But Apple has given about as much attention to the nix side of the software as I give the sewage lines that run under my house.

With a Windows GUI and a CLI that is one of several distros. You get the benefits of the enormous hardware support Windows provides, but all of the opensource software the open source community provides.

Who knows what the long-term strategy is, but it's suddenly made Windows useful as a development platform again, right when Apple has started taking their eyes off the ball and has been ignoring the *nix side of their platform for years.


> The good news is that if Microsoft becomes Micro$oft of old, you can just move off Windows and back to just normal old Linux.

Not if driver developers say "we don't need to support Linux anymore, everyone uses WSL2 anyway".


> Not if driver developers say "we don't need to support Linux anymore, everyone uses WSL2 anyway".

Disagree. The success of linux has been driven by open source enthusiasm, not corporate backing, so I doubt its demise will come from a corporation.

And the momentum of OEMs offering linux out of the box (Dell, Lenovo, System76, Pinebook) seems to be growing, not shrinking.

Linux is winning. Have some more optimism, my friends.


That is a good point.


That is EEE.


Well, Windows is looking like the best "linux distro" at this point, despite it not being free, but mostly widely available to most people.

EDIT: OK downvoters, so what's the most popular operating system that has Linux on it? pretty sure now it is Windows.


Do we have usage stats for WSL? I did a quick google search and the only thing I found was a laughably biased article claiming only around 150k people used WSL1. Just because Windows has a much larger userbase does not mean that WSL is seeing a lot of usage. It's very possible (and in my estimation likely) that the numbers are not even close.


Linux on the desktop numbers please? It's been known for "pure/native" Linux users to chant this phrase, yet it seems that Windows has achieved this.

I will see in the future lots of tutorials, guides, software, company support, etc covering not just your regular Linux but also WSL, since it's much easier to access rather than installing yet another Linux distro directly on hardware just to try Linux software.


Wait, what has Windows achieved?

My point was that you can't claim the 100 million+ Windows userbase as being the largest Linux distribution, because almost none of those people (proportionally) are actually using WSL.

I don't think we have the usage numbers for WSL. I don't think we have the usage numbers for Linux desktop either. I personally would be surprised if WSL was the largest Linux distro, but either way it's not a claim one can make because we don't have the numbers.


> Wait, what has Windows achieved?

It has achieved Linux on the Windows desktop without dual booting, all unified, download whatever distro you want.


We used to use Virtual Box but Oracle.... our company wants to never have any Oracle products on any of our stuff. AT least with wsl we don't need to worry about that.


Right! Distribution of apps is about where the user lives, and that's Windows. Devs will be able to live in Linux and be happy and their apps will simply work in Windows and users don't care. It's win-win-win for devs, users, and MS.


> what's the most popular operating system that has Linux on it? pretty sure now it is Windows

It depends what you call “Linux” obviously, but android runs on top of a [forked] Linux Kernel.


It's still Linux kernel though. Linux is far more machines than windows. Embedded computers and phones are computers too. If you're talking desktops and laptops of course windows is in the lead by a huge amount.


Which is meaningless for userspace apps, as Linux kernel isn't part of official Android NDK stable APIs.


Android? And with Android x86 you can run it on PC's too. For people who just browse and check emails, it's a pretty decent alternative.


Numbers for people who run Android on PCs?


No idea. But Fosshub gives an idea about its popularity:

- Android-x86: 8,352,565 Downloads

- RemixOS: 4,623,342 Downloads

- Phoenix OS: 180,898 Downloads

- Openthos: 166,697 Downloads


Is this of all time? pretty sure you don't want to see all time download stats of Windows 10 on desktop...


This is also why I try to use the GPL where possible. The move towards permissive licences puts the open source world in the hands of the companies as opposed to having a legal guarantee

Open source is in at the moment but it might not be in the future (especially if we go all in on the cloud)


To me, it feels like someone got stuck working at Microsoft that likes Linux better so they decided to write some code to make it happen as a side project. Then somebody noticed... it doesn’t feel planned to me. But now that person feels happy to be working on Linux at Microsoft.


Desktop Linux market share has been growing in past years among developers, just check the stack overflow surveys. This is MS fighting over that market share by providing an alternative. They don't do it to help Linux but to protect their own base line. For employees this means less ability to justify running Linux on developer boxes and having to run Windows like the rest of the company.


Nope they do this to cater for the "Linux developers" that buy Apple laptops instead of helping Linux OEMs.


Android, ChromeOS.....


Embrace-extend-exterminate is an objective strategic risk which exists regardless of Microsoft's current executive culture. With Microsoft now controlling an important part of dev tooling, i.e. stuff like VSC, TS, Github, Azure, the risk is very real.


It looks they are moving to subscription model now. The don't care whether they give software to you for free or not/which system are you using because they do earn more from subscriptions (azure, office 365, xbox game pass, whatever)


How would the steps “extend” and “exterminate” look like in this situation?

If Microsoft does anything people don’t like with WSL, people can move back to another Linux distribution, the cost is almost zero to move back to a Debian or Ubuntu.


Not if you let your workflow get intermingled with Linux (WSL) and windows because they worked well together and then suddenly Microsoft gets new management and decides to "take the company in a new direction"


And the vast majority of people still do. Linux isn't going anywhere. Microsoft will get injected with the open source virus as well, it's almost inevitable.


That view would have been reasonable 15 years ago. MS didn't embrace Linux because they want to be nice, but because they realized a desktop OS monopoly is completely useless in the mobile era. A big chunk of software developers prefer Mac or Linux. Work in the cloud is done on Linux. People use Windows at home/work because it's what they've been using for 25 years.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: