Moving to Windows for PHP Development from macOS

Warning: This post is over a year old. The information may be out of date.

My ‘old’ laptop was a Macbook Pro from late 2013. I’ve recently bought a new laptop and will be ditching macOS for personal development and using Windows.

Why did I move?

Let’s look at the hardware of what I bought, vs what I was considering if I went the MacBook Pro route.

Here’s a list of pros and cons to each:

Recoil II:

  • CPU: i7 8750H
  • RAM: 32GB 2400MHz DDR4
  • GPU: GTX 1060 6GB
  • SSD: 1 x 500GB NVMe SSD, 1 x 500GB SATA SSD
  • Screen: 1920x1080 60Hz matte
  • Battery: 46-watt-hour
  • Price: £1,556.00

Macbook Pro:

  • CPU: i7 8750H
  • RAM: 32GB 2400MHz DDR4
  • GPU: Radeon 560X 4GB
  • SSD: 1 x 1TB NVMe SSD
  • Screen: 2880x1800 truetone display
  • Battery: 83.6-watt-hour
  • Price: £3,339.00

So, here’s the winners in each category

  • CPU: Tie
  • RAM: Tie
  • GPU: Recoil II
  • SSD: It would be Macbook Pro though based on the above, I could have configured mine with a single 1 TB NVMe SSD - so I just consider this about even.
  • Screen: Macbook Pro
  • Battery: Macbook Pro
  • Price: Recoil II

So they’re about even, but one I didn’t mention (which is important to me) is keyboard. The Recoil II has a mechanical keyboard which is a delight to type on (though it’d be bad in a conference talk if I were typing notes as it’s a bit loud)

I wish I could say the Macbook Pro keyboard was nice… but it just isn’t. It’s personal preference on that one though. Some love it, I hate it.

The big one is the price though, the Recoil II is < 50% of the cost of the Macbook Pro. When you’re paying for a laptop yourself, it’s a big deal. This isn’t a work machine that the company I work for is buying. It’s mine. I’m going to use it when travelling about, giving talks, personal development and I can do some gaming with it as well (the 1060 is a more than capable card for the 1080p screen!)

So, Windows for PHP development eh?

Before starting my current job 3 years ago I used Windows for development. This was less choice and more that I got what I was given.

I used macOS in my spare time on my personal laptop, but at work it was Windows. Currently I still feel a bit alien in Windows for development. I have a gaming PC but no dev on that really, just gaming. Over time that’ll get better, I’ve just got 4 years of macOS dev habits to undo.

For some initial setup, I found the this post from Jordi Boggiano incredibly useful.

Editor: PhpStorm

I used to use this on macOS. Nothing different here. Exported my settings and altered some keybinds (I had mine heavily customised), so now we’re good to go.

Terminal: hyper js

It’s great! I use the hyper relaxed theme, with the following plugins:

  • hyperterm-summon - to have a global keybind where I can jump to hyper and summon the window regardless of where it is and what app I’m currently in
  • hyper-relaxed - the theme I’m using

Hyper JS picture

Dev environments: Docker and WSL

Using the Windows Subsystem for Linux and having it talk to Docker on Windows means I’m more than able to run all the things I need so far locally.

For DB browsing I’m using HeidiSQL. I used to use this back in my Windows development days so it’s a nice go-to. I’m using PuTTY to handle SSH keys for connecting to remote servers (it uses plink from putty on Windows for SSH tunnelling)

Talks and presentations

I’m going to be using PowerPoint I think. I’ve looked at some online options, as well as Google Slides. I know Google Slides has an offline option but I’d rather not rely on browser based slide and presentation solutions. So back to good old PowerPoint it is!