News & Views

Why Do Developers Use Macs Instead of PCs?

Editor's note: Thanks to a June 2019 Windows update that lets users run native Linux command-line tools directly on Windows, students may now use PCs in any of our classes. We sat down with three developers in three different industries to attempt to answer the new-age old question: Mac or PC?

Interview with Harry Whelchel

Harry has been developing for six years at VC [Venture Capitalist] backed startups, digital agencies, as a consultant, and now the founder of ConvoPanda the #1 community of B2B SaaS founders and marketers who generate leads and grow sales using chatbots.

What Development languages do you prefer and why?

“When thinking about what programming languages I prefer it's all about context. First, what's my goal with the project? If I'm looking to monetize a software product I reach for the language I'm most familiar with so that I can move as fast as possible and focus on whether I'm delivering business value to my clients. For me, and for when it's a web-based application, that's Ruby on Rails. On the client side, I start out with simple jQuery and add React components sparingly as necessary."

“When my goal is to add new programming tools and concepts to my figurative tool belt, I reach for other languages or frameworks. Currently, I'm interested in GraphQL and Elixir. GraphQL isn't a language per se but an interesting new way to build web-based APIs. Elixir has the developer ergonomics of a Ruby but can scale more efficiently and has a lot of useful operational benefits for real-time applications.”

Favorite development environment/IDE if you have one and why?

“My preferred development environment is Sublime Text 3. I really enjoy Sublime and feel productive in it because I invested the time early on into customizing it and learning all the keyboard shortcuts to make myself as efficient as possible. Now, I rely on a lot of muscle memory around the editor, so it would be hard to justify switching to something else. I also like how fast it boots up and how inexpensive it was.” So which do you prefer Mac or PC for development? “Mac for a number of reasons!”

“The majority of web servers use the operating system, Linux, to run the web applications we all use in our day-to-day. Linux and MacOS share the same "operating system ancestor" Unix. So, by developing on Macs you learn a lot of programs and concepts that are applicable when deploying, operating, and managing production web servers. MacOS also has a fantastic software package management tool called Homebrew.”

“The biggest con would be the upfront financial cost is higher than most PCs. I haven't upgraded to the new era of MacBooks with the new butterfly keyboards, but I've heard from many developers that the keyboard is unfortunately prone to keys getting stuck.”

Can you think of a time when a PC would be best used?

“It all depends on your goals. If you are looking to build and monetize a new software product then reach for the operating system and programming language you're most familiar with.”

Interview with Chris Aquino

Chris started out doing a mix of web design and technical support at an Internet Service Provider in 2002 Colorado. His boss discovered that Chris was interested in programming and let him work on a PHP App. Upon Chris’s return to Atlanta, he started working with Monumental that partnered with marketing agencies. He built websites and mobile apps for Coca-Cola, Turner, and others. Late in 2011, he was contacted by the founder of Big Nerd Ranch to build the curriculum for a JavaScript course. Chris spent 5 years with them as an author, instructor, engineer, and manager. Last year, Chris joined DigitalCrafts as a Full-stack instructor, where he could focus on what has become his mission; teaching JavaScript.

What Development languages do you prefer?

“My two favorite languages at the moment are JavaScript and Python. I love JavaScript's portability - you can use it to build apps for the browser, the server, mobile (iOS and Android), desktop (Mac, Linux, Windows), and VR. That, and it lends itself nicely to Functional Programming techniques. Also, I build little hardware projects with the Raspberry Pi. I do this primarily in Python, as most of the open source libraries for the Pi are written in it.”
Favorite development environment/IDE if you have one and why?

“I don't have one...I have three!”

“My primary editor for teaching is Visual Studio Code, which is a free editor from Microsoft. It has one of the best out-of-the-box experiences. Its default configuration is excellent for front-end and backend development with JavaScript. It's fast, stable, and is updated regularly.”

“I use Vim for quick editing since it runs in the Terminal. It's also ubiquitous on Linux machines, so it's what I use when logged into my servers. It has a cryptic system of shortcut keys (since you don't use the mouse), but once your muscle memory has built up, you can edit huge amounts of code very quickly.”

“Emacs is what I use for journaling, note-taking, and coding (of course). You could say that Emacs is almost an operating system; there are plugins you can install that let you do email, manage your calendar, and even browse the web. I haven't gone quite that far, though.”

Which do you prefer Mac or PC for development?

“The Mac hits the sweet spot for the kind of development that I do the most - front-end and backend web development. Even though the technologies I build with are open source and run on Mac, Linux, and Windows - I prefer the Mac.”

What do you think some of the Pros and Cons are to using a Mac?

“Under the hood, the Mac experience is closer to Linux. You can do almost everything from the Terminal, and you have easy access to a world of open source software. On top of that, all of the popular design and productivity apps run on macOS. This is crucial if you're collaborating on a project with designers, project managers, etc.”

“I'm not in love with the way that macOS is becoming more and more like iOS. I do not use a computer as an "entertainment appliance" and it's slowly turning into that. It has gotten to the point that with every new release of macOS, I find myself hunting for ways to turn off the new features.”

What do you think some of the Pros and Cons are to using a Windows PC?

“If we're talking about Windows specifically, I think the biggest hurdle is that it does not ship with open source tools already installed. There have been efforts over the years to improve that (such as Cygwin and Microsoft's own "Linux subsystem for Windows"), but they seem to fall a little short. After you manually install something that facilitates using open source, you then face issues with compatibility and support.”

“On the other hand, I do own 4 Lenovo Thinkpads, and I love them (yes, more than my Mac). Granted, I run Linux and BSD on all of them.”

