No matter which side you are in the Windows vs Mac debate, its hard to ignore the fact that Macbooks have limitations. From a small user base to limited applications to the higher price point, there are obstacles which do not allow Macbooks to be as widely accepted as a machine running Windows. Though in some cases – such as digital content creation, Macbooks tend to be preferred, coding specifically is a domain that’s fiercely debated. On one hand, I have come across dozens of vocal Macbook supporters while on the other, Windows is clearly the preferred choice when seen by the sheer number of coders on the platform. Therefore, we’ve decided to delve into the hot topic of discussion – not to find out which one is better – but to see how good a Macbook is for a programmer. Hopefully this article will help those readers who are in a quandary between choosing a Macbook as the primary coding machine. Hardware First, let’s discuss hardware. Though not extremely crucial for development, you simply cannot code efficiently on a machine that cannot keep up with you. A programmer may not need a beast of a machine, but one needs to have a machine which has decent raw power. On a hardware comparison, even the most basic Macbook is clearly not a slouch when it comes to performance. On the most expensive side of the Macbook range, the hardware just keeps getting better and better. Many individuals who work on a Mac on a daily basis will also tell you how good a Retina display is. Barring the better colour reproduction and sharp display, most people will also tell you that your eyes won’t hurt after a long day of staring at the screen. On the flip side though, this hardware also comes at a much steeper price. While a Macbook might be mighty powerful under the hood, it is also mighty high on the price point. In the most common reason to refute a Macbook, Windows machine pride themselves in being able to offer the same raw power in a much more affordable price range. Granted, the Macbook range has a design to die for, but it was only a matter of time before other companies in the fray managed to develop laptops that could go head to head in the design department if not better than the Macbook. Development Environment Its needless to say it, but if you’re developing Windows apps, Mac obviously isn’t your best option. With the level of support that Microsoft’s OS has for software development for its own platform, one would be best served for developing Windows apps on a Windows machine. That being said, MacOS does have a native UNIX environment – which is what a majority of web servers use as well. In simpler terms, if the server you will eventually use runs UNIX or Linux, it makes sense to consider developing on a machine that runs on the same environment.  In simpler terms, it means that the applications you develop on a Macbook will run on the machine in the exact same way as they will on the actual server once deployed. Web applications developed using PHP, Ruby on Rails, or Node.js will work exactly as they would on the production server as will MySQL and Postgres. Tools The Macbook also has access to the 3 major internet browsers which means testing those aforementioned web apps on these browsers will not be an issue.  As a plus point, the Web Inspector of Apple’s native browser Safari can easily connect to an iOS simulator thus allowing you the benefit of testing these apps on tan iPhone and iPad like interface. For an iOS developer, this is an invaluable plus point. In respect to other development tools, Macbooks play host to a number of text editors including TextMate, BBEdit, SublimeText, Atom, SubEthaEdit (with Google Docs-like live collaboration features). The Macbook range also has access to specialized developer tools like source control GUIs (Cornerstone and Versions for SVN, Tower and SourceTree for git), file comparison and merge tools (Kaleidoscope), GUI design helpers (xScope), quick-lookup documentation viewers (Dash), and file transfer tools (Transmit). In addition to these if you end up requiring access to a different development environment, there always are Virtual environments to be utilized like  VMware Fusion and Parallels Desktop. In conclusion, there are several tools available to make Macbook a serious coding machine. For developers switching from a Windows environment, if you find some resources missing, you will also find plenty of alternatives. While the high cost of entry is a major obstacle keeping Macs out of reach for students and younger developers , if you are an experienced developer or can afford a Macbook without much investment in the Windows platform, you should consider making a Macbook your next coding device.