Monday, June 16, 2008

If Developers Love Speed, Why Is a Slow Laptop More Popular than a Fast Desktop?

When I was in college, there was an anthropology meme about how childbirth became riskier when the human pelvis adjusted for walking upright. So the ability to walk and run -- or the brain developments that caused humans to deal with problems by walking and running instead of some other way -- must have offered some massive evolutionary advantage that outweighed increased risk to mother and offspring in childbirth.

I'm not sure where this belief stands now -- whether it's established dogma or the anthro equivalent of an urban legend -- but there seems to be a funky analogy among developers and their dev machines.

I'm amazed by how many devs want to be mobile so bad that they use a laptop as a principal (or only!) development machine. I'm more amazed when these same people then get into a silly debate about "the best tools for the job," whether that's an OS debate, or IDEs, or something else.

Because, like walking upright in the story, a laptop offers mobility at a very heavy price.

I work machines pretty hard -- running server software, virtual machines, development environments / debuggers, lots of browsers, random other tools, some of which even use CPU cycles and not just memory. I appreciate the productivity and uninterrupted "flow" that a really fast machine offers.

Laptop performance is awful compared to desktop machines, and with every passing month a laptop (due to its limited ability for upgrade) falls farther and farther behind its well-maintained desktop counterpart. And a plain ol' $100 motherboard and $250 processor in a desktop will do things that make most laptops implode into a singularity, whether it's the 1333 MHz FSB, the 3+ GHz quad-core CPU, or a graphics card whose cooling pipe alone can't fit inside a laptop.

Even the top end, like the fastest Alienware gear, has some fundamental limitations that sound like desktops from a few years back: 2.8 GHz CPU / 800 FSB / 667 Memory ... and a price tag (with the best options) near $5,000!

It's not an OS thing either: the hyper-popular MacBook Pro, while one of the fastest "conventional/mass-availability/non-gaming" laptops, is a complete lightweight compared to the base 8-core Mac Pro tower (that runs the same $2,800 as a the top-end MacBook Pro).

Don't even get me started on the garbage laptops that most companies give their employees, machines which are optimized for durability, enterprise management, and running Office. Sporting things like 4200 rpm hard drives.

And for the occasional but real necessity of mobility, a $250 cheeseball laptop does a fine job for giving presentations, working with Office, and even a quick hack here or there, so it's not as though there's a huge sunk cost just in being able to bring a slide deck to a client.

Yet ... the ability to move around instead of sitting in one place offers -- or at least appears to offer -- some kind of power that compensates for all of these issues.

Can anyone clue me in on exactly what it is?


Jamie said...

At least for me, I always wanted a laptop but they were too slow to use for any heavy duty application until a few years ago, around the time when 1-1.5 GHz single core CPUs became available.

Today, though, there is little advantage to a desktop system other than cost savings, assuming we're talking about a a $2500 laptop. If I only had a $500 budget I would buy a desktop instead. Also my needs are common but not universal; my dual core CPU is at least 50% idle most of the time, and I have no use at all for a quad core workstation.

Rational benefits of a portable developer workstation:
1) one per seat license instead of many
2) avoiding the pain of configuring every little thing over and over again
3) avoiding the difficulty of making roaming profiles / cloud computing actually work
4) always having access to a workstation that you control fully, instead of one dumbed down by corporate IT to save computer illiterate empoloyees from
5) having a reasonably good hardware configuration on hand instead of the old and underpowered hardware that employers provide

Some of these are hindered in larger companies, which prohibit employees from connecting their personal equipment to the corporate network, but a wireless card and a laptop offer a pretty appealing way to get around that without actually violating corporate security policy.

Cody said...

1) If your work supports telecommuting, which is one of the benefits of being a programmer, then they either need to buy you two desktops or one laptop. Hmmm... which would they choose?

2) Or, they may at least want to send you to a developer conference, a class or two to keep your skills relevant, etc. And if they provide you a laptop, you can put out fires and keep in touch during lunch.

3) If you work from home all the time, and only work from home, you must really like your home. Personally, I've got two needy dogs, a wife that works part time, and questionable air conditioning. Laptops get me out of the house.

4) The performance benefits aren't really as monumental as your post suggests. A desktop is faster, but not "loss of mobility" faster. Laptops cost more, sure. But it's the company's dime.

5) Lastly, and perhaps most importantly, unless you're content being a programmer for the rest of your career, at some point you'll have to break the tether. The minute you're promoted, is the same minute your desk becomes irrelevant.

Just my opinion though. I broke the desktop trend about 6 years ago, and haven't looked back with regret once.

Anonymous said...

I would prefer to have a desktop and a laptop or tablet. Best of both worlds. Unfortunately, our company is too cheap to support having more than 1 machine per person and you can't use personal hardware on our network. So if you want any kind of mobility for meetings, telecommuting, etc - laptop it is. One Note's audio recording of meetings has improved productivity enough from a 'no - you really said this, not that' point of view that it outweighs the other ways that a laptop is slower.