TL;DR
I loved my M2 MacBook Air, and I hit no performance walls for my typical .NET/DevOps/SQL Server workloads. The only real pain point was the 512 GB SSD filling up. I splurged on the M4 MacBook Pro (48 GB RAM, 1 TB SSD), and—after a few weeks—I’ve realized the extra performance and ports don’t justify the premium for my day-to-day needs. If you’re a typical knowledge worker, an M4 MacBook Air (16–24 GB RAM, 512 GB–1 TB SSD) will almost always be the sweet spot.

The M2 Air Was Already a Beast

For the last 12 months, I’ve been on an M2 MacBook Air (24 GB RAM, 512 GB SSD). Between Visual Studio 2022 for Mac + .NET 8, running SQL Server in Parallels with an 8 GB VM, 20 + Chrome tabs, Slack, Teams, and occasional Docker container builds, the Air never broke a sweat. Battery life hovered around 10 hrs on a typical workday (3 hrs of Teams calls + coding + email + browsing).

Yet I began bumping into that 512 GB limit so often that I was constantly archiving old VM images and moving files to an external drive. Combine that frustration with binging M4 Pro benchmark videos on YouTube, and I started feeling serious FOMO. Ultimately, I decided to upgrade.

What I Bought: M4 MacBook Pro (48 GB RAM, 1 TB SSD)

Rather than the base M4 Pro configuration, I went “middle of the road” for longevity and performance headroom:

  • Processor: Apple M4 Pro (10-core CPU, 16-core GPU)
  • Memory: 48 GB unified RAM
  • Storage: 1 TB NVMe SSD (instead of the base 512 GB)
  • Display: 16″ Liquid Retina XDR (3024 × 1964, mini-LED)
  • Ports: 3× Thunderbolt 4 (USB-C), HDMI 2.1, SDXC, MagSafe 3

Why these specs?

  • My M2 Air (24 GB RAM) regularly spiked to 85 % RAM when I ran Visual Studio, Azure Data Studio, Parallels (Windows 11 VM with SQL Server), Docker Desktop with a few Linux containers, and 20+ Chrome tabs.
  • Never once did it crash or feel unresponsive, but I wanted headroom to spin up multiple VMs/containers without worrying about paging.
  • I also upgraded the SSD to 1 TB because migrating files every month was a chore.
  • Finally, I wanted more ports for a docking-station-style setup (Ethernet dongle, USB-A, HDMI to a 4K monitor, plus my usual MagSafe charger). The dedicated HDMI port in particular for me was a must.

Migrating from the M2 Air to the M4 Pro

This was my first time moving from one MacBook to another. Since I didn’t have a recent Time Machine backup, I used the Migration Assistant over a Thunderbolt 5 cable:

  • What went flawlessly:
    • All of my .NET SDKs, Visual Studio settings, SQL Server instances (in Parallels), Docker images, and custom shell configurations transferred without issue.
    • My Parallels VMs came over, and Parallels Desktop automatically reactivated them—except for the license check.
  • Licensing hiccups:
    • Parallels Desktop required me to log into the Parallels web portal and deactivate the old machine before activating the new one. That took ~3 mins.
    • Monarch Launcher didn’t transfer its license file. I messaged the developer on Discord, and he unlocked my license in minutes. In future, he’s planning a web-based license management portal, which should make this step painless.

Overall, Migration Assistant was shockingly smooth—far easier than manually copying settings or reinstalling apps one-by-one.

My Day To Day using the M4 MacBook Pro

Everyday .NET & Productivity Tasks

  • Rider: Builds and IntelliSense Autocomplete are marginally faster on the M4 Pro, but in practice a full rebuild of my .NET solution went from 45 sec (M2 Air) to 33 sec (M4 Pro). That 12 sec improvement is nice, but not life-changing.
  • Parallels + SQL Server: On the M4 Pro, I gave my Windows 11 VM 16 GB RAM and 4 vCPUs. In practice, Parallels runs Windows apps at near-native speed. The M2 Air could only spare 8 GB to the VM (and occasionally I saw paging). The Pro has the headroom to run heavier Windows tasks or multiple VMs at once.
  • Browser & Tabs: I routinely have 30+ Chrome/Edge tabs open. The M2 Air could handle this fine, but I occasionally noticed slight delay when switching tabs. That’s gone now.
  • It's worth mentioning that I never once heard the fans spinning up in the Macbook Pro - you wouldn't even know they were there for normal daily use.

Bottom line: For standard dev workflows (IDE + VM + browser + Teams/Slack), you won’t feel a dramatic difference between an M2 Air with 24 GB RAM and an M4 Pro with 48 GB—because the Air was already more than enough and MacOS handled it really well.

Would I Do It Again? Probably Not.

After a couple of weeks, here’s my verdict: The M4 Pro is unquestionably more powerful—especially if you do on-device ML, heavy GPU-accelerated tasks, or intense, parallelized builds. But for my particular mix of:

  • Rider/.NET development + Docker builds
  • Parallels (Windows 11 + SQL Server)
  • 30+ Chrome/Edge tabs + Teams calls
  • Occasional Lightroom/Photoshop
  • Light gaming on Steam

…my M2 Air was already more than adequate. Paying the premium for:

  • An extra 24 GB of RAM (total 48 GB)
  • A beefier GPU (16 vs. 8 cores)
  • More ports (3× TB4 + HDMI + SD vs. 2× TB4)
  • A slightly larger display

…didn’t unlock any meaningful productivity gains. In fact, I miss the weight of the Air. It's nice to have a laptop that'll last for another few years but the Pro features outside of the dedicated HDMI port wouldn't be enough to keep me using a Pro as my next machine I reckon.

Summary

What's been interesting for me through all of this is that its clear to me now how amazing the M2 chip was for my typical work day. As I write this, the new MacBook Air M4 has not been released. Short of Apple seriously dropping the ball on it (which I doubt very much) then that device will be the one to get and use for the vast majority of people out there.

So what about you? Did you do something similar recently? Did you regret making the jump from an Air to a Pro? Let me know in the comments.