What's the best hardware for programmers?
We’re always talking about the best software for developers, but what about the hardware? What’s a programmer’s dream system? What makes work the fastest and easiest? Sadly, money is limited, so we also have to ask: What’s the best system you can put together that stays within your budget?
Laptop or desktop?
The first question is whether to get a laptop or desktop. Developers like to telecommute, and consistently working on the same machine saves a lot of headaches. This argues for a laptop. Naturally, it should have an encrypted drive to keep trade secrets safe. It should have a huge, bright screen and a high-quality keyboard.
All this can make it expensive. It may be the best system for telecommuters, but you can get more power for the same money with a desktop system. There’s no clear answer for everybody; it depends on your work habits and the tradeoffs you’re willing to make. If you have a lot of money to spend and want to travel, the flexibility of a laptop is worth it. If you’re on a tight budget, you may need to give up portability for more essential features.
Processor and memory
Whichever kind of machine you go with, the obvious need is the fastest processing and the biggest main memory. Your system should have at least 4 gigabytes of memory, preferably 8 or more. Setting criteria for the processor is trickier. It’s like travelers to St. Ives: A computer can have multiple CPUs, a CPU can have multiple cores, and a core can have multiple threads. Most desktop and laptop computers have just one CPU, and hyper-threading gives more parallelism but more power, so cores and clock speed are the main issues. These days, you should look for at least 3 GHz and four cores.
The main reason a developer needs computing power is fast compilation and other file processing. The main reason for needing a lot of memory is to keep code loaded so it can run without delays. There’s actually a case for developing with a less speedy computer: You’ll get a better sense of how the code runs for typical users with inexpensive machines. But productivity is more important. Give the slower machines to the QA department.
We can’t say “disk storage” anymore. Solid-state drives (SSD) have become popular, especially on laptops. They’re much faster than disks, they survive drops better, and they weigh less. They’re also more expensive per gigabyte. Developers usually don’t need vast amounts of storage, though. A 256 GB drive is plenty for most purposes, and it’s not that expensive. The gain in compilation speed over a hard drive will be huge.
If you need more storage, a solid-state hybrid drive might be the best tradeoff. It’s effectively a hard drive with a large solid-state cache. It gets you most of the speed of an SSD with the capacity of a disk drive.
The biggest advantage of a desktop system is that you can pick the best monitor to go with it. Bigger is better, up to a point. Brightness, contrast, and consistency are important. When you’re reading it all day, you want to avoid eyestrain.
For a lot of development work, portrait mode is more useful than a wide screen. You can view more lines of code, spreadsheet entries, or documentation. Many high-quality monitors can work either way. You rotate the monitor on its stand and then use the operating system settings to put it into portrait mode.
What’s better than a good monitor? Two good monitors! Setting up the development environment on one screen and running the code on the other is a favorite way to work, and a development screen in portrait mode leaves more desk space for the second screen.
We don’t think much about keyboards until we get keyboard-induced typos or our arms start hurting, but getting a good one will prevent these problems. The average computer keyboard is designed for low cost above all else, and it shows.
Keyboards with mechanical keyswitches are more expensive than the usual membrane keyboards, but they give a definite sense of tactile feedback when pressing a key. This means fewer typographical errors and allows faster typing. They also last longer. Not everyone agrees, though. Some people prefer the shorter key travel of a chiclet keyboard.
A wrist rest, either as part of the keyboard or a separate piece, can reduce strain and lower the chance of RSI. Some people like split keyboards, which are supposed to let the hands work at a more natural angle, but research is still inconclusive on their health benefits.
Mice and other pointing devices
Since the start of graphic user interfaces, we’ve had mice, trackpads, and other devices to move around on the screen, and none of them have been really satisfactory. Personal taste plays an especially big part here, but the device has to let you position the cursor accurately and not cause long-term damage to your arm.
An optical mouse with two buttons and a scroll wheel is a popular choice. A trackball is worth considering as an alternative, though. It sits in one place and, if it’s well designed, fits nicely under your hand. A rest to elevate your wrist will add a lot to long-term comfort.
A recent novelty is the vertical mouse. That doesn’t mean you move it up and down the wall. To understand it, rest your dominant hand on the desk or table in front of you. Chances are you didn’t put it palm down, but at something closer to a right angle to the surface. A vertical mouse is one that you hold at that more natural angle. The buttons are on the side rather than on top. There isn’t much research yet on its benefits, but it certainly seems it could feel more natural and reduce wrist rotation.
The little things about hardware as well as the big ones can make a significant difference in ease of use, and that can translate into big gains in programmer productivity. They can make overtime less necessary, and less painful (literally) when it is necessary.
When you have development needs, we’re there to help. Contact us for a consultation with no obligation.