Can you think of a time when PC or Mac would be best used?

“I think that if you're building for Microsoft's .NET platform, then you should definitely go with Windows, without a doubt. I also hear that PCs have the best support for gaming. Alternatively, if you're developing Mac or iOS applications, you have no choice but to use a Mac.”

“For any other kind of development, you have more flexibility. At that point, you should find out what platform has the best support for that programming ecosystem. If there are any commercial products that you need access to (such as design software), pick the OS that runs those products well.”

Interview with Robert Bunch

Robert Bunch graduated with a Computer Science degree in 2001. This was just in time for the .com bubble to pop so he bounced around until starting up as a developer in 2004. Since then, he has used most mainstream languages professionally and most recently has been teaching. Rob is well adept at development using Node (Express), Python (Flask and Django), JavaScript, PHP (Laravel, Drupal, and Cake), Java (Spring), Ruby (Rails), C#, and various flavors of SQL and NoSQL. Rob has been at huge companies like TBS, small startups, a financial company working on the same code base for years, to marketing agencies where he made a new website every week.

What are your preferred development languages and environments and why?

“For scripting languages (JS, Node, Python, PHP, Ruby) I have been using Sublime Text for so long it's hard to change. The community support is fantastic so there is a plugin for almost everything. I have used Atom and VS Code along with a myriad of others that are outstanding, I just know Sublime well enough that it's likely to remain my default until VS Code takes over. For a compiled language, I lean towards Eclipse in Java, again, only because I've always used it, and Visual Studio for C#. IntelliJ seems to be the rising standard for Java so I've been using that more lately. I hardly write C or C++ anymore, but I always do those on my Windows machine.”

Which do you prefer Mac or PC for development?

“The short answer is Mac, because of the OS and community behind it”

"The longer answer... Let me start by saying that I am not an Apple fanboi. As both a consumer and a developer, I've been getting more and more frustrated with Apple in recent years. It feels like Apple is doing what Microsoft did back in the late 90s... closing their doors, forcing their hand more frequently, etc. That's another issue but is meant as a point of reference for the fact that I overwhelmingly prefer to work on a Mac. Windows, for me, only wins out in game development like Unity or Unreal, or for .net/C#.

And then Rob summarized every reason developers use Macs!

  1. “MacOS shares many of the same commands as Linux, and that is enough reason right there. Unless you are doing .net development, chances are very high your code is going to end up on a Linux machine somewhere, whether it's a JVM, an android app, or a website on Apache. That makes it very easy to drift towards Linux because there are fewer moving parts.”
  2. “There is also far more power afforded to the user in MacOS than in Windows. The tradeoff is usability. Nothing is more frightening to a new user than the command line, but super user's want to see all the wires no matter how chaotic; window's users want the wires to be hidden in the walls and out of sight.”
  3. “No matter how many times I launch new software, there are always deploy problems that are related to the environment. Always. Windows adds a MASSIVE new element of complexity because it's a fundamentally different OS and UI. Whatever you did in development in Windows, your production machine isn't going to be close. As I work with students on Windows machines, even if everyone has the same version of Windows 10 Pro, it's possible to get entirely unrelated errors and there's no easy way to check logs or troubleshoot.
  4. “If you are working with Apache, node, SQL, etc. there is usually an extremely simple package manager that will get it for you. In Mac that might be homebrew, or it might be using curl. With Windows, no installation ever seems simple.”
  5. “Settings are easy to change in MacOS via the command line. For instance, global and user path variables are easily changed in a single command. It's a nuisance to find and change anything in Windows.”
  6. If you go to stack overflow, the vast majority of answers that are below surface level questions assume Linux.

We then asked Rob why you should not choose a Mac if you are a developer?

  1. “Machine performance is not a good reason to choose a Mac. Any hardware in a Mac is available on a PC. PCs tend to be weaker in this area only because you can buy cheaper. Apple gives you no choice; the entry point for their laptops is quite high. If you want a PC that's meant just for email and web browsing, no problem. On Mac, you will overpay. If you need a big machine, you can get an i7 or i9 with tons of ram and a huge SSD on either. You just can't buy cheap with Apple.”
  2. “Macs look cool…. Pick your battles, but I couldn't care less what my machine looks like. I want it to be fast, hold charge, and be as bug-free as possible. If it can be made from fighter jet metal... I guess that's OK, but I'm not paying for that.”
  3. “I will say that I have a new Surface Book 2 and it is fantastic. It gives me the flexibility of a tablet but is a full version of Windows. I generally don't code without a keyboard, but I can lay on the couch with my tablet and look at my IDE, troubleshoot, etc. with this. There is no way to that with a Mac. It also has an incredible battery life.”
  4. “Visual Studio Code is now free and awesome. It has a bevy of cool plugins and tools to suit your needs.
  5. “An engineer is in charge at Microsoft again. This is getting all kinds of good momentum, like the superbash in Windows 10.”
  6. “If you're doing .NET and C#, then Windows is a no-brainer. I tend to still use my Mac when writing Java, but since the JVM is stack agnostic, it really just depends on what UI you prefer. Tomcat can easily get up and be going on either OS without any effort.”

In summary, developers are passionate about their Macs, but reasonable in their expectations and can appreciate a good PC at times. In the end, it all comes down to what you are developing, why you are developing it, and how much Open Source community support you need. A primary reason why Mac wins out in our classrooms is continuity. A Mac is a Mac is a Mac, and our instructors can't be experts on every OS out there. For students who can't purchase a Mac for class (required for the Immersive program, encouraged for the Flex program), we do offer a laptop loaner program. Thanks for reading!