Yesterday, I've read a blog post, together with a healthy debate that appeared there in the comments. It was about Macs, their pricing, and how you might not need one for your work that in this case involves web development.
Now, reading this made me think about why Macs are so popular within the web development community. I feel like it's somewhat of an unspoken truth. I see tons of GitHub issues reported from Macs, benchmarks run on Macs, Mac-recommended setups, tutorials, and all that kind of stuff. Sure, Linux and even Windows have user-bases of their own, but it seems that - in web development at least - Macs are the generally-preferred option (if you're willing to pay the price that it).
I haven't yet owned a Mac myself, and my primary OS is Linux, with some Windows here and there for specific tasks. However, I have played a little bit with macOS and more than enough with both Linux and Windows to know what's so appealing about it and how it compares to the other options. And so, here are 3 reasons why I think web developers prefer Macs.
Based on Unix
One of the biggest advantages of macOS for all kinds of developers is the fact that it's based on Unix. This means that you get a comfortable terminal with all the convenient and well-established commands, together with a vast ecosystem of development-centric tools.
Now, an argument can be made that it's only an advantage when compared to Windows (which without the WSL lack pretty hard in this regard), but not so for Linux. Arguably, Linux is even better for various development tasks, due to it being more lightweight and literally omnipresent when it comes to servers, databases, or even supercomputers. It's also more customizable than macOS and has an even larger ecosystem of useful software.
Overall, while Linux is definitely the king in the Unix-like category, macOS is close behind and surely far ahead of Windows. Also, it's somewhat of a matter of personal preference as some might prefer the customizability of Linux, while others the out-of-the-box intuitiveness of macOS.
Creative software support
While coding is the biggest part of the job, it can be said that web development goes far beyond that. Because of the visual part of the website, web app, or even native JavaScript app (Electron, React Native, etc.), there's often a need for web developers to do some graphic tinkering - vector illustrations, logos, icons, images, and maybe even promotional videos too! Remember, there are many freelancers in this field providing "all-in-one services", so everything is possible!
And so, for those kinds of things, macOS is a perfect choice. Just think about this, Windows is supported by a lot of creative software like - most notably - Adobe CC. But, as we've already discussed, it's not Unix-based and so programming on it can be quite troublesome. On the other hand, Linux is Unix-based, but the creative software support for it is much more limited. Sure, if you can go with using e.g. Inkscape, Gimp, and Blender, you'll be fine, but without a doubt, macOS wins in this category.
Multiple browsers support
As you might know, Microsoft Edge has recently gone Chromium, leaving the major web engines scene only to Chromium, Mozilla's Gecko, and - you've guessed it - WebKit.
You can download Firefox on both Linux and Windows, and Chromium-based browsers are literally everywhere. However, even though WebKit is open-source, browsers based upon it are far less common (examples include Midori Browser). The fact is that the best WebKit experience is available only on Safari, which itself is only on macOS.
So, if you've got macOS, you can without much trouble test your designs on the latest versions of all major browsers. Of course, it won't be enough for production testing, but it's still a much-welcomed advantage, given the fact of how many quirks there are to solve with WebKit compatibility. Remember that Safari still has a pretty-significant market share, and even if you go with e.g. Midori for all that testing, there's no mobile iOS debugging anywhere outside of macOS.
Bottom line
These were just some of my thoughts about the popularity of Mac in the web development industry. Still, I don't use macOS, so you can look at these as nice, objective thoughts.
It's without a doubt that macOS machines cost more (unless you go the Hackintosh way, but that's a different story), and thus aren't even within anyone's reach. Also, the point of personal preference plays a significant role here. macOS just like any other OS has a lot going for it, but also against it. We shouldn't argue or purse others to use the same OS as we do, just because we think it's better. Everyone works with what he has, and if he has the right budget - with what makes him more productive.
For more web development thoughts and articles, be sure to follow me on Twitter, Facebook, or here on Dev.to. Thanks for reading and happy coding!
Top comments (34)
I may have stirred that pot a little :-) Honestly: I don't believe there is a 'good reason' beyond "I want one" (and there is nothing wrong with that). I've been in I.T. forever, I've worked in a repair shop (and have serviced many Apple products), a help desk, and now I'm a developer and I just can't see it being beneficial in any way (again, beyond desire, which is nobodies business but yours).
I also understand your prospective on the prevalence of Macs on GitHub but I'll counter that with I hardly ever see then in a corporate context (and 1/2 of the ones I do see there are running some version of Windows or Linux)
I see your point. It's just that switching back and forth between Windows and Linux for my work is a bit tiresome. It's just my personal observation. However, it still doesn't justify much the quite high price and arguably low performance per dollar of Macs - even for me. Anyway, to each one their own and we shouldn't say which OS the other person should use other than giving "objective recommendations".
Right, and for $2500 I can buy a gaming laptop that can be combined with a docking station(1) and that setup can run Linux and OSX in a VM while I'm playing Cities Skylines (or whatever) on the host. That's, basically, my point. I have no (real) opinion on buying a Mac but it seems like people are making the choice without really understanding their choices (and old-timers like me will notice). The exception to this is old-school BSD guys. But I recognize those guys from a mile away and haven't encountered one 'in the wild' in the past few years (but boy were they excited about the changes to OSX!)
(1) it's got to allow video pass-thru from the host
Good luck with that OSX in VM :D
Achieved :D
I get bonus points for being on Ryzen.
It’s so weird the world we’re living in. During the 00s, Apple was promoting Unix and the openness of their systems while Microsoft was saying you’re going to use Windows and like it.
Now Apple doesn’t even mention Unix on its macOS page and they are deprecating scripting languages such as Python, Perl, and Ruby. They’ll still be available as an optional install, but you can’t rely on them being there when writing software. The system is getting locked up tighter and tighter, it even phone homes on every script to check for notarization.
Microsoft, on the other hand, is going full in on Linux, giving users all of the creative apps of Windows along with a full open source Linux kernel. There are phone home issues with Microsoft too, but that’s what Pi-hole is for.
It will be interesting to see what Apple does with the ARM based MacBooks. I predict they will be locked down like iOS. No terminal, and can only use apps from the App Store.
I wish Affinity would release a version of Designer and Photo for Linux.
Affinity's software would be nice, but if Adobe CC was available on Linux I'd have no reason not to use it. Anyway, Inkscape is quite nice on Linux, I don't do photo editing that much so I don't need Gimp, and I'm just discovering the potential of Blender, so my preferences might change. 😉
Funny observation! Yes I agree, Apple seems to become ever more "closed" and MS ever more "open". And Apple becoming more arrogant, MS more nimble and humble. The world is turning upside down.
Also, if you choose to go the hybrid app development approach - MacOS can build iOS apps in addition to Android apps. While Windows can only do Android. If you choose to do React Native - their CLI tools often throw random errors in Windows, for me at least, which have proven to be due to a lack of optimizations for RN on Windows. I don't have those issues in MacOS.
I'm a recent convert..
Hey @seanmclem , I started working on react native too and I’m using windows now since more than a year. I was happy with my switch from MacOS to Windows. But working with react native really has some issues on windows. I have no comparison now but maybe you have some more details for me why using a mac is better for react native?
React native might bring me back to macOS but somehow I don’t want to switch back again....
I've been a Windows-only user for decades. I was recently using Expo on Windows and I needed to eject to an unmanaged workflow, but there were errors. The errors came from the fact that the eject script used Unix commands not compatible with powershell. Sure, I could have used WSL to run a Linux terminal in Windows, but that's a lot of work just for this one thing, and for why? This bug had been present for a while and had several github issues, but still not fixed. I've had lots of comparable issues with RN and other RN libraries in the CLI. Windows is clearly a lower priority for React Native devs. That's fine, it makes sense, React Native was originally iOS only. All my bugs went away once I switched to a MacBook I was given. Lots of other things have been easier too. Just generally happier.
Mac for developing on iOS and Mac OS X, windows for C# .net environment, for any other reason, there's Linux which works well on any case, including react native
Well OS X can also build Android apps. I'd rather go with the platform that can do everything.
I switched Mac→ Windows years ago. Windows has better hardware options, and the OS has much faster innovation & investment.
I recommend everyone buying an older $200 desktop to try it out. Most people use macs because of the trend. MacOS innovation has been minimal, and the hardware (until 2020) has been terrible (now it's just bad)
What exactly do you mean by "the OS has much faster innovation & investment"?
If ever my Mac hardware needs replacement (hopefully it will last a couple more years) then I'd be tempted to NOT get new Apple hardware but to buy PC hardware instead (desktop or laptop) - but I'd probably skip Windows and put Linux (Ubuntu) on it, with a no-nonsense configuration, just Gnome Classic.
Been there done that, Ubuntu works perfectly.
Good question. My comment refers to Windows 10 feature development for developers and enthusiasts. In the past few years, Windows 10 has received much more frequent OS updates (2x / yr major), Windows Insiders (beta + feedback), hyperv performance improvements (so devs have built-in hypervisor for dev environments), Improved terminal, improved docker support, powershell improvements – and best for last: WSL2
In the last 5 years, MacOS has shipped one dev-focused feature: dark mode. And many dev-hostile features (removing kernel extensions, protected mode, bad hardware)
Containers for VS Code have pretty much removed any competitive advantage that a Mac offered me.
While WSL isn't quite as good as native Linux, it's still good enough. Window management in windows is better than Mac (spectacle helps, but natively try running multiple instances of vs code or intellij and switching between the windows). The price tag is the main barrier from me getting a Mac. I can get a similar or superior specked pc for around $1500 a Mac, $2500-$3000 depending on which model.
Actually for me in 2020, taking into consideration that any development needs will need some setup, the only reasons I use a MacBook pro are Xcode and good laptop builds with good value.
Other than the need for IOS development you can do anything just fine in a well customized Linux distro or even windows with the latest efforts.
Mac is more stable? Not really, it's just easier to get comfortable in it's ecosystem, but damn, engineers should be able to handle any kind of OS setup, plus Mac have some really bad things like font scaling/aliasing in external displays, many small issues with Catalina, Bluetooth issues, lack of hardware support for custom builds, price.
IMHO in 2020 if you don't need to develop for IOS, do buy whatever you like more, take in consideration important things like keyboard, display, build quality, price. I do like my macbook, but it is so damn expansive that it annoys the f out of me when something like the external display looks so bad, or that I need to buy some third party windows management software to do half of the things I can do natively in windows and in so many Linux GUIs.
It's just that the competition is so fragmented and doesn't have the simple straightforward marketing message that Apple has, but if you really look at what you get (hardware, software) then I'd say that Apple's offering is WAY too expensive.
Your "Creative software support" section seems ... interesting?
What exactly is the argument you are making here?
Why is macOS the "perfect choice"?
Can you elaborate on the "programming on it can be quite troublesome"?
Is it a performance issue? Is it a usability issue? What metrics are you comparing?
How exactly is creative software support limited on Windows and Linx? Are you saying graphical applications from Adobe et al lack support on Windows and Linux? In what way? What were the difficulties you experienced on Windows and Linux to conclude that macOS is better?
As for your section on Multiple browsers support, are you saying that the only reason macOS is better is because of the availability of Safari? What about the small percentage of users who still use Internet Explorer? Would using something like Browserstack solve browser testing issues regardless of the operating system you are on?
I use a MacBook Pro at work, and these reasons are hardly the reasons why I would choose it. The biggest advantage for me is macOS's amazing ability to manage full-screen workspaces among multiple monitors. Otherwise, I can make do with Linux or Windows.
**Edit: Formatting
You certainly don't need a Mac for web development. It's based on Unix as well as Linux but both diverged a bit and now you need to virtualize docker for example and it's inefficient in comparison against Linux.
You can get "Creative software" on it but... Are you a web dev or a designer? If you are a dev, you need dev tools. Also you can use inkscape for verctors and photopea for bitmaps and, at the point where a 14" 650€ huawei renders video faster than a 13" 2000€ MacBook Pro... I can't figure out what pro makes sense on the name.
I really tried it many times on last 10 years but i couldn't get a reason for using a Mac
Truth has been spoken. No other reasons than that. I'm a big fan of Unix but today you can do almost everything on Windows with it's new Linux kernel.
Your section about creative software makes no sense. It would make sense if you mentioned Sketch, but you didn't. You just mentioned Adobe CC, said it is supported on Windows, and then started talking again about MacOS being Unix-based being better for programming. That has nothing to do with creative software support.