About 6 years ago I gave up on Apple laptops and switched to Linux full time. When I'm at home, I prefer to work on a well-equipped desktop with a large monitor and one of my beloved Kinesis Advantage keyboards. But I am on the road a lot for work and so I need to do a lot of hacking on the go.
My initial reasons for giving up on OS X / macOS were due to my frustrations around developer tooling and package management, problems now largely solved by Homebrew. I got tired of being able to easily do certain kind of development on Linux and then struggle to get all the required pieces set up in the same way on OS X. Then, as soon as Homebrew began to resolve all that, Apple decided to ruin its laptops through the introduction of the awful and annoyingly-loud butterfly keyboard and touchbar.
I've used a variety of Linux laptops over the last 6 years and wanted to share a bit of my experience to help others who are considering being Linux-only, or maybe are looking to buy their next Linux laptop. These laptops include:
- Lenovo Thinkpad X230
- Lenovo Thinkpad X250
- Dell Precision 5510 (2016 era) with Ubuntu 14.04 certified pre-install
- Dell XPS 13 2-in-1 (2017 era)
- Dell XPS 15 (2017 era)
- Lenovo Thinkpad X1 Carbon (6th generation)
- Lenovo Thinkpad P1 15.6" (2018 era)
- Precision 5540 (2019 era) with Ubuntu 18.04 certified pre-install
I just spent the better part of this past year year struggling with the Thinkpad P1, Lenovo's latest effort to compete with Dell's XPS 15 and Precision 5500 line. I had had a Precision 5510 in the past, which had been my favorite laptop of all time, except for some small issues that led me to explore Lenovo's latest.
I was talking with the Dell folks recently about my experiences with (and general fussiness regarding) Linux laptops and they offered to send me a new Precision 5540 to give them constructive feedback. After a few days with the new machine, it was obvious that it was the machine for me and I shut down my Thinkpad P1 for good.
The rest of this post will be comparing the P1 and 5540 to hopefully help other developers make a decision about which one to get.
High level view
On paper, the Lenovo P1 and Dell 5540 spec-wise are very similar:
- Similar 15.6" compact form-factor, weighing in at about 4 pounds. The 55xx is slightly smaller while both laptops have the same general shape.
- Crisp IPS screens. I buy the 1080p variants so I get the best battery life possible for long-haul flights.
- Latest high-end Intel Xeon or i9 processors, now 8 physical cores
- Both embedded Intel and discrete NVIDIA GPUs, to get better battery life when I don't need to test any CUDA stuff
- Large 80-100wH batteries
- Up to 64 GB of RAM
Since I do a lot of C++ compilation for Apache Arrow development, having a beefy laptop on-the-go is essential to my productivity. Thus, I prefer the balance that these machines strike between portability and power.
One downside of these laptops is the 130W power brick which sucks too much amperage to work on airplanes. Dell sells a "Power Companion" portable battery which can give you a few more hours of runtime.
Ultimately, there are a few dimensions that set the machines apart:
- Linux support
- Keyboard and Trackpad ergonomics
- Overall battery life
- Noise and heat management
Some of these (like the keyboard) are a matter of taste, but Dell's machine wins in pretty much all of these categories for me.
Dell ships a pre-installed a customized Ubuntu LTS release (currently 18.04) with everything working pretty much perfectly out of the box. I presume they've done various tweaking of power management settings and CPU throttling to maximize battery life as well (more on this below).
On the Lenovo, I had to install Linux myself, but I found that the pop! OS distribution from System76 worked pretty much out of the box and even dealt with gnarliness around the dual-GPU situation.
So I would say Linux-wise things are similar here. The downside of the Dell solution is that if you install a different distribution, things may not work as well or may yield worse battery life. I'm too scared to try, and Ubuntu 18.04 works well enough anyway.
I had a Precision 5510 from 2016 for over 3 years and being stuck on Ubuntu 14.04 eventually became a problem when Canonicial stopped providing package updates. I tried installing stock Ubuntu from ubuntu.com and found that a number of things didn't work right. This was important stuff like Suspend; I'd pull my laptop out of my backpack and find that it had died on me despite having a half full battery when I put it in the bag.
I hope to see Dell offer (if they are not planning to already) an upgrade path to Ubuntu 20.04 LTS but can understand that supporting different hardware editions on multiple Linux distributions can be a lot of work.
Keyboards and Trackpad
Now having had several Lenovo laptops, I think the keyboard quality has gone downhill. Maybe they strived to have a "meaty" keypress with much longer key travel to distinguish themselves further from Apple's nearly zero-travel butterfly keyboards. The result for me is that I don't feel very "fluent" on a Lenovo keyboard and the stiff keys with long-key travel were causing me so much hand fatigue that I stopped bothering trying to write lots of code on the road.
The Dell Precision keyboard on the other hand I find much more pleasurable to work on. The keys are responsive with medium travel, and I don't feel as much fatigue in long coding sessions. The feel is probably most similar to Apple's keyboards from the 2012 to 2015 era, before they ruined things with Jony Ive's thinness obsession.
Since I try to avoid excess mousing, trackpads are less important to me, but I found the Lenovo trackpad so bad that I always carried an external Bluetooth mouse with me. Dell's trackpads are acceptable, not as good as Apple's but good enough.
Battery Life and Power Management
Power management I think is where Dell's OEM Linux really shines. I'm getting something like 10-14 hours of battery life with the Precision 5540 with the WiFi turned off and without doing a lot of code compilation. This is about twice as good as the battery life I was getting on the Precision 5510 when it was brand-new, so Dell has evidently taken Linux power tweaking seriously.
The Lenovo battery life was a mixed bag. There are some times that I would get upwards 8 hours out of a single charge, but normally it was closer to 6.
On the thermal management and noise side, I've found that Dell's laptop stays pretty quiet even during 100% load over a multi-minute period (such as doing a comprehensive build and test for Apache Arrow). Lenovo's laptop on the other hand was a mess. When compiling, it would turn on a fairly loud fan and get rather hot in my lap to the point of being uncomfortable.
Dell XPS 15 vs Precision 55xx line
When I've told people about the Precision 55xx line of laptops, I'm often asked "Isn't a Precision 55xx just a rebranded XPS 15 that costs more?". Cosmetically, the machines look almost identical.
Having compared the two lines side-by-side, it seems clear to me that the Precision laptop has a higher quality keyboard, and probably some of the other internal components are higher quality also. I find the XPS 15 keyboards "gummy" and unpleasant. Maybe I got a lemon in the past, who knows.
If you are a software developer and considering buying any of these laptops, if you can afford it I'd highly recommend the fully loaded Precision 5540. After a couple of weeks of use, I'm ready to call it the best development laptop I've ever owned.
As a final nice thing which I haven't mentioned until now, with the latest iteration of Dell's 15-inch laptops, they fixed the front-facing webcam position to address the infamous "up the nose" shot from the XPS and Precision line over the last few years.
Big thanks to the Dell Linux laptop group for sending me a demo unit to evaluate their latest offering. I'll be writing a lot of open source software on this machine over the next couple of years!