Honestly it's mindblowing how far Windows has come - if I were Apple I'd genuinely be scared of losing a large proportion of power-users as Windows becomes an increasingly viable platform for development.
Honestly it's mindblowing how far Windows has come - if I were Apple I'd genuinely be scared of losing a large proportion of power-users as Windows becomes an increasingly viable platform for development.
I didn't want it to be this way though. Apple has been continuously pushing out laptops that are not what I want. My Mac is also notifying me nonstop about 2FA authentication and iCloud storage, and I can't seem to turn those off. I used to eagerly await their keynote events to see what cutting edge innovations they will announce. There have been none I care about since Steve passed.
The lack of a decent modern laptop (I just want a proper keyboard without touchbar, some ports, with a decent cooling system) and MacOS becoming more buggy and annoying has pushed me to find an alternative.
WSL1 did not cut it for me, but WSL2 has taken Apple out of my mind entirely with regards to my development environment.
I think a lot of folks take this path because it's just easier. The fact that I know I can do most of the stuff the same way I always have makes it an easier decision to make. I think there's also, for some people, an ideological component, that is, they're still using UNIX, it just happens to be in a Windows host, and that's easier to accept than come to terms with Windows just being a decent OS on its own merits. (I am not saying anyone in particular in this thread is that kind of person, of course.)
With WSL2 you can go from - I wonder if this would work, do a quick no git checkin no vm no docker quick script, then looks good, let's drop this into git, get a dockerfile going, test on docker then test deploy or start going to production.
And it's all pretty fictionless and you can use your Windows machine still for whatever other desktop stuff you have (which many find easier than getting a linux desktop going especially if you need to interop with a word / excel / microsoft business).
I think Microsoft is finally paying a bit of attention to what developers are looking for. The vagrant / docker on windows solutions were in part providing for this need (windows desktop / linux development). This is also what made MacOS so great (unix/bsd under the hood with a nice gui). Why not bake it in? Linux is open source - you don't even have to license it from someone.
We were deploying into production with Windows, Aix, HP-UX and Solaris.
The Red-Hat Linux server that we had around was only for test purposes.
It frankly disturbed the hell out of me. Windows asked for consent (default to yes, of course) for a lot of invasive things, to the point that I wondered what it was going to do without asking. And even after I said no to them, I saw what I can only describe as ads all over Windows itself. Windows pushing me to use Edge, Windows pimping Cortana even when I said I didn't want to use it, etc. In the hour or so that I used it, I never wanted to use it ever again (and, indeed, I haven't).
Apple and macOS certainly have issues of their own, but I never felt like Apple was trying to advertise to me or violate my privacy. Microsoft made it very clear that they ravenously wanted to do both to me immediately. I'll stick with Debian, thanks.
MacOS always required extra setup with Karabiner and other tools to mostly accomplish the same thing.
The BSD derived base in MacOS made a great developer OS but the windowing system often felt lacking.
If you feel that extra setup is acceptable then any almost modern OS will fit your needs. There's something to be said for standardized shortcuts that work on every MS Windows instance.
Windows + Linux VM has been a better platform for a long time, even before WSL!
Microsoft recognized this and wanted to boost this workflow by providing it themselves.
But the piece missing is still first class support for X (or Wayland) Linux applications. Without GUI Emacs, for example, or some way of integrating the Windows Emacs well, I find the WSL experience not as productive as booting into my actual Linux partition. But it's like... 90% there.
One thing I really like is that the Windows version of CLion will use SSH to connect into your WSL installation and use the Linux toolchain. So you can develop both Linux and Windows applications using the CLion GUI IDE on Windows, it's quite seamless.
Tramp[1] does this for Emacs. You can run Windows GUI Emacs and use SSH or another protocol to edit files and run commands within the WSL installation. It's pretty seamless.
[1] https://www.gnu.org/software/emacs/manual/html_node/tramp/in...
This isn't an issue for most code within Emacs itself, but it pops up occasionally when using packages from ELPA or MELPA.
[1] https://www.gnu.org/software/emacs/manual/html_mono/elisp.ht...
[2] https://www.gnu.org/software/emacs/manual/html_mono/elisp.ht...
to comply with company policy that only supports windows on desktops.
Others prefer the Windows desktop, in particular for multi-screen.
It's why so many of us try to get the best of both worlds. Dual booting with mainstream OS and linux, or ssh'ing from a mainstream OS to a machine on linux, using OSX + unix terminal, or windows + unix terminal, both options together always seems better than either option alone.
Kinda like how you could do anything in C++ that you can in Python, and vice versa. But the ecosystem is often what determines the best choice. Sticking with one and only one limits you.
WSL1 replaced the init process. For Ubuntu, at least, snaps were not enabled, at least out of the box. There were occasional issues early on where the syscall translation was not perfect. For me, at least, these were all ironed out after a few revisions. Unsure if there were still edges I didn't hit.
WSL2 takes advantage of virtualization technology, so should be an even better Linux experience.
- Ubuntu (18.04 and 20.04)
- Kali
- Debian
- Fedora (remix for WSL)
- openSUSE-Leap-15
- SUSE Linux Enterprise
- Alpine
- Pengwin (Debian-based and apparently optimized for WSL, and an enterprise version)
- Centos (7 and 8.1)
-
How does it handle case-sensitivity?
Source: I have Arch and Ubuntu on WSL1.
Those didn't change. Other things did.
But I'm intrigued, what did change?
That just wasn't going to happen.
My (casual, not work) use relies heavily on Nix, which is built around a centralized SQLite file. I did not enjoy that experience.
WSL2 has been great so far (I’ve been using it for a few months now with no serious issues).
Linux isn't certified, and none of developers using that seem to mind. If Microsoft got WSL "certified", would any Linux user consider it a better Linux than Linux?
The point is how many people care about running Linux in a VM (which is all WSL2 is) on Windows instead of running a native Unix operating system? Out of those that do care about running Linux, what is the practical difference between running Linux in a VM on Windows and Linux on a VM on Macs?
Part (not all) of the Mac resurgence was that you needed a Mac to develop iPhone apps.
Part (not all) of the new Windows resurgence is that if you even really want to play around with ML or VR dev you need a Windows machine.
I feel like it's about the possibilities - with WSL, Windows Terminal I get what's essentially the mac experience but can suddenly do so much more.
No matter how good WSL is, if you want to develop iOS apps, you still have to buy a Mac.
There are around 200 million consumer PCs sold a year. Do you really think any significant number or sold to develop VR apps - that market is minis use.
https://www.theverge.com/2020/5/1/21244468/steam-mac-support...
Coupled with a history of GPU driver support usually being best on Windows and having good GPU support is usually pretty important for VR, its pretty clear why Windows is probably the best platform for VR development at the moment.
https://www.engadget.com/half-life-alyx-adds-1-million-vr-us...
Do you mean machine learning? If so, then that doesn't match my experience at all.