When it comes to making the choice between Mac vs. PC for Web Development, it is at the end of the day a personal preference. However, having said that, there are multiple factors to take into consideration (as discussed in this article) when deciding what device to purchase, as after all you will be stuck with your choice for a good 2-3 years. Xcode simply doesn't run on an i486 PC, and you can't save your app's source code on a 1.44 MB floppy disk anymore. Your Mac probably doesn't have a CD drive, and you store your Swift code in a cloud-based Git repository somewhere. Make no mistake: owning a MacBook is a luxury. Someone make an argument for development on a Mac vs PC. A list of pros vs cons would be nice. And talk about types of Development. Such as a high end gaming studio vs a guy in the basement making basic Java apps. Does a Mac vs PC even matter in all situations? (This comparison was an example. But if you buy a Mac, you can run both. Sure you can download a modded Mac OS X and install it. But the thing with Mac on a PC is that it normally only works for a few PC's and it is not always legal. Anon190386 June 26, 2011. A lot of the problem with the Mac vs PC debate is the large amount of ignorance. The cheapest Mac that would be sufficient for my needs, a 13in MacBook Pro with 512GB of storage space and 16GB of ram, comes in at well over £2,000, yet is barely more powerful than the machine.
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. To learn more visit here.
Not long after, the IT person in charge that day took my laptop to another room to see if he could get signal there. Mac for projector. Five minutes into my session time, I plugged in a copy I had on a USB drive to the room's PC and began my presentation.
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? Scientist high priest of dub rare.
'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!
- '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.'
- '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.'
- '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.
- '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.'
- '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.'
- 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?
- '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.'
- '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.'
- '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.'
- 'Visual Studio Code is now free and awesome. It has a bevy of cool plugins and tools to suit your needs.
- 'An engineer is in charge at Microsoft again. This is getting all kinds of good momentum, like the superbash in Windows 10.'
- '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!
Smashing Newsletter
Every week, we send out useful front-end & UX techniques. Subscribe and get the Smart Interface Design Checklists PDF delivered to your inbox.
Designers and developers have many choices to make when it comes to getting work done, from what frameworks, languages, and image editing software to use, to what platform to run. The latter is an oft debated and controversial topic and the mere mention of it risks setting off flame wars of epic proportions, so in the interest of sanity, we'll try to avoid any direct comparisons to other operating systems.
It's no secret that there has been a growing trend in recent years toward developers, especially of the web variety, choosing a Mac as their main dev machine. In this two-part series, we will examine some of the reasons behind this trend, look at some of the pitfalls of switching to the Mac, and go over the must-have software and configurations every switcher should be aware of.
You might be interested in the following related posts:
First Reason for Switching: Mac OS X
Mac For Pc Download
You may have noticed the rise in the number of colleagues and fellow developers who are choosing a Mac as their next computer. If you haven't, you're probably either working for Microsoft or you have an MBA. So why is it so compelling?
If you were to ask a die-hard Windows user why he or she thinks people like Macs, they would almost invariably say the reasons are purely about aesthetics. If you were to ask most web developers why they have switched to a mac, however, the refrain would be loud and unanimous: OSX. To be fair to Windows, in terms of raw capability the two offerings differ very little; with enough elbow grease, both systems can be configured in pretty much any way its users wish.
When pressured to explain why they prefer OSX, Mac users often rest on qualifiable and subjective arguments such as 'it feels intuitive' or 'I enjoy using it more' or even 'I can't explain why I like it better, I just do.' The Windows user, when presented with these arguments, usually rolls his or her eyes and continues on their way. It isn't until someone truly makes up their own mind to give OSX an honest chance that they can understand what all the fuss is about.
A Few Quantifiable Benefits of OS X include:
1. Open Source Friendly
As a web developer, if there's one skill you invariably have to develop, it's the use of a *NIX terminal. Luckily, because OSX is built on top of UNIX, the terminal is ready and waiting. Every Apple ships with a wide variety of open source programming tools and frameworks built in such as PHP, Apache, and Ruby on Rails. Linux users who have grown tired of dealing with hardware issues, especially on laptops, often choose a Mac as their portable solution because it is UNIX based.
It means that the entire world of open source software out there is pretty much guaranteed to run without much hassle. In a world where open source software is a way of life, web developers need a friendly environment to operate in.
2. Quartz Extreme
Quartz is the OpenGL powered windowing system used by OSX. Quartz extreme utilizes the graphics card exclusively, which means no processor cycles are taxed. This allows for a variety of useful features such as Exposé, which dynamically resizes every window on the screen giving you a bird's eye view of your entire workspace.
Pc Or Mac For Game Development
Spaces, a feature introduced in OSX 10.5 (Leopard) takes the bird's eye view a step further by providing a view of multiple desktops. To further illustrate the point, you can activate Exposé inside Spaces and drag these windows from desktop to desktop – any videos that are playing will continue to play and the windows will dynamically resize to accommodate the extra window. Once you get used to this sort of thing, you wonder how you ever lived without it.
3. Core Animation
Core animation provides a way for developers to produce animated user interfaces via an implicit animation model as well as an ‘explicit' model. In other words, it means some very flashy and useful features are going to start showing up in OS X applications much like the animated menu help system shown in the graphic above. Prodiving developers with a toolset to implement these types of animated effects means software will become more intuitive.
4. Built-in Tools
There are so many useful tools that are built in to the Mac that come in handy for designers and developers that it's easy to see OSX was built with developers and creative professionals in mind. Take the built-in screen capturing utility 'Grab' for OSX, which has a wide variety of options, from selecting down to the pixel the area you want to screenshot, to providing window captures complete with the window frame, to outputting directly to the desktop as a .PNG file.
In fact, some tools were created specifically for designers because Apple has long catered to the creative professional market (indeed, it sustained Apple during their darkest times). More built in tools include:
- The Digital Color Meter - a tool that allows you to grab the color value of any pixel on your screen.
- Console - Useful for viewing very large log files
- Terminal - Mentioned above, complete with many OSS tools like VIM
- XCode Tools - The Apple development IDE
- Zoom - easy-as-pie down-to-the-pixel zooming
- Safari Debug Mode - Similar to Firebug for Firefox
- Time Machine - dead simple automated backups
5. Unified User Interface
As any student of design knows, consistency is one of the most important principles to adhere to, and it is clear the OSX UI was designed with this in mind. Because of the strict user interface guidelines provided by the Apple software development tools, applications and utilities on a Mac feel like they are all part of the same system.
The menu bar, which for some switchers can be a difficult feature to get used to, adheres to this unification by standardizing the location and layout of the menu options. Drag-and-drop functionality is ubiquitous. Being able to do things like drag an image off your web browser directly into your Photoshop project are a boon to productivity. If it feels as though you should be able to drag-and-drop something, you probably can.
6. Security
Now before you crack your knuckles and start composing your diatribe about why Macs aren't any more secure than PCs, let me point out a trite but undebatable fact: there's simply less malware out there for Macs than PCs – a LOT less (partly because Unix is inherently more secure than Windows and partly because Windows is just more wide-spread and Mac users aren't targeted that often – read more in the article Is The Mac Really More Secure Than Windows?). If you are on a Mac, at least for the next few more years, you can pretty much rest assured your days of worrying about virus and spyware scans are a thing of the past.
7. Textmate, Growl, Quicksilver, and more
There is no shortage of text editors available to developers, but one that seems to keep coming up in recommendation after recommendation is Textmate, the lightweight GUI text editor for OSX. The project management drawer makes it easy to keep track of folders, which for monolithic MVC frameworks like Ruby on Rails and CakePHP is a godsend.
'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? Scientist high priest of dub rare.
'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!
- '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.'
- '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.'
- '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.
- '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.'
- '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.'
- 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?
- '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.'
- '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.'
- '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.'
- 'Visual Studio Code is now free and awesome. It has a bevy of cool plugins and tools to suit your needs.
- 'An engineer is in charge at Microsoft again. This is getting all kinds of good momentum, like the superbash in Windows 10.'
- '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!
Smashing Newsletter
Every week, we send out useful front-end & UX techniques. Subscribe and get the Smart Interface Design Checklists PDF delivered to your inbox.
Designers and developers have many choices to make when it comes to getting work done, from what frameworks, languages, and image editing software to use, to what platform to run. The latter is an oft debated and controversial topic and the mere mention of it risks setting off flame wars of epic proportions, so in the interest of sanity, we'll try to avoid any direct comparisons to other operating systems.
It's no secret that there has been a growing trend in recent years toward developers, especially of the web variety, choosing a Mac as their main dev machine. In this two-part series, we will examine some of the reasons behind this trend, look at some of the pitfalls of switching to the Mac, and go over the must-have software and configurations every switcher should be aware of.
You might be interested in the following related posts:
First Reason for Switching: Mac OS X
Mac For Pc Download
You may have noticed the rise in the number of colleagues and fellow developers who are choosing a Mac as their next computer. If you haven't, you're probably either working for Microsoft or you have an MBA. So why is it so compelling?
If you were to ask a die-hard Windows user why he or she thinks people like Macs, they would almost invariably say the reasons are purely about aesthetics. If you were to ask most web developers why they have switched to a mac, however, the refrain would be loud and unanimous: OSX. To be fair to Windows, in terms of raw capability the two offerings differ very little; with enough elbow grease, both systems can be configured in pretty much any way its users wish.
When pressured to explain why they prefer OSX, Mac users often rest on qualifiable and subjective arguments such as 'it feels intuitive' or 'I enjoy using it more' or even 'I can't explain why I like it better, I just do.' The Windows user, when presented with these arguments, usually rolls his or her eyes and continues on their way. It isn't until someone truly makes up their own mind to give OSX an honest chance that they can understand what all the fuss is about.
A Few Quantifiable Benefits of OS X include:
1. Open Source Friendly
As a web developer, if there's one skill you invariably have to develop, it's the use of a *NIX terminal. Luckily, because OSX is built on top of UNIX, the terminal is ready and waiting. Every Apple ships with a wide variety of open source programming tools and frameworks built in such as PHP, Apache, and Ruby on Rails. Linux users who have grown tired of dealing with hardware issues, especially on laptops, often choose a Mac as their portable solution because it is UNIX based.
It means that the entire world of open source software out there is pretty much guaranteed to run without much hassle. In a world where open source software is a way of life, web developers need a friendly environment to operate in.
2. Quartz Extreme
Quartz is the OpenGL powered windowing system used by OSX. Quartz extreme utilizes the graphics card exclusively, which means no processor cycles are taxed. This allows for a variety of useful features such as Exposé, which dynamically resizes every window on the screen giving you a bird's eye view of your entire workspace.
Pc Or Mac For Game Development
Spaces, a feature introduced in OSX 10.5 (Leopard) takes the bird's eye view a step further by providing a view of multiple desktops. To further illustrate the point, you can activate Exposé inside Spaces and drag these windows from desktop to desktop – any videos that are playing will continue to play and the windows will dynamically resize to accommodate the extra window. Once you get used to this sort of thing, you wonder how you ever lived without it.
3. Core Animation
Core animation provides a way for developers to produce animated user interfaces via an implicit animation model as well as an ‘explicit' model. In other words, it means some very flashy and useful features are going to start showing up in OS X applications much like the animated menu help system shown in the graphic above. Prodiving developers with a toolset to implement these types of animated effects means software will become more intuitive.
4. Built-in Tools
There are so many useful tools that are built in to the Mac that come in handy for designers and developers that it's easy to see OSX was built with developers and creative professionals in mind. Take the built-in screen capturing utility 'Grab' for OSX, which has a wide variety of options, from selecting down to the pixel the area you want to screenshot, to providing window captures complete with the window frame, to outputting directly to the desktop as a .PNG file.
In fact, some tools were created specifically for designers because Apple has long catered to the creative professional market (indeed, it sustained Apple during their darkest times). More built in tools include:
- The Digital Color Meter - a tool that allows you to grab the color value of any pixel on your screen.
- Console - Useful for viewing very large log files
- Terminal - Mentioned above, complete with many OSS tools like VIM
- XCode Tools - The Apple development IDE
- Zoom - easy-as-pie down-to-the-pixel zooming
- Safari Debug Mode - Similar to Firebug for Firefox
- Time Machine - dead simple automated backups
5. Unified User Interface
As any student of design knows, consistency is one of the most important principles to adhere to, and it is clear the OSX UI was designed with this in mind. Because of the strict user interface guidelines provided by the Apple software development tools, applications and utilities on a Mac feel like they are all part of the same system.
The menu bar, which for some switchers can be a difficult feature to get used to, adheres to this unification by standardizing the location and layout of the menu options. Drag-and-drop functionality is ubiquitous. Being able to do things like drag an image off your web browser directly into your Photoshop project are a boon to productivity. If it feels as though you should be able to drag-and-drop something, you probably can.
6. Security
Now before you crack your knuckles and start composing your diatribe about why Macs aren't any more secure than PCs, let me point out a trite but undebatable fact: there's simply less malware out there for Macs than PCs – a LOT less (partly because Unix is inherently more secure than Windows and partly because Windows is just more wide-spread and Mac users aren't targeted that often – read more in the article Is The Mac Really More Secure Than Windows?). If you are on a Mac, at least for the next few more years, you can pretty much rest assured your days of worrying about virus and spyware scans are a thing of the past.
7. Textmate, Growl, Quicksilver, and more
There is no shortage of text editors available to developers, but one that seems to keep coming up in recommendation after recommendation is Textmate, the lightweight GUI text editor for OSX. The project management drawer makes it easy to keep track of folders, which for monolithic MVC frameworks like Ruby on Rails and CakePHP is a godsend.
Nested scopes allow users to create their own syntax highlighting which is important in the ever changing world of web development. To speed up the development process, one can utilize 'snippets' or pieces of reusable code that can be inserted with a few key strokes. While there aren't any features that are revolutionary, they are combined in a way that makes for a very unobtrusive coding experience that seems very in tune with the overall feel of a Mac.
In addition to Textmate, there is a whole host of other beloved applications that seem to have been created by people who truly understand and want to emulate the Mac experience, like the quick-launch solution Quicksilver, the system notifications app Growl, and the chat client Adium. These are pieces of software of a caliber that is sometimes difficult to find on Windows. It seems that quality, not quantity, is the best way to describe the Mac software library.
8. Quick Look
OS X not only has icons that display an actual miniature version of the file they are representing, but it's possible to view the contents of the file in their full glory without having to launch the program they are associated with simply by hitting the space bar. Furthermore, if a group of icons are highlighted, they can be expanded into a gallery view.
9. Virtualization
OSX is the only OS you can get that can virtualize all three major operating systems out of the box. This is a must have for checking browser compatibility. To make life even easier, you can do it right from within OSX using programs like Parallels, Virtualbox, and VMWare Fusion. And if you think web browsers render websites exactly the same regardless of the operating system they're running on you are sorely mistaken.
Second Reason for Switching: Intel Inside
When Apple made the switch to Intel chips, it upset a lot of Mac fans out there who liked the fact that Apple wasn't the same as any other X86 box on the market. With the rise in mobile computing, however, Apple was forced to face the fact that the PowerPC wasn't offering as good a solution as Intel.
They also knew that by offering a system that could run Windows in addition to OS X they would put to rest any compatibility arguments. It turned out to be a good strategical move, and droves of would-be switchers were finally able to take the plunge without being forced to give up their entire libraries of Windows-based software.
OSX can virtualize all three major operating systems out of the box. This is a must have for checking browser compatibility. To make life even easier, you can do it right from within OSX using programs like Parallels, Virtualbox, and VMWare Fusion. And if you think web browsers render websites exactly the same regardless of the operating system they're running on you are sorely mistaken.
Third Reason for Switching: Less Hassle
Opinionated Software
Some people like hassle. In fact, developers typically love getting their hands dirty customizing, maintaining, and tweaking their operating systems. If you fall under this category, Linux is probably your best fit, followed by Windows. OS X is more opinionated than other platforms. It's more difficult to customize its look and feel, there's no easy way to get it to run on anything but Apple hardware, and OS X can be very particular about the way certain things are done.
Opionated software, however, can have its benefits. While it may be more difficult to customize and hack every last aspect of your OS, sometimes it can be nice to have a system where a good many of these choices have already been made for you. Because Apple provides a complete solution, from the operating system to the hardware to a lot of the software that's bundled in, they have an easier go of making sure the experience is seemless and well tested. Opinionated software can be a very polarizing concept, however.
Take Ruby on Rails for instance, a web development framework where many decisions are made for the developer based on the core contributors' opinions about best practices. Rails has a preferred javascript framework, database ORM, templating system, and more. You can choose other configurations if you want to, but it shines brightest when you do things the 'Rails Way.'
You spend less time customizing and more time actually developing. This hands-off approach can be a major turn off for some developers, but for others it removes a lot of the hassle and reinventing of the wheel. The high rate of Mac ownership among Rails developers could be directly attributed to the analogous nature of Apple and Rails. The analogy is made more apt by any number of PHP vs Ruby on Rails flame wars you can find out there.
Support
Because Apple provides the whole solution, they are obligated to provide support for the whole solution as well. Most developers are perfectly willing to trouble shoot their own computers, but when deadlines need to be met it can be nice knowing that you can offload some of that hassle to people who already know the system inside and out.
Apple has impressive customer service specifically because they support the entire system, rather than just one aspect of the system. It's also handy to be able to take your machine into an actual brick-and-mortar store rather than deal with outsourced phone support.
Let's face it, when it comes to a non-technical spouse or family member, we can expect to do a lot of troubleshooting. Just like its nice not to have to worry about troubleshooting your own computer, it's even nicer not to have to worry as much about other people's computers. It is reasonable to assume that because Macs typically have less security issues (at least for now), there's less time spent trying to explain how to avoid malware and actually removing it.
Fourth Reason for Switching: Microsoft
If you like it or not: a big reason why developers have been flocking to Apple is in part due to the fact that it isn't the big M. When personal computing was still in its infancy, the reverse was true. Microsoft understood that it was the developers (developers developers) that would make their OS successful while Apple's closed model ended up being a huge mistake.
Once Microsoft started dominating the marketplace, however, the pungent stench of monopoly sparked the open source movement, and more and more developers were starting to wonder if there were better options out there.
Linux is of course the golden child of the open source movement, but despite the efforts of Ubuntu it is still a ways off in terms of being a turnkey solution for most people. Enter Apple: a Unix based system that despite being every bit as closed as Microsoft, is in large part the antithesis of Microsoft.
Microsoft software has the unfortunate feeling of having been designed by committee. Features are packed in with little regard to their usefulness, and aesthetics are seemingly an afterthought. When Vista first launched, the Aero user interface was so flashy it required higher end machines to even run it, somewhat defeating the argument Microsoft was making about the affordability of PCs. OSX was designed to run as well on the most expensive Mac Pro as it would an eight year old Powerbook because they control the solution from hardware to software.
Unfortunately, Windows doesn't come bundled with PHP, Rails, or any other open-source web development frameworks or languages any time soon. More and more of what we do is in the cloud these days anyways and it is almost starting to feel quaint when you come across new software that runs solely as a desktop client. Microsoft has painted themselves into a corner – they rely on closed formats and standards in a world where open source software, open formats, and open standards are king.
Mac Or Pc For Development
Fifth Reason For Switching: Design and Minimalism
Good design gets out of the way. It doesn't demand to be seen or appreciated. Most of all, good design is something you don't even notice at first. Bang & Olufsen understands this, and Apple understands this. As of this writing, there are only two styles of Apple notebook: silver and white, and white is only available in the cheapest configuration. Apple notebooks are free of stickers, screws, vents, buttons, switches, and graphics.
What this leaves is a system with little to look at other than the screen in front of you, which is as it should be. The benefit of the entire product development cycle being done under one house is that Apple creates a system that truly feels as though it was created by one person.
At the heart of Apple's design philosophy is the concept of minimalism. It is a concept that has worked well for companies such as Google. We all remember the gratuitous placement of links and ads on most search engines before Google came around with its simple search bar. After all, it was the search that was the important part, not the content the provider was hoping we would want. Apple figures if not including a feature angers 1% of their consumer base but makes things easier for the other 99% it's probably worth doing.
Take, for instance, the lack of a second mouse buttom. It may seem like a glaring omission on Apple's part, but it has had some unintended consequences: because developers can't simple throw commands into a bloated right-click menu they are forced to think more about the one-click usability of their applications.
Minimalist design has its downsides too, however. Macs lack card readers, often have 2-3 less USB ports than even low end machines, and are typically difficult to customize. For those of you who value a product that gives you many choices, Apple is going to fall short. It is often pointed out that upgrading a Mac is easy: 'Just throw it away and buy a new one.'
Humor aside, this isn't too far from the truth but the good news is that Macs hold their value better than any computer on the market. Instead of throwing it away, sell it on Ebay for healthy head-start on a new machine.
Mac's Pitfalls
It's not all sunshine and rainbows for everyone who switches to a Mac. There are the inevitable bumps in the road that everyone experiences when making a major platform change, and for some people these bumps are outright road blocks. Here's what to be aware of:
1. Control is now Command
Breaking the habit of using control as the main modifier key on your system can take a bit of time and some people never quite get the hang of it. Old habits die hard and muscle memory dies harder. This is a problem that can be solved by re-mapping command to the control key, but when you are using a system that assumes a certain configuration you may run into confusion later on.
2. No Second Mouse Button
Unless you use an external mouse with your Apple laptop you will have to get used to the lack of a second mouse button. The truth is there is no optimal number of mouse buttons. Luckily, you can enable right-clicking in a number of ways on a mac, such as tapping the track pad with two fingers simultaneously or holding ctrl when clicking.
3. No Maximizing of Windows
This is actually starting to become less true as time goes on as ex-Windows users who develop software for the Mac include the feature (for instance, maximize on firefox for the Mac works as expected). But the typical maximize you are used to in Windows cannot be found on the Mac, and for some this can be extremely frustrating. In fact, the whole 'stop-light' window controls can at times feel stale and unintuitive.
4. Lack of an 'affordable' Mac
Perhaps the most popular sticking point of non-Mac users, price is always at the heart of the debate. Under $1200 or so, there is no question that byte for byte, ghz for ghz, you can get a better raw value by avoiding Apple. Apple has chosen not to enter the sub $1000 PC not because it doesn't want to grow sales, but because it wants to avoid the dogfight that Sony, HP, and other brands are in for the lower end market.
Profit margins are razor thin in that range, after all. Apple is certainly catering to the botique style consumer. If you are pinching pennies these days the price issue may just be the one pitfall you can't bring yourself to overcome.
5. Much Smaller Software Library
While this is somewhat mediated by the fact that you can virtualize Windows on a Mac, it is a far cry from being able to run your favorite programs natively on your system. If you are using software on a regular basis that only runs in the Windows environment, you may want to think hard about whether moving to a Mac is worth the trouble.
6. You Can't Build a Mac (Easily)
Part of the success of Windows was the fact that they licensed it to run on any PC, anywhere. Apple has been closed since the word go, save a brief period where they allowed Mac clones to exist in what turned out to be a devastatingly bad idea. If you're the type who loves building your own PC from scratch, a Mac is not going to offer much for you.
In general, even the most jaded Windows user is inevitably going to miss at least a few features or aspects of Windows during their switch to a Mac. The best policy to follow is to keep an open mind during the learning process. Try doing things 'the Mac way' for a week and keep your skepticism to a minimum.
Above all, ask questions before you make assumptions. There's a fervent Apple community out there (in case you haven't noticed) that have solutions for every issue you find, thanks in part to the fact that most of them are switchers themselves. Remember, if you're having the issue, chances are good some other switcher experienced it before you and created or found a solution.
Conclusion
While not the right solution for everyone, it's clear that many people are switching to a Mac these days for a good many reasons. Nevertheless, Macs are expensive and require user's patience and willingness to adapt his or her behavior to a compltely different interface. Mac is certainly not an option for every user, but it is definitely an option worth considering – particularly for designers or developers.