Thanks Microsoft!
Thanks Microsoft!
Ballmer went head to head with open source and thought he could crush the threat. That didn't work, and things weren't looking great for MS before he was ousted.
Nadella's strategy is far more subtle: not quite Embrace/Extend/Eliminate, more Embrace/Neutralise/Replace.
Linux is a threat to server-side windows? Fine. Let them deploy on linux, so long as those linux boxes are in Azure. But that means devs get familiar with linux at the expense of windows, which means (a) they'll want linux on their desktop and (b) things are more readily transferable to AWS/GCP/whatever.
So: give them linux _in_ windows. Make appealing tools like vscode available free to create good will and positive sentiment towards Microsoft. Re-build the advocacy that hemorrhaged in the latter days of Ballmer's tenure.
And they're nailing it. By comparison to Google/Facebook/Amazon, there's very little negative press for Microsoft. And lots of positivity, even just in this thread.
It's hard not to be impressed by how successful they're being. And I say that as someone who still bears the scars from the 90s/00s hegemony. Microsoft was positively reviled by swathes of people in those days. Their attitude and market abuses rightly got them into hot water with the DOJ.
So, whilst I respect the turnaround, I'm wary. Microsoft is cruising inexorably back to dominance. History says that wouldn't be a good outcome.
[0]: https://www.joelonsoftware.com/2002/06/12/strategy-letter-v/
A lot of developers use MacOS, particularly web developers who are almost always deploying the server to a linux machine. With the Mac being BSD-flavoured, a lot of open source tooling works the same as it does on Linux. MacPorts and Homebrew have done a lot to drive that.
The experience on Windows for this has been incredibly poor. There are solutions, but they're less integrated.
WSL comes in, along with Windows Terminal, and now you can have a much nicer time with it all without dual booting or running a VM.
Who knows where it'll be in a decade, but if anything, they're just making themselves a viable competitor to Apple by providing better development tools than they do.
Before WSL1 I would run Linux inside a VM from Windows and use remote development tools (like VSCode via SSH, SSH tunnels for port sharing, etc). It was all pretty straight forward, stable and I had no issues.
I used WSL1 when it launched and it was _incredible_. Bash actually on Windows. My workflow changed because of the level of integration I had with Windows. I could run browser automation tools against my Windows browsers, from Linux. I could run Windows programs from bash.
WSL2 came on the scene and introduced a hypervisor layer and I essentially came full circle. Sure it has some smarts around memory VM allocation - but it doesn't always work right and you're never really certain it's not running, consuming memory. Network port mappings were automatically tunneled, but only in one direction and they would occasionally fail causing random issues that require a reboot to solve. Now GUI windows are shared with Windows via RDP, cool..
Ultimately, WSL2 is the attempt to take Linux VM and make it appear like it's not a VM. Maybe it'll get there one day, but due to the got-ya's it's not for me.
I have since reverted back to using my choice of distro inside my choice of hypervisor, where I know what's going on and don't have to mentally reverse engineer the magic when it goes wrong.
> Ultimately, WSL2 is the attempt to take Linux VM and make it appear like it's not a VM. Maybe it'll get there one day, but due to the got-ya's it's not for me.
In my experience, its been pretty great and elegant to work with. I've used it for ~1.5 years so far and they seemed to have broken down a lot of those vm walls to make it seem like some kind of hybrid windows + linux operating system. Doing stuff like 'code .' from within wsl to open the current wsl working dir in the vscode windows gui is pretty neat. And you can also do kind of neat stuff like writing to your windows clipboard from within WSL by running the powershell windows executeable. This is in my wsl .bashrc to do that:
function cb () { powershell.exe -command "\$input | set-clipboard" }
echo "hello" | cb # write hello to my windows clipboard
Cygwin has been able to do this for 2 decades, actual bash plus other unix tools compiled to actual windows exe's. You can even run some gui tools if you run an xserver on windows.
Even WSL1 wasn't as good, there were too many issues like tail not working properly on windows files, issues with network shares, interop, etc. I pretty quickly reverted to cygwin.
I much prefer WSL1 and I've only run into a couple of issues over the last year (can't set Windows time from Linux and ssh-agent doesn't work out of the box) which is a significant improvement over cygwin or even a proper linux distro (which would occasionally boot to a black screen after updating anything related to X)
Once I moved to Manjaro/XFCE a few years ago, all the problems disappeared. Docker just works. All the web dev tools are built for my platform and just work. There are no compatibility layers or emulation layers to worry about. I'm in charge of updates. I don't get nagged to do things at inopportune times. I'll never go back to either one of them full time. Windows for games, Macs for iOS/Xcode. That's it for me. Even for .Net and iOS now - I can do that too on Linux with .Net core and React Native.
That said, I'm glad they're seeking to benefit by increasing interoperability and developer goodwill. Their current strategy is good for users and devs and probably the best we can hope for. This will change if/when Windows becomes the one and only viable platform again and switches back to using that as leverage, but with the way things are going I think that will take a while. Not only have they been losing to Linux on the server front, they've been losing to the web and Apple/Google on the application & mobile fronts, so they are a long way from lock-in there.
I think it's smart because this will capture all those Linux people who aren't super comfortable administrating their own distro and even for those that are it's now giving them another option if they ever need to run things both in Windows and Linux at the same time or just run into some Linux issues and don't want to spend the time on them they can switch to Windows 10 WSL.
At this point the only thing that I still think it doesn't make much sense is Microsoft running/developing their own kernel. It's entirely possible for them to start running Linux and run all the WIN32 support, drivers, DirectX, etc as a separate sandbox (similar to the type of sandbox WSL runs). The performance overhead from doing that should be negligible on modern hardware.
EDIT: note that I only mean switching to Linux kernel for their desktop OS, there are plenty of usecases of Microsoft kernels where every bit of performance matters but I suspect those will continue to use their own kernel as part of Windows Server releases.
[0] https://3rdpartycodeprod.blob.core.windows.net/download/Azur...
Corporate pride took a huge hit after they completely wiffed on mobile, then went on to throw good money after bad for a long long time before they were willing to admit that they had lost. Think about where MS could be if they taken google/android seriously at the beginning. For a while, the prevailing opinion was that Microsoft was nearly (or already) no longer a a supermax tech company.
Lots of business orthodoxy got nixed, most prominently the supremacy of Windows over all.
Microsoft is very good at making deals with management. The marketing/sales apparatus is what really sets them apart. I can imagine being forced to give up my mac because someone who is barely technical made a decision after going out to lunch and hearing that WSL solves all the reasons I would use a Mac while giving more control to the enterprise.
While that example is a stretch to match the story, it's basically the reason why all the developers where I work have to spend time migrating from our self-hosted GitLab to GitHub enterprise. BTW If anyone at GitHub is reading this, can someone pretty please add sub namespaces within the enterprise?
Then they tried asking us to install CrowdStrike voluntarily on our Linux machines. I told them sure, once they ship a NixOS package for it. They never did, and the company shut down in any case.
This limitation came as a surprise even to the client, they were under the impression that Linux would work fine.
As one of those developers, I hope so: but I can barely bring myself to use VSCode, and made excuses to switch everything to GitLab once they bought GitHub. The latter is somewhat of a coincidence but it was a factor for sure.
I haven't really seen that, as a primarily Windows Dev all the moves they are making are to encourage you to use Linux over Windows for backend work.
Hell, they own Windows but for some reason App Services targeting Windows are more expensive than Linux on Azure. It's almost as if they want us off Windows.
They charge AWS the right to use Windows - so Azure also needs to markup by a similar price, otherwise they would fall foul of antitrust regulations. It’s not legal to give Windows away for free on Azure but not AWS/GCP/anyone else who wants to rent a computer from their garage (I.e. essentially making Windows Server free-as-in-beer).
Could be easier for just make Linux do the hard lifting and put a Microsoft layer on top
I'm curious as to why they didn't just purchase https://x410.dev/ and integrate that into WSLv2 as it has hidpi support already too. Also If Microsoft is able to get GPU compute working with native performance I would absolutely switch back from M1 mac.
Honestly curious, are you referring to Microsoft's illegal[0] tactics to destroy Netscape?
[0]https://www.washingtonpost.com/archive/politics/2000/04/04/j...
Also while this image https://i.redd.it/c4izfrkd4jl61.png is obviously just a meme (before we even called them memes) it really does grasp the messaging from Microsoft about Linux around the turn of the century. Dating the meme is easy, that's a first gen iMac visibly. https://i2.wp.com/sixcolors.com/wp-content/uploads/2018/05/b...
Those were not happy years.
1) Putting code in Windows, back when it was a separate graphical shell that ran on top of DOS, to detect if it was running on DR-DOS and shutting down with error messages more or less vaguely blaming the underlying OS.
2) Screwing their development partner IBM over on their joint project OS/2, switching to marketing their own branch Windows NT in stead.
3) Bundling their productivity apps together into an "Office Suite", thereby having the strongest[1] ones help selling the weaker[1] ones. (Yes, such bundling used to be illegal; it's actually a legal term that may have entered the vernacular via their first antitrust trial. For all I know it still is illegal in other industries.)
4) Related to both of the above, faking out Lotus and Word Perfect by pretending that OS/2 was the way to go, but themselves developing MS Office to have it work much better on Windows 3.x than these competitors. Arguably, WP an Lotus were somewhat out of touch and got started on porting their apps to Windows 3 far too late... But from all one could gather from the media at the time (and the trial documents later), that was in large part because MS had kept them in the dark.
5) OEM license deals with computer manufacturers that made selling both machines with Windows and with other OSes much more expensive for the manufacturer than if they sold only Windows machines. This was the main reason, IIRC far into this century, that it was almost impossible for ordinary consumers -- including up to at least SMBs -- with Linux preinstalled. (And I suppose this history has led to entrenched habits and business models in the industry which still make it pretty difficult and rare.)
And these are just the landmark ones that come to mind immediately. Beyond that, there were just endless amounts of "FUD"[2] and "EEE"[3] that helped them become a de facto monopoly in PC operating systems (and, arguably, office productivity software) -- "Linux is a cancer", etc etc. (Wouldn't surprise me if they're behind the insidious terminology of calling copyleft licenses "infectious" and "viral", too.)
All in all, back in their heyday -- from at least the mid-eighties to at least the early 00s -- they were just simply the actual supervillain of the computer industry.
And damn, it makes you feel old -- "What's wrong with kids nowadays, that they don't know this stuff?!?"... No, really, I just realized I'll probably never get around to trusting Microsoft again: When someone's been behaving very badly for years, then claims to be rehabilitated, how long does it take you to see them as trustworthy again... Twice as long as they were "bad"; three times? Counting low, say twenty years of monopolistic FUD / EEE / illegality and a 2× "probation period" starting ten years ago, that would be in thirty years. If I live, I'll be 87 then.
Buuut... Given their history as I know it, these current WSL shenanigans feel far too much like EEE all over again. (And, not to be too paranoid about it, I'm still not sure Stephen Elop wasn't a mole parachuted in at Nokia to try and make the mobile phone industry a Windows Mobile quasi-monopoly...) So, supervillain career possibly still ongoing.
___
[1]: Which is which varied with the customer. In the legal business, Word Perfect used to be the absolute de facto standard, but they were probably less married to their Lotus 1-2-3 spreadsheets, so getting Excel bundled in "for free" with MS Word was at least a bit of an incentive to switch. In the accounting industry, it worked the other way around.
[2]: "Fear, uncertainty, and doubt".
[3]: "Embrace, extend, extinguish".
This 100% describes me. Not only does WSL remove a reason to dump Windows for Linux but it evens removes the need to dual boot. Linux is becoming a Windows App like a browser or media player.
It's hard for me now to love an OS that
* blatantly spies on its users[0]
* has an update mechanism that takes way too much time and CPU
* and an antivirus software that scans those updates, making the machine even slower
* shows ads, even though users paid for the OS[1]
* in its "professional" edition comes preinstalled with all kinds of cruft like Candy Crush[2][3]
* in its home edition blocking users to install a different browser, patronizingly claiming that Edge is the best[4]
Switching to Linux made me feel like I actually own my machine again.
[0]https://www.privacytools.io/operating-systems/#win10
[1]https://www.pcmag.com/how-to/how-to-remove-the-most-annoying...
[2]https://i.imgur.com/qhoV17Q.png
[3]https://www.pcmag.com/news/windows-10-will-come-with-candy-c...
Then I went back to virtualized Linux because I got tired of my hardware not working.
Now I get the best of both worlds for me. I can do all my work in Linux and all my peripherals work.
Not everyone that chooses to run something else does so because they're incapable or an idiot, sometimes people just want to take the happy path and get on with the important things.
I'd be curious about your first impressions of Windows Terminal as a more recent cmder user, if you still have a Windows VM lying around.
- Sometimes the preferences just decide to go through the "open as a json file" path
- I don't know if it's my settings or what, but in WSL2/Ubuntu 20.04 I keep getting into a state where my background is black but lines fill in white. I've used the same .bashrc for a decade without that issue.
- The copy/paste UI is different both from normal Linux interfaces, from CMD, and from the Windows standard.
- As far as I can see, no support for USB CDC devices either via WSL2 or through Windows itself. There's no reason I should need PuTTY still to access a usb-serial console.
Personally I'm thrilled to finally have a good terminal experience on Windows. The copy/paste behavior is very comfortable to me, given the similarity to gnome-terminal. And to be honest I never really got comfortable with CMD's behavior.
I don't use WSL itself much, so I can't comment on those bugs except to say I hope you find fixes.
I've ended up doing a lot of PowerShell for work lately, so I jotted down a guide for myself for getting the terminal to behave the way I like, if it's useful to anyone: https://gist.github.com/sandyarmstrong/8b48d7dd0cb01c63cabc6...
One of these things is most certainly not like the other. I'm not saying your experience is wrong, just that the general opinion of Windows Terminal is quite positive and can't really be lumped in with the likes of Teams and Outlook.
(all of this comment completely fictional).
To avoid too much theory lol, my perspective is that MSFT views Windows as the trademarks and the 30+ years of backwards compatibility layers (e.g. Direct3D, WinAPIs, etc), and everything else is already expendable (kernel, drivers, etc). Meanwhile, the (slow?) migration to ARM and Web(Electron + derivatives included) will deprecate the compatibility layers too.
FWIW, I think people will still only develop "for Windows" not develop apps "for all Linux distributions", the same way people develop "for iOS/macOS" not "for all *BSD distributions".
MSFT reduces developers and costs because kernel costs become "a relatively large corporate donation" (tiny compared with the reduced developer salaries) and drivers are created by hardware companies instead. Meanwhile, MSFT increases revenue through Azure, consumer services like gaming, consumer electronics (e.g. VR, Surface, etc), enterprise sales "for the support/compatibility", and increased adoption/street-cred given its now "Linux on the desktop, laptop, AR/VR and tablet". Its simply a no-brainer for MSFT.
This is not a new idea: found one of my responses from 2016 https://news.ycombinator.com/item?id=11390719. There is a parent comment describing Windows as "just another Linux distribution", albeit it'll 1. be the most deployed Linux distribution by a lot and 2. continue to have a closed-source UI toolkit (e.g. Cocoa on macOS).
> continue to have a closed-source UI toolkit (e.g. Cocoa on macOS).
The comparison isn't apt. macOS can use BSD licensed programs because it's allowed to create derivative works that are closed source. Anything constituting a derivative work based on the Linux kernel has to be open source because of the GPL's virality.
So unless you think Microsoft will be willing to keep all their custom software restricted to userland (requiring basically everything else to be GPL) it seems extremely unlikely that this will happen. Microsoft is going to want to continue developing an operating system, not merely a Linux distribution.
Obviously I'd love to see it happen, but I find it extraordinarily unlikely for these and other reasons (backwards compatibility? Continuity with previous sysadmin tools?)...
I'm not so sure. I don't think MS sees itself as primarily a OS company. I think it sees itself as primarily an applications company, and the Windows OS (and before that, MS-DOS) was historically the best way to get everyone to use their applications. (It was a great help, of course, to have IBM basically hand them the PC software market, not once but twice--but I think if IBM had had their s*t together and had made OS/2 solid and workable sooner, MS might never have developed Windows.) But the Windows OS itself I think has always been expendable if MS could find a way to get everyone to run MS Office applications, .NET applications, etc. (and now Azure applications) without it. This might be the way that finally happens.
> backwards compatibility? Continuity with previous sysadmin tools?
If then can make Linux run on a Windows kernel, they can also make Windows run on a Linux kernel. All they need is a compatibility layer for all the Windows APIs. And MS is certainly no stranger to compatibility layers.
How are you so sure? what if Windows has more modular/flexible kernel?
It just needs to be good enough, not the best kernel integration ever.
It’s just simpler to have a team or two of in-house devs contribute those improvements from NT to Linux.
... except that if Microsoft did, likely very few would embrace such extensions.
A successful EEE play requires a lot of pre-existing trust that has to last through the Extend phase, which is why I don't think they'll ever try that again in the foreseeable future.
Seriously, you kids do not remember things clearly or simply weren't around.
Microsoft simply cannot be trusted.
Maybe ya'll are fine forgiving and forgetting but personally I take a stance on a company for this kind of behaviour I don't forgive.
Same goes for a lot of companies with awful histories of Child Labor and agregious abuses.
> Linux is the long term threat against our core business. Never forget that!
I won't.
https://www.theregister.com/2001/11/12/ms_promotes_linux_fro...
(Not that I'm comparing the two but since you brought in child labor I'm just going further down that lane.)