I'm always amazed how organizations equip their newest employees with the wrong electronics. Instead of expensive, high-powered laptops, give new development staff members a desktop accompanied by an affordable laptop for when they need to be mobile.
There are many reasons why a developer desktop setup is better than one on a laptop. A developer desktop makes more sense in terms of:
- price and speed;
- premium component integration;
- upgrades and repairs;
- computer ergonomics;
- resource capabilities; and
- security and theft protection.
1. Cost and performance
Laptops minimize power consumption and enhance battery life because they're typically built with low-energy processors that have a significantly reduced processing capacity compared to desktop computers. Furthermore, laptops require more engineering on their processors to fit into a small mobile computing device. The result of this extra work is a higher price tag.
Compare the similarly priced Intel i7-9700K desktop processor and the i7-9850H mobile processor offerings from Intel. In benchmarks, the desktop performs 23% faster. That's a significant difference.
In the value and speed categories, a developer desktop wins over a laptop.
2. A premium developer desktop setup
A modern laptop requires several significant compromises to keep costs low and the computer vendor's ability to produce units high.
For example, Apple has shaved keyboard height and reduced key travel to a point where some users complain that these designs are unusable -- just to keep its laptops thin. Viewing angles on laptop screens are significantly smaller than even a low-cost monitor. And while some laptops come equipped with a TrackPoint, mouse functions on a touchpad reduce productivity as compared to the use of a mouse.
A developer desktop setup can include multiple high-quality monitors, a mechanical keyboard, gaming mouse and a high-fidelity speaker system that leaves any laptop user green with envy. This configuration can happen all under the budget of a high-priced laptop.
3. Upgrades and fixes
One of the nice things about a desktop computer is that it is easily repaired and upgraded.
Many laptop processors are welded to the motherboard, which prevents technicians from working on them. On the other hand, upgrading a developer desktop from a 4 CPU Ryzen processor to one three times faster and with four times more CPUs only requires the tech to swap the old one component out for the new one. The whole process shouldn't take more than an hour to complete, and the upgrade is both significant and cheap.
Similarly, memory replacements and video card changes are easy in a developer desktop setup, as long as the developer has a modicum of technical acumen or a technician through the company.
Similar operations performed on a laptop aren't recommended -- often aren't possible -- and should only be done by a technical expert.
4. Improved ergonomics
Laptop ergonomics simply aren't good. The keyboards are typically only a subset of the keys you would find on a full-size one. Furthermore, most laptop keyboards require uncomfortable wrist twisting that might lead to carpal tunnel syndrome.
The laptop monitor placement doesn't work well either. The monitor is connected to the keyboard and leaves the user's head tilted forward to look at the screen. This setup can lead to unnecessary back and neck strains.
On a developer desktop, ergonomic keypads and the ability to tilt, space out and otherwise rearrange multiple monitors as part of the overall setup greatly improve ergonomics. Ergonomics might not directly mean better code, but a more comfortable developer is productive in the short term and healthy over the long term.
5. Multiple configurations
Good luck turning a business laptop into a gaming machine. And good luck finding an affordably priced laptop that can handle multiple hard drives, a setup required for multimedia editing projects, work that uses large data sets or use cases that require a mirrored hard drive.
Desktop computers, especially those with oversized cases, can be easily configured in multiple ways. A developer or support technician can add multiple video cards for gaming or multiple hard drives to increase storage capacity.
With a desktop computer, adding a RAID only requires more hard drives. A laptop won't even allow the user to configure a RAID. Similarly, if you decide you want to do a little gaming, it's easy to add a second video card and a third or fourth monitor. It's easy to configure a developer desktop setup in multiple ways.
6. Physical security
Laptops get stolen and left on public transit. That's a big problem if your laptop contains sensitive corporate data or includes personally identifiable client information. Laptops make important information portable, which isn't necessarily a good thing.
A desktop computer will never be forgotten on the streetcar. And desktops aren't nearly as desirable to pilfering thieves as laptops. Data stored on the drives of a desktop are far less likely to fall into the wrong hands.
With that said, widely available tools like VeraCrypt and BitLocker mean there's no excuse to not encrypt your hard drive to make that data completely inaccessible on a developer computer in any form factor.
The developer desktop setup is the best
My view of the best configuration for developers is a high-powered desktop combined with a low-cost laptop. The laptop can be used for any mobile tasks such as a PowerPoint presentation or a working lunch, while all the daily tasks and development efforts can take place on a high-powered and tailored-to-the-developer desktop setup. And it's all for less than the cost of a high-quality business laptop.
When work requires a developer to be away, there's remote access software that allows you to control the desktop virtually and provides the benefits of both a mobile laptop and a powerful desktop.
When a company onboards new developers, it should turn to a desktop accompanied by a low-cost laptop. It's not only a cheaper proposition, but it will create happier and healthier employees.