As a software developer I am always looking for the best tools, both software and hardware to help me do my job more efficiently and more enjoyable. The main tool for software development is the computer itself, and every developer chooses a computer based on the software they are developing, or as it is the case for many unfortunate developers, they simply use whatever hardware is given to them by their employer.
For many, software development has to be done in a powerful desktop machine, and that might be true if what you are developing requires it. However, if you are a software developer building web apps or phone apps then you don’t really need that much hardware power. After many years of developing software for Windows, iOS and the Web, I can’t find a reason a laptop isn’t better than a desktop machine. A laptop these days gives you more than enough power to run the most demanding IDE applications such as Visual Studio, Aptana, etc… and today’s laptops can even run a database server and virtual machines.
Laptops also give you the ability to write or review code on the go, and who doesn’t like to write software while in the train or airplane… I do. For those in need of more power than what a laptop can offer, there is always the option to have a powerful machine host your code and other applications you might need and then just use a laptop to connect to the desktop machine remotely and do all the coding you need in your laptop, from anywhere. This actually works very well, for example I have a Windows machine at my home office that serves as the main software repository and it is also the building machine. If I need to connect to it I just use Remote Desktop to connect to it from my MacBook.
Selecting the right laptop usually comes down to price and just personal preference. I have posted and seen many posts with titles like “the best laptop for software development”, etc in sites like StackOverflow, and many others… Many of the answers are detailed about why a laptop is better than the other, which one is lighter, faster, less noisy, best one to type, etc… The biggest disagreement seems to be between people who use MacBooks and those who use Windows-based laptops.
I have owned many Windows-based laptops from Toshiba, Dell, HP and IBM, and two years ago I bought my firs MacBook because I wanted to learn and develop an iPhone application, just like everyone else. I remember doing a considerably amount of research to see if I could just use my windows laptop to develop software for the iPhone. Yes, there are ways to do this, but in the end I decided it was probably a good learning experience to not only learn about xcode but also about using OS X, and just have the whole Apple experience at my fingerprints… and you can’t deny that MacBooks just look really cool as well.
One of the main things I discovered is that I love the simplicity of MacBooks. The lack of labels, little flashing lights, lack of ports, etc is actually one of the things I like the most. Many of you will disagree with me about the following, I do prefer the Windows 7 operating system over OS X. I might be biased about my opinion because I have used Windows for a long time and I am also primarily a .NET developer, and unlike many other Windows users, I find Windows a joy to work with. Really.
One of the great benefits of MacBooks is that you don’t have to compromise, you can use both OS X and Windows 7, no problem. I’ve found VMware Fusion a great tool to do this. VMware Fusion allows you to run both operating systems in parallel, and it works very well.
When choosing a laptop for software development, you want to have something that is flexible and powerful enough to run all the software and operating systems you need. If you are a .NET developer and do some iOS development, then a MacBook is probably the laptop you need. It is easier to run Windows on a MacBook than the opposite, just try it.
Another thing to consider is the total cost of ownership and the cool factor, yes it is important as well. A recent article from CIO showed that Macs in general have a lower cost of ownership than PCs. It is something worth considering since the cost of a computer is not only the initial purchase price but the cost of upgrades, support, maintenance, software, etc… Personally, I have not spent more than $200 on my MacBook after buying it two years ago, and I could probably sell it now for a lot more than any two-year old Windows-based laptop.
In the end, if you are a developer and are looking for a new laptop, get something that fits your needs and your preferences, if you do want something tiny and fast you should definitely consider the MacBook Air. And remember, you’ll probably end up using the laptop for things other than software development, I know how much fun is to code but you should also consider getting a laptop that you’ll enjoy even when not coding, and more importantly, a laptop with a great keyboard, you’ll do a lot of typing! I also have to add that if you have no need or interest for iOS development then you can probably forget about MacBooks altogether… it is your choice.