Because windows now literally has all the stuff Linux has plus a lot more.
The only reason for a well paid developer to prefer linux over windows for a desktop OS is that you don't need any of the extra stuff (a decent desktop experience, hardware support and a commercial end user software eco system) or that you have some fundamental objections concerning Microsoft's business practices. These are good reasons, but experience shows that most people don't care enough about things like privacy to give up convenience or shiny things.
Apple may be in for a tough awakening. They profited enormously from providing the desktop OS that a very large fraction of the technical elite has been using for a long time. MacOS still is still smoother than windows in some regards, but the writing is on the wall: linux completely dominates the server but is as hopeless as ever as a general purpose desktop OS, but windows no longer sucks for software development. It used to be that macs had the unique selling point of offering a nice desktop experience on good hardware coupled with something close enough to linux that you could use it for a very wide range of software development tasks. But new hardware is developer hostile and macOS drifts further and further away from linux (ever more lock-down that directly breaks developer workflows and tooling and ever more diverging user land with a mix of ancient GNU and irrelevant BSD tooling). By contrast windows now includes an ultra-high-fidelity linux layer with excellent tooling and integration to "core" windows and Microsoft also owns the world's most popular editor and code hosting solution.
I'm amazed how well Microsoft has managed to find back to its embrace, extend, extinguish roots. It is both a technical and a strategic marvel.
I have a better experience on Linux now than I've had on Windows in the past.
https://insights.stackoverflow.com/survey/2016#technology-de...
https://insights.stackoverflow.com/survey/2018#technology-_-...
https://insights.stackoverflow.com/survey/2019#technology-_-...
https://insights.stackoverflow.com/survey/2020#technology-de...
Windows Terminal 1.0 has been out for a bit, the current version is 1.0.1401.0 [0]
[0]: https://github.com/microsoft/terminal/releases/tag/v1.0.1401...
I think there were being some problems with that. It is planned but still in the future, possibly only with another feature update.
CUDA was always the big thing for me, I use CUDA and develop with it — AMD and Apple have missed their shot on this, in an absolutely massive way. Alienate developers with centralized app stores and huge fees, then alienate researchers by picking a fight with the biggest name in the GPU industry while providing no alternative. Silly.
I haven’t used Windows in years and it will be so so bittersweet the day I boot it up on a Dell laptop again.
Now, Apple is making a lot of hardware decisions that I don't like. Having used WSL daily for several months now, it's the game changer.
My next laptop will probably be a PC, and I can only say this because of WSL.
And then of course, there was the very successful advertising campaign from Apple where they specifically distinguish Macs from PCs: https://en.wikipedia.org/wiki/Get_a_Mac
Essentially, Macs are "personal computers" but they aren't "Personal Computers", if you know what I mean.
But if PC = IBM PC, and those basically always came with Microsoft software, I guess history supports that interpretation.
Direct rendering for X. This means the maximum OpenGL version that can be supported with hardware acceleration is 1.4, so many modern X program don't work or will use software rendering.
Multi-monitor support. Under X, windows are by default positioned and sized by the window manager and it's hard for application developers to screw it up, but under Windows each application developer has to be careful to make their program work well on multiple monitors. This shows, and event some built-in Windows applications get confused by multiple monitors, usually by having an action performed on one monitor open a window on a different monitor.
It is amazing how Mac users stick with Apple through a lot of inconvenience - x86 transition, USB type C, adapters, no audio jack, touchbar, breaking updates, walled garden iPhone. But they also brought a lot to community - good chassis, quality touchpad, HiDPI, wide gamut, capacitive touchscreens with gorilla glass.
Microsoft users has no less inconvenience - ribbon, metro, viruses, ever changing frameworks, ever confusing names (winrt), wrecked settings, custom theme on every application. And community gains - Word, Excel, up to IE6 innovations, XBox, VS Code, language servers, maybe crossplatform .Net some day.
I do not want to wreck them, I want to be objective. Microsoft of 80s rocked, in 90s - big and everpresent. Today they excel in PR. Hell, they got package manager 20 years late.
I think you'll find many Linux devs who have previously used or considered Windows have their own list of "windows sucks" reasons.
(By "Well paid", are you referring to people who are willing to spend money on big ticket desktop sw, or people who are in it for the money and don't have the curiosity or interest about how the system works? I think for most it's not about not being able to afford the SW.)
Sometimes it is simply the problem of linux being utterly broken. Linux users wonder why people won't adopt linux, and it is because it is full of problems. I spent a full day this week trying to get an internet connection for my linux desktop working (sans ethernet cable) and was unable to. USB tethering was broken for unfixable reasons and wifi adapters are a nightmare with linux. So that drove me back to windows, I tried WSL, and now I probably just won't ever bother trying to run linux on desktop again. I didn't want to tinker with my software, I wanted to do my personal projects. Windows at least lets me get the job done.
Developers targeting Apple platforms are doing just fine.
CUDA on Windows was already a big deal in engineering. Scientists and academics preferred Linux (and python, and docker) and Windows is playing catch up there to become compatible with the tools that have grown in popularity over the last 5 years.
Personally, as an open source advocate, I think competition (even from MS) is healthy. It drives everyone to build a better product.
Docker for example, I hate it, it serves no purpose beside wasting disk space and slowing down your machine. BTRFS is a bugged imitation of ZFS. Wayland not only is bugged but even does less things than Xorg.
Most scientists and academics then just don't know how to write software or administer operating systems, and if they program they write the worst crap of spaghetti code possible, no wonder they like Linux, Docker and python.
I use macOS, at least I have a system that has a decent user interface, and for my server I started using whenever I can FreeBSD, much more stable, much more simple, good documentation, a good operating system.
Docker is a deployment tool and obviously needed by enterprises and I don't think anyone sane using it for their own localhost.
> BTRFS is a bugged imitation of ZFS.
You don't really have to use it though. ext works flawlessly.
> Wayland not only is bugged but even does less things than Xorg.
Check out this video from one of major X maintainer of the past:
Today I learned me and a heap of web developers I know aren't sane.
Web developers usually need docker on their localhost just so it's work the same way as production environment. Though when you compare Windows on desktop and Linux on desktop you not gonna use docker at all.
I disagree about Docker. It's a good tool for reproducible development and production environments. What else should we use? virtual machines?
Scientists and academics are not in general, professional software engineers. At least they are using open source tools! What you rather they write their spaghetti in? MATLAB?
FreeBSD does not have the mindshare and ecosystem that Linux does. That actually does matter.
It has bugs, but at least it supports copy-on-write files and making snapshots writable.
Personally I use Ubuntu as a daily driver. No docker unless you install it and comes with Xorg (as well as wayland, but you're not forced to use it).
No, that's emulation. FreeBSD has something much better: jails.
Using Wayland... is it Ubuntu with their experiments?
It's fine you found FreeBSD, but your choices is not Linux fault.
Dave Airlie who is maintainer of Linux graphics subsystem will never allow to merge it since it's can only be used for proprietary software.
When it's come to graphics drivers Linux upstream don't accept any code that can only be used for proprietary components. So all this Direct3D and CUDA shims never gonna be merged.
See: proprietary hypervisor runs OS with a patched non-upstreamable Linux kernel and then there is proprietary userspace drivers and libraries that able to talk to their proprietary parts inside Windows.
Can any of it be used with different hypervisor? No.
Can it be used with open source drivers? Again, nope.
Microsoft could also just use Vulkan instead of bringing proprietary Direct3D user pace to Linux. Or might be they could actually open source parts of their stack, but then it's will be against their vendor lock-in.
Second there are situation where as a developer you are forced to use Windows. A lot of SDKs, compilers, debuggers, programmers for microcontrollers, FPGA, etc runs only on Windows, and if you have to do with firmware development you are basically forced to either use Windows or spend a week just to make a LED blink (if you manage to do that).
Same reason for using macOS: I use a Mac mainly because I need to make iOS software and the only way is to use a Mac. By the way macOS to me is a good compromise, you have all your UNIX tools in a system that you can use to run also proprietary software.
On my server I use Linux, even if recently I started using more and more FreeBSD and I'm liking it a lot (recently they added too much useless bloat in Linux like systemd and other crap, while on FreeBSD you have a simple system that is stable as a rock)
I don't think we will see the Linux Subsystem for Windows 2 ever. I also am not enamored with GUI side of the Linux world. WSL2 seems like a not bad place to land.
In my ideal world, Microsoft would base Windows on a mainline linux kernel. That would make me so happy.
absolutely _nothing_ about the subsystem made by microsoft is "for linux".
I also still dont understand what you get for paying for a windows licence to run linux except more overhead and a total lack of a package manager.
What is the benefit compared to the much simpler, better performance and cheaper option of just running Linux proper and using wine for windows things.
So, I guess when I use Office365 on my linux laptop, which is connected to a HiDPI monitor, that I can't do what you say.
Ok.
Here's a bit of a reality check. You can do, with very limited corner cases, everything you want to do on windows, on linux (and Mac) today, via the web or similar clients.
One exception to this is skype for business. Which is complete and utter trash anyway. But there is a commercial linux version, not by Microsoft, that works quite well for it. I have it and use it.
Teams for linux from Microsoft is in preview/beta. But, the port using electron was out first. And is fully operational.
For things that just absolutely require windows, I boot my licensed windows 10 home which was installed on a small SSD when I bought the laptop, in a qemu kvm window. Everything works on it.
I am amazed with all the hate on Linux desktops. I've been using Linux machines as my primary desktops, and linux laptops for more than 20 years. My current laptop is a Sager (Clevo) unit with 64 GB ram, 1.5TB SSD, GTX1060. Win10 was installed when I bought it, on an SSD. I changed boot order, installed Linux Mint 17.x at the time, and everything just worked.
Once I realized I could use windows from the qemu kvm session, I set that up. Took about 10 minutes.
Something I've learned from a long and painful life with windows, is that one should never let it touch real hardware. When you have to manage it versus fleets of linux machines, you understand why keeping it virtualized is the best option.
FWIW, I don't think WSL2 is going to change anyone's game. This is my opinion of course, but most of the developers I know are either on Mac books, or linux machines. About 60-40 split. In my field (HPC) its 25-75.
Microsoft's best play at this moment would be to buy Canonical, and offer that as MS Linux.
Imagemagick and call it done. Now everyone likes minimalist shit, so here you have. Or Xfig, if you feel fancy.
>You maybe need to connect to a printer like the one that we have at my office that good luck doing that on Linux
CUPS has less issues on Unix than the Windows "today it prints, tomorrow I'll toss a coin and let the Universe decide".
Perhaps WSL is a perfect tie in terms of user migration: for every person who decides that WSL is their most convenient way of using Linux there might be another who decides that if they are spending so much time in WSL anyways should better try shipping the surrounding Windows. And everybody wins, even pure Linux users who will over time use more software that isn't developed with the overhead of Windows port ifdefs.
It's definitely not as robust - you can't uninstall stuff using WinGet but the concept is there.
Do you or wider HN users have any picks for WSL/2 and/or WinGet tools?
Competition is ultimately good, and we should promote Linux for the benefits it brings. Not hope windows will stagnate.
I'll offer you one data point, for what it's worth.
We do multidisciplinary work on our workstations. That means electrical engineering (Altium Designer), mechanical engineering (Solidworks+CAM), embedded (Keil, Xilinx, Linux, NVidia Jetson, etc.), FEA (Solidworks Simulation), server-side development (Linux, Python, Django, etc.) and the myriad business documents that can go with all of that.
The traditional setup has been to custom build powerful Windows machines with as much memory as the mobo will support and half a dozen SSD's assigned to specific functions (system, data, library, hardware dev, software dev, virtual machines) and then build a bunch of task-specific virtual machines.
Using multiple (3+) monitors it is easy to live in this multi-OS/multi-paradigm world once you get it all setup.
Not quite using WSL yet but watching its development with great interest.
If all someone is doing is web development it used to be that either an Apple laptop or a dual-boot Windows/Linux machine was the top choice. WSL seems to be displacing Apple in this domain.
Developer != UNIX.