Trying Windows

Time for me to get a new Laptop and for the last couple of months I have been delaying on the purchase.

I’ve been a Mac user for the last 12 years and used Linux before that. The last time I actively used a Windows PC was around the year 1999. So a switch to windows would be difficult and take time to learn how it works.

After getting overly confused by the options with PC manufacturers I eventually decided to take a risk on trying Windows and purchased an Open-box discount item from BestBuy. It was actually 50% the cost of a comparable Mac. The Dell XPS 13″ is at the high end of laptops, it’s made with aluminium and carbon fibre, and feels light yet solid.

Right off the bat though it has a power issue. Perhaps the reason why it was returned. It’s something I’ll be able to deal with for a while.

Windows though is a conundrum. It’s a steeper learning curve than I expected.

There’s WAY too many disruptions and noise. I’m not sure how, but facebook notifications got integrated at the OS level and everything from slack and email to security updates, and dell updates are visually disturbing. The windows menu boggles my mind with the rotating squares tempting me to play video games. It’ll take some time to find out how to tone down all these productivity killing distractions.

Installing software is far more confusing than I remembered. Perhaps I’ve been spoiled by how easy it is on Mac and Linux, Mac is usually drag and drop into the Applications folder, and most development specific command line tools are a simple homebrew command away. Linux puts 99% of available software in the same place and easily installable. Installing MySQL on Windows was absolutely confusing – search the internet for a download link, a complex installation wizard that prompts for choosing between options I never knew existed, there were some random errors with sub-packages that failed to install. Trying to find other software to install often had me downloading files from sketchy websites. On Mac you don’t even have to look for it: `brew install mysql` and it’s up and running. On Linux is similarly easy: `apt-get install mysql-server`.

I miss sudo. Opening a separate command prompt with admin rights to do admin things is annoying and a security problem. I’m tempted to work with an admin prompt all the time just in case I need to do something that requires it, but that means anything I run that was compromised would have admin access as well. Temporarily raising access rights only on the commands that need it – and asking for your password to do so – is much much better model.

Thankfully, I found Chocolately, a package management system for windows. Other than still being tied to an administrator command line, it is actually quite impressive. The wide library of packages they have indexed will basically install any windows software available.

Windows is not great at playing along in my mixed environment at home. I have Macs, Linux and FreeBSD running on different computers. Windows introduces a new lowest common denominator for some things. It didn’t support the file server shares I had, so required adding a new service, it couldn’t read the portable hard drive and required work arounds for copying files. I hope the new direction Microsoft is taking eventually expands on support of non-windows technology.

I installed the Windows Subsystem for Linux and then installed Ubuntu. It’s great to be able to run all my familiar tools: bash, zsh, grep, ssh etc. And for the most part those simple things work as expected. It is possible to run MySQL through Ubuntu on windows as well, but there’s a gotcha. It’s not running all the operating services you’d get with a real installation. So you need to start services from the shell. Also I’ve found a bunch of software that gets confused by the OS description and fails to install.

The learning curve is bigger than I thought. I’m still adjusting and learning. Windows is better than it used to be, but so far I’m finding lots of things that are confusing.