I have spent the last 15+ years going back and forth between laptops and desktop machines for work and development. My first laptop was in 1991, a PowerBook 100. It was so drastically underpowered (and had a pretty ugly passive matrix screen, a smaller keyboard, and only 8 Mb of RAM) that I gave it up in under 6 months. Fast forward to 2007 and it seems like the same issues exist when choosing to use a laptop or desktop – screen size/quality, keyboard/mouse, and storage. Since I’ve just gone from using a pretty beefy laptop full time to using a well-equipped desktop full time, I thought I’d share just a few insights on pros and cons of both.
The obvious points: (1) Desktops can have much more power and storage than laptops. Price aside, my new desktop is a quad-core 64-bit processor with 3Gb of RAM (expandable to 8Gb) with 640Gb of SATA RAID 1 storage for (<$800). I don’t know that a similarly equipped laptop is even possible, affordable, or if it would have any battery life (or burn up if used for a while). With so much development happening on virtual machines (VPCs) nowadays (for many reasons) it is nice to be able to have the hard drive space (on separate physical drives), available memory, and ability to dedicate a core of your CPU to an individual VPC. With 2Gb of memory being a minimum development environment (4Gb being ideal – especially in a 32 bit environment) being able to (cheaply) add RAM is key. Also if you run a local development database, having a separate drive/core for it is nice as well.
(2) You can’t easily present with a desktop. Whether it is an internal “lunch-n-learn”, client demo, or user group meeting – if you ever meet with and talk to people, having a desktop is like hauling an anchor around. It also goes without saying that if you work away from your desk for an extended period of time, and have to bring your own hardware, then a laptop is a requirement.
(3) Multiple monitors – I can’t say enough about this – using 2+ monitors for development is a huge increase in productivity and reduction in distraction/frustration. Being able to have one screen for reading documentation, research, e-mail and one as a “work surface” is almost a requirement for development today. Having the user interface on one screen and the event code or markup on the other screen is very helpful (wish Visual Studio handled multiple screens better). Both desktops and laptops can have multiple screens, though the coveted 3-screen setup is just “a card away” on a desktop. Plus with a desktop you can put your monitor where it “should be” which is at about eye-level while sitting – hard to do that with a laptop and keep typing.
Less obvious points: (4) Keyboard. I love my ergonomic keyboard, and can type more accurately and for longer periods of time with it. Laptop keyboards tend to be smaller and flat (so they can fold down). You can add a keyboard to a laptop but it is awkward. Plus with a desktop you can put the keyboard on the little keyboard shelf on many desks which puts it at a better level ergonomically (arms lower – near right angle).
(5) Pair programming and support/debugging – it is nice to be able to take your entire laptop to someone who you are working with or who will help you with a problem. It is a more natural way to work. Desktop machines are anchored, by design. Sure you can do a remote takeover of your machine, or walk over to another person’s desk to see their issue, but it is less convenient.
(6) Taking work home with you – this is a toughie. For me, I think I would rather come in early or stay late and work on a desktop than have the “opportunity” to easily take a laptop home with me and try to get it done there. I’d still argue that you can be more efficient/productive on a desktop (with a higher-performing machine with more screen “real estate” in a more ergonomic setup) and maybe be able to avoid not getting work done in the first place. But to be able to physically and mentally “leave work” at the end of the day is actually very healthy – even if this means longer hours at the office when needed.
Well, that’s my $.02 on the topic (refunds available if you include a self-addressed stamped envelope).