Three years ago, I wrote about moving off of Windows/Mac and onto Linux for personal computing and developing.
Three years later, I’ve moved back to Windows.
In that 3-year-old post, which was about habit change and work/life balance, the key features I was looking for in a developer machine were a solid terminal and easier installation/updating of software via package management. The things I use most as a developer these days are Go, a database such as PostgreSQL, docker, a terminal to interact with those things, Jenkins, a web browser, and an IDE of some sort.
In the intervening years, Windows has come a long way. With Windows Subsystem for Linux, Virtualization and top-notch docker support, Visual Studio Code and its myriad of plugins (including Go), Chocolatey, and a few other goodies, Windows has become, for me, just about as enjoyable as Linux and (gasp) probably even more enjoyable than Mac.
So why did I decide to even make this journey in the first place? Two reasons:
- a busted Linux laptop
- influencers
I was using a dual-booted Samsung Chronos laptop, running Ubuntu. Out of the blue, a few months ago, it became terribly unstable and slow. I simply could not figure it out. Maybe a disk issue? Who knows. I didn’t invest much energy into it because I’ve been shedding Samsung from my life for a few years now and this was an opportunity.
While researching replacement options, I became increasingly enamored with the Lenovo Yoga series, though it was running Windows so… boo. But then a funny thing happened. Internet-famous-to-me people like Jessie Frazelle, Brian Ketelsen, and others had moved to Microsoft to work on Windows-related tech, evangelizing Azure, Go, docker, WSL, etc. Developer friends such as Ray Camden and Sean Corfield were talking about their move back to Windows. And the more I read from them, the more I started to even consider giving Windows another shot.
I liked the hardware of the Yoga a lot, especially for the price, so I took a risk. Worst case scenario was that the Windows experience would suck and I’d just put dual-boot a Linux distro on it.
As of now, I’m really glad I’ve made the switch. In the posts that follow, I’ll discuss the various software and configurations I’m currently using as part of this journey.
Next post: Learning about WSL and Windows Automation from Jessie Frazelle
Insert GIPHY of someone hurling here 🙂
Looking forward to your posts. My few interactions with Windows 10 machines have left me either laughing or crying but never have I said “I should move back to Windows” 🙂
It’ll be fascinating to watch this series of posts unfold… I’ve been on Fast Ring Insider builds of Windows for a long time, so I’ve watched the features evolve and been very impressed with the way Microsoft manages this whole process. So different from Apple — and I’ve been an Apple user since the early 90’s, System 6.
My laptop is a Dell XPS12 and came with Windows 8 (and runs the latest Windows 10 Home now) and isn’t quite powerful enough to run my work stack in full, but using Atom/ProtoREPL on the Windows side (along with all the day-to-day “administrivia” apps) with all the Clojure-based stuff running in WSL is a nice way to work.
My desktop — my main machine — runs Windows 10 (again, latest build) in Parallels for all the day-to-day “administrivia” stuff and then I use Terminal on the Mac side for running Clojure-based stuff. That’s purely because I can’t realistically run Docker in the Windows 10 Pro VM 🙂
My next development machine will definitely be a high-power Windows 10 Pro machine so I can run Docker on the Windows side, along with my IDE, and “administrivia”, and all my dev stuff on WSL (bash/Ubuntu).
For background, I started life on Unix machines, moved to Apple (System 6), but also used Windows from 3.1 onward. So I’m familiar with Windows across the years. Windows 10 with WSL is the first serious option for (traditional) developers — and Microsoft have been innovating like crazy lately while Apple has lost the plot 🙁
Great to hear from you Sean. Thanks for all the details! I’m curious: how stable have the Insider builds been for you? Just coming back to Windows after a long time, I didn’t even know Insider builds were a thing 🙂
Speaking of Docker… so far, I’m really impressed with Docker for Windows, though I’m not doing anything badass.
I’m still in his honeymoon phase where all the things I want to do “Just work”, but I’m not really doing much in anger yet and so I have my old Windows PTSD and I’m kinda waiting for the shoe to drop. Hope that doesn’t happen for quite a while. But, as you say, it sure does seem like Microsoft is innovating quickly and investing heavily into making the developer experience on Windows a good one. FINALLY!
Not trying to be ‘that Linux guy’ but I’m curious to hear what benefits Windows brings to the table…. You mention Docker, terminal, package manager, etc – all of which I have on Linux. The only reason I keep a Windows VM around is for my occasional need to use Adobe Creative Suite.
I just bought a new computer which will ship with Windows 10 so I’ll take a bit of time to play with it before I format C:\ 🙂
Does WSL support anything other than Ubuntu? RH/Fedora?
Jim! Great to hear from you. I am glad you asked that question. When I started thinking about what I’d write about in this series, I hadn’t considered writing a “Windows… the good parts” kind of post. But the other night, after publishing a handful of these, I started thinking that it might be a good idea. Thanks for validating.
I’m not really interested in trying to prove that Windows is amazing or that people should convert from a thing they love… not at all. My case was mostly: I need a new laptop; looking around at options… Mac way too expensive and I don’t really like them anyway after having used one for 5 years; no great Linux options (Dell XPS looks rad but too small for my tastes, System76 seemed expensive), and so I figured, well, what the hell… let’s try out Windows and see if all by itself it can be a good developer machine. And, if not, I’ll dual-boot Ubuntu or something and be done with it. So for me, the driver was really more hardware than anything, and it seems that Windows has come long enough a way over the past few years that it’s a viable option. Time, for me, will tell.
As for WSL and other distros, according to the docs there are 3 currently available: Ubuntu, OpenSUSE, and SUSE Linux Enterprise Server (https://docs.microsoft.com/en-us/windows/wsl/install-win10). There are articles on the interwebs for installing Fedora. And this looks pretty rad for working with different distributions: https://github.com/RoliSoft/WSL-Distribution-Switcher
Keep posting 🙂
It is interesting to see Microsoft doing things like WSL. A few days ago I loaded MSSQL for Linux. Who would have ever guessed that would happen? 🙂
Hmmm… I know you probably didn’t mean to, but you listed Visual Studio Code as if it was a “Windows thing”.
Good point, Tony. I suppose what I mean is: Microsoft application that’s been associated with Microsoft-stack (.net, etc) development for a really, really long time
Actually if you were talking about the Visual Studio IDE, I’d agree with that statement. But VSCode, the Electron-based code editor hasn’t been around for a “really, really long time” and was initially aimed at nodejs/JavaScript devs. I’ve heard interviews with Microsoft people on the VSCode team who claim one of the main reasons they developed and open-sourced VSCode was to attract developers who worked outside of the .NET/Microsoft stack.