Tabs versus Spaces, PHP versus Python, Windows versus macOS versus Linux, these are just a few of the topics that have been heavily debated within the developer community for years, and it doesn’t seem like that’s going to change anytime soon.
Developers have a lot of opinions when it comes to what’s best and what’s not. In this article and the video above, I’m going to talk about which is the best operating system for web developers. Is it Windows? Is it macOS, or is it Linux?
The debate of Windows vs macOS vs Linux for Web Development is something I’ve personally debated with myself when trying to choose what to purchase and then justifying what I bought.
Which Operating System Do I Use?
I’ve been using all three operating systems. I use Windows, macOS, and Linux on a daily basis. I’m very familiar with the pros and cons of each operating system, the pain points that do exist, the learning curve that can eat up a lot of your time when you’re going from one operating system that you’ve been using for years, and then trying to do the same thing with another operating system.
Some operating systems are very easy to use out of the box, and some are a little bit more difficult. This is what I tell people, with the simplicity of use, comes a lot of limitations in how you can configure your setup. If you only focus on price, trying to spend as little as possible, then you’re going to run into quality control issues or limitations on the longevity of that device.
If you want full control of your operating system, if you want to be able to configure it down to every single process that’s being run, that adds a layer of complexity that initially might take up a lot of your time. Sometimes it’s worth it, and sometimes it’s not. Then there’s the fact that sometimes things just work easier in one operating system than they do on another operating system. That’s often the case because a developer might favor a particular OS and may not have the time to make something as compatible with an alternate operating system.
What about software support?
Then there’s the issue of software. Commercial software thrives in Windows and macOS but isn’t always made for a Linux distribution. For instance, adobe makes great products that work in Windows and macOS. Out of the box, it does not work with Linux. You’ll have to jump through a few hoops to get some of your adobe products to work on a Linux platform.
The Quick Answer about the Best OS
Before we go any further, I want to first mention the fact that the best computer you could use for web development is the one that you currently have. Whichever it is make it work for you. When you start making money and you have the funds to invest in another computer, that’s when you have to make a decision. Do you want to stay with the operating system you’re currently working with? Or do you want to change to another OS? Remember, your computer is one of many tools you’re going to use to get your job done as a web developer. It’s arguably the most important tool you have in your toolset.
Get Familiar with your OS
Utilizing an operating system that you’re familiar with, that you’re comfortable with, that you can get around efficiently and be productive with, that’s important. You don’t want to be fighting your operating system. As a web developer, there are certain things you’re going to have to do. You can’t always run away from configuration files and things of that nature. To give you a sense of what I’m going to be talking about here, I want to show you some of the laptops that I’m going to be talking about.
First off, this is a very affordable Dell laptop. I got this for less than $500. It doesn’t have the best specs, it doesn’t have the best technology in it, but it gets the job done. Even with a very low-powered computer like this, you can do web development on it.
Then there’s always the MacBook Pro, this is an older generation one and I have a MacBook air as well that I work with and they’re very good devices.
This one is a Pi-Top. This has a raspberry pI and is by far the most affordable solution because you can get started with a raspberry pI for about $35. If you want to get a whole kit, it could cost you about $120 at most.
Next up I have this laptop here which I featured in another video. This is an older Lenovo laptop that I reconfigured to have Ubuntu as the operating system on it. This is great since Linux typically uses fewer resources than Windows uses which means I can prolong the life of the laptop.
Next up is my workhorse Alienware laptop. It’s the most expensive of the bunch but it’s also the most powerful laptop of what I’m currently using. Obviously, if you’re going to get a fully specked out MacBook Pro, it’s going to cost more but in terms of what I currently have and use, this is the most powerful one.
Some quick facts and most of this stuff you already know. Windows has the lion’s share of the consumer market when it comes to personal computers, whether it’s laptops or desktops. macOS comes in second, and really a distant second in comparison with Windows. Trailing the pack is Linux. For the consumer market, you’re going to see that Linux pretty much has about two percent of the consumer market as a whole.
The reason why this debate about “Windows vs macOS vs Linux for Web Development” continues and why this debate matters is because Linux is the main operating system used on the vast majority of websites. Linux is the king of the hill when it comes to the server-side operating system used to power everything from your very local blog, to your fortune 500 corporate sites.
Now let’s talk about for you, the web developer, which is the best operating system? Which is the OS you should be using when you’re programming your website locally? Remember, there are three environments you must focus on. There’s your local development environment, your staging environment, and then there’s your production environment.
When you’re developing locally, this is what this conversation is all about. To really get hands-on with this, let’s first discuss what a web developer actually uses for local web development?
This is what you need for web development
- A laptop or desktop
- A browser like Chrome or Firefox
- A text editor or IDE like VS Code, atom, sublime text, PHPStorm, or any text editor you feel comfortable with
Web Development Stack
Since we’re focusing on web development, you’re going to need support for either PHP or python, maybe node, NPM, git for version control. You’re going to need support for a database like MySQL or MariaDB and a local web server like apache or Nginx. Most of the web dev tools you can get in a package so that makes it very easy to get started.
Now let’s talk about some factors you have to consider besides what you need. The price might be a factor. Like I said before, you can utilize something like a raspberry pI that with a full kit can cost you maybe $120 or you can go as high up as a fully specked out MacBook Pro that could cost you anywhere from 4 to 7 thousand dollars.
Longevity should be a factor as well. This is a tough one because the more money you spend on a laptop or computer, generally the better the quality will be. The last thing you want is for your laptop or computer to fail you. In that regard, Apple has been known for making high-quality laptops and desktops for years. Their machines tend to last more than 5 years, sometimes 10 years. I have Apple laptops that are from 2011 but I also have a Windows laptop from 2012 as well. I did reconfigure the Windows laptop to use Ubuntu on it as the main OS, but the actual equipment still works.
Just because it’ll work five-ten years from now doesn’t mean it’s still the best option. Maybe it is, maybe it isn’t, it depends on your use. We know that technology is evolving on a nearly day-by-day basis. Computer Processors are getting faster, GPUs are getting more powerful, RAM is faster, storage is faster and because technology is improving so quickly (this generally goes with what’s called Moore’s law and that’s a topic for another video) but because technology is moving so fast, the software tries to take advantage of the latest tech and sometimes older technology may not be able to keep up.
A general rule of thumb is, you want a laptop or computer that will last you at least five years. You could keep it longer and you could use it longer by repurposing it.
For web development, the type of software you’re going to use is most likely not going to need the fastest GPU or CPU, but if you want to run virtual machines, or if you’re running other technology on it that uses a lot of resources, that’s when speed becomes more of an issue.
But if you’re going to be running multiple virtual machines, if you’re going to be doing a lot of data-intense type work, then you’re going to want something a little bit more powerful. You’re going to want a better graphics card, a more powerful CPU, more RAM because you’re going to need that for your virtual machines. You’re going to need more hard drive space, ideally very fast and large SSDs.
Build Your Own Personal Computer with Windows or Linux or Both
The beauty of Windows and Linux is you could build your personal computers. I built my main workstation computer and it’s what I use when I want to work with a lot of virtual machines. It has 64 gigabytes of ram, it has over four terabytes of SSD space on it, it’s running a very fast Hexa-core processor, has liquid cooling, it gets the job done. It’s a beast of a machine, but again, it has a very specific use case. Running multiple virtual machines.
What’s good about building your personal computer is you could dual boot more than one operating system. You could do that with a laptop as well, and that’s something you might want to look into. Having Windows and Linux both running natively on your laptop.
This next part of the conversation is about productivity as a web developer. Do you want to just focus on code? Do you just want to type away at the keyboard and start creating your application or your program or your piece of software? Or do you want to be very involved in the way software runs on your system? Do you want to fine-tune your OS so that you get the maximum performance out of it? If you’re running a website, then the answer to that is yes. You want to be able to configure it to max out your optimization potential. That does take time, and that added time might decrease your productivity at first unless you start getting into scripting where you can use bash scripts and other types of scripts to automate the process for you. I definitely recommend eventually learning more about automation.
As I mentioned, software support is another factor. As a web developer, you might need to use some other types of software that will often work on Windows and macOS but may not work on Linux. There are workarounds, you could use wine which is another piece of software that you could use to use software like adobe photoshop or illustrator on your Linux laptop or desktop. It won’t work as well as using it natively on Windows or macOS, and you might be a few versions behind, but if you’re desperate to use adobe on Linux, wine might be an option. A better option is to use something like Gimp instead of photoshop, using something like Inkscape instead of illustrator, and there’s a wealth of other open-source software that you can use to get the same type of features and functionality you would out of commercial software that’s made for Windows and macOS.
Are you a freelancer? Or do you work for an agency or a company? If you’re a freelancer then you REALLY have to make a decision how much can you afford to spend on your technology and which operating system do you prefer working with? If you work for a company or an agency, often they’ll supply you with the technology you need. You’ll probably use the technology stack that they use at the company as well.
Windows for Web Development
Let’s start talking about Windows for web development. Is it a good option? Should it even be considered? If you listen to some people, they say Windows isn’t made for web development. It’s not made for that type of workflow. That’s not the case! I’ve been effectively using Windows for years. You will have to load up additional software just as you would on other operating systems. You have to configure things to work properly. Sometimes, things might not work exactly the same and that’s why for years developers said you need a UNIX type system.
Microsoft has been investing heavily in the open-source community. They even have the Windows Subsystem for Linux that makes it possible for you to run a Linux distribution right within your Windows operating system. Now, this takes away one of the major advantages that macOS have had for years. And the fact that Windows-powered pcs come in at a lower price point, it’s often the most affordable option. If you’re looking for something to get to work without breaking the bank, Windows is your best choice. And If you’re a gamer, then Windows is the way to go because even though Apple is trying, Windows is still the preferred system for gamers.
Since pricing is a factor, for Windows pc or laptop, you can pick one up for about $300 starting or you could spend thousands of dollars if you need something more powerful.
But is Windows in general, good for web development? Even if you’re not using the Windows subsystem for Linux, is it a viable option? The answer is yes! I mean you’ll need to install software right? You’ll need to do the same thing with macOS as well.
As for your favorite text editors, you’re going to be able to use VS Code, it’s a Microsoft product. You’re going to be able to use Atom, which is also a Microsoft product. You could use sublime text, PHPStorm, NetBeans, there’s a bunch of options out there.
Besides running the Windows subsystem for Linux, you could also choose to install something like VirtualBox or VMWare community edition. These technologies will give you the ability to run multiple operating systems at the same time in their own separate containers. This means you could work with your Windows-powered pc simultaneously working with Ubuntu Linux, CentOS, and maybe booting up a fedora box or a kalI Linux box. Virtualization technology makes it possible for you to work with multiple operating systems, all on one host machine.
That does change the argument, even for those who believe down to their core that Windows is not the best option for web development. You might run into some issues with NodeJS if you’re running it natively on Windows. NodeJS will work, for the most part, most packages and modules are going to work but you might sometimes run into issues and if that’s the case then just boot up the Windows subsystem for Linux or use VirtualBox and spin up a local Linux distribution and you’re good to go.
What I do recommend is that no matter what operating system you’re using, make sure to check the documentation pages of that piece of software or the programming language you’re going to be working with to see what the requirements are to get it to work properly. They’ll often have a guide on how to do it with Windows, macOS, and Linux.
What about quality and longevity for Windows? We have to remember that Microsoft created Windows as an operating system that manufacturers can use within their computers. There’s a lot of different manufacturers, from Dell, ASUS, Acer, Razer, HP, Lenovo and there’s a whole bunch of different manufacturers. Quality control is in the manufacturer’s hands. The amount of money you spend will also determine the quality of materials used. One thing I do like about Windows laptops is the fact that you can get a touch screen. It might not be the most beneficial for web development, but it does help out when you’re navigating websites, when you’re scrolling you can see how the experience is.
Besides the touchscreen, I think that you really have to focus on how good is the touchpad. The touchpad matters because if you’re going to be fighting with your computer or your laptop, if it’s not going to register the inputs that you’re putting in it properly, that could be a pain point that might make your development process more of a headache. You want to make sure that the laptop that you get has a good touchpad. This is where macOS shines. Apple is known for making some of the best touchpads in the entire industry and for a while, Windows wasn’t that good. Over time they started getting better and some of the manufacturers are using better materials like premium glass for the touchpad. You want to make sure that the laptop supports Windows precision points for the touchpad drivers and software. That’ll make sure it responds to your input and the different gestures that you put into the touchpad.
MacBook Pro – macOS for Web Development
What about Apple? What about macOS? Is macOS the preferred device for web development? Is it something that you should spend extra money to get? Pricing is very relative to where you are financially and I don’t want to say that everything depends on the amount of money you can afford to spend because you can get a high-quality laptop that’s Windows-powered or Linux powered that gets the job done just as well as a macOS operating system. But for years, macOS and Apple have had a closer relationship in essence with developers because of the UNIX nature of the operating system itself.
UNIX-based operating systems are very similar to Linux
Linux is actually a fork of UNIX and so is macOS. They share a lot of very similar features. The terminal is very similar, the commands that you’re going to input into a macOS terminal is going to be very similar to what you input into a Linux-powered laptop. There are some differences within the shell environment and some of the commands, but they’re not going to be to the point that you feel lost.
When you survey web developers who do use a mac, they typically say that they like the minimalist type design of the operating system itself. It doesn’t feel like it gets in your way. It’s easy to use, it’s fluid, it’s smooth, the build quality of the device is often better than what you’re going to find within the Windows market.
The Apple Ecosystem
If you’re interested in being part of the Apple ecosystem with the iPhone, iPad maybe an Apple watch and a MacBook Pro or something like that, then you’re going to want to make sure you have a MacBook Pro or MacBook air, that way you can easily integrate with all your other devices.
Windows and macOS can work well together
That being said you can get your Windows-powered pc or laptop to integrate with other Apple devices as well. You could use third-party software like let’s say OneDrive or you could use Word, PowerPoint, you could use those on your Windows laptop and then on your iPad. What about text messages and SMS? One of the best things about Apple is that you can start up a text on your iPhone and then continue that conversation on your MacBook Pro or MacBook Air.
Now there’s also software that enables you to connect your Windows laptop to your iPhone and you can start a conversation on your laptop that’ll still be on your iPhone, or you can make connecting the two devices seamlessly. It may not be as seamless as working in the native Apple ecosystem but it works as an alternative.
The price of a MacBook Pro is significantly higher than that of a Windows-powered laptop and definitely more expensive than a Linux-powered laptop. But with that price point comes better quality, longevity, and typically a better warranty.
Apple is known for resolving issues like replacements of logic boards, even years later. I’m talking like five years after the purchase of a product, if the logic board goes bad or something happens to it, their support tends to be second to none. I say this because I personally had the logic board of my MacBook Pro go bad and when I reached out to Apple, they had me go to my local Apple store, they looked at it, and decided it should be sent out for a free replacement of the logic board.
What about macOS Software Support?
And of course, it has support for the major browsers you’re going to be working with. macOS has support for the major text editors and IDEs you’re probably going to be using. You can use all the server software you probably need for it like you could use MAMP, XAMPP, or you can install each individual package yourself if you want. You can without a problem, use Node, NPM, git. You can use pretty much everything you’re going to need to get the job done and sometimes it’s going to work just a little bit better.
Again the terminal is so similar to Linux, when you do have to start managing servers and you have to SSH into that server, you’re going to feel right at home and that’s an important thing to remember. That being said, let’s start talking about Linux.
What about Linux as your main operating system
Is Linux an option for web development?
I know in the beginning I said that Windows has the lion’s share of the consumer market when it comes to laptops and desktops. Second is Apple with the MacBook Pro and MacBook Air and Linux just has a very small fraction of the market. But you can find distributors or manufacturers that do sell Linux-powered desktops and laptops. Because the overwhelming majority of websites are using a Linux operating system, and the best way to interact with that operating system is via the command line, it may not be a bad idea to choose a Linux distribution as your main OS.
Do People Actually end up Buying Linux Laptops or Desktops?
But again, as I said before, people don’t set out initially to purchase a Linux-powered desktop or laptop. And while they’re out there, they’re not that easy to find. You’re not going to walk into your local Best Buy or your local computer store and find a Linux-powered laptop. But we live in a digital age, just go online and you can check out companies like System76, their whole business is on selling Linux-powered laptops and desktops. And like I said, you could always take your older laptop and re-image it to use an Ubuntu system or another operating system as the main OS.
Now the benefit of using Linux besides the terminal is the fact that you’re going to feel right at home when managing your servers. Since you need to have a mirror image of your production environment in your local environment so that you can identify any issues that might present themselves before becoming critical, using Linux natively is one of the best ways to do that.
You’re also going to find that most of the software used for web development is going to work better. It’s easier when you’re working with Node and NPM and you’re going to find it easier if you want to use different versions of PHP or Python in your environment.
Isn’t Linux Harder to Configure?
With Linux does come a lot more configuration. There’s a lot more hands-on in terms of the management of the operating system itself. But that’s a valuable experience that you’re going to gain that’ll help you in the long term.
Windows vs macOS vs Linux – Pricing
Let’s quickly look at some price points of similarly powered laptops. Let’s look at the Dell XPS, the Apple MacBook Pro, and a Linux option.
Dell XPS 15-inch Touchscreen Laptop
The 15-inch Dell XPS laptop is going to cost about $3,500. This version has the 10th generation intel core i9 processor, a GeForce GTX 1650-TI graphics card and 64 gigabytes of DDR4 ram, 2 terabytes of NVME solid-state drive. So about $3,500 for a nicely configured Dell XPS.
MacBook Pro 16-inch
Now if we look at the MacBook Pro, mind you the MacBook Pro 16-inch does need to get updated. It’s probably slated to get updated in the next couple of months. But for a similarly powered laptop, you’re going to be looking at about $4,900. So far we’re talking about a difference of $3,500 to $4,900. That’s a fourteen-hundred-dollar difference right there.
Linux Laptop from System76
Now let’s look at Linux. If we want to get a nicely powered Linux computer, let’s make the specs the same, try to keep everything as close to being equal as possible. We’re going to be looking at 3,718 dollars.
The Pricing Results are Interesting
This is interesting, in this case, to get something that’s similar, and again it’s not exactly the same right, there’s going to be differences, but to get something similar in tech specs, we’re going to see that the Dell XPS is the more affordable option. Even while being nicely specked out versus the MacBook Pro which is the most expensive of the three, and even more affordable than the Linux system fully specked out. That being said if you choose a lower-end configuration, if you don’t need the 3080 graphics card, then you can lower that price significantly and the same could be said for Dell as well.
If you really want to get started with Linux without breaking the bank, you can try using a Raspberry-Pi which will cost just about $120 for a full kit and you’ll be able to learn how to use Linux.
What About Peripherals?
One thing to remember, if you’re the type of person that likes to use a lot of different peripherals like I enjoy using different keyboards, secondary keyboards, and different types of trackballs, some of those are made specifically for Windows and might not work well with macOS or a Linux distribution. The driver support might not be there. You might be able to get around it by writing your own drivers and get some of the functionality you need, but it’s not going to be something that is a smooth transition.
If you like using macro keys, macro keys are awesome, they’re like keyboard shortcuts but to the next level, then your best option would be a Windows laptop or Desktop.
Our deep dive discussion on Which is the Best Operating System for Web Developers is almost complete.
That’s a lot of stuff we just covered and the question is not really answered because there is no perfect operating system for web development. It comes down to your personal preference. It comes down to your purchasing capability meaning the price point, is it something you can afford? And even if you can afford it, do you need something that’s fully specked out? Or can you do the work with something a little bit more affordable, lower-powered, but gets the job done?
What about Windows Pain Points?
It’s true, back in the day it was more of a pain point to get Windows to play nice with the different types of development tools that web developers like to use. But since Microsoft has been focused on the open-source community, they purchased GitHub, they are heavily invested in VS Code, they purchased Atom, they made it possible to use Linux in Windows with the Windows subsystem for Linux, and of course, you could always use VirtualBox, then the lines between Windows, macOS, and Linux, those are blurred now.
I know we covered a lot, I know I mentioned a lot, but the gist of it is, the best computer and the best laptop for you to use, is the one that you currently have. Then determine if you need to level up when you have the money to do so.
Or maybe you’re like me and enjoy working with each operating system. Using each OS is a great way for you to understand the pro’s and con’s of each OS and also to easily test your projects natively on each system.
What do I recommend to Web Developers?
My number one recommendation, spend some time if you can with each operating system, see which one feels better for you, and then choose one. Unless you’re like me and you need a computer science lab that integrates all operating systems. That’s a topic for another video and article.
You should go all-in on one operating system, go deep into that operating system, figure out how it works, master one operating system will increase your productivity level.
I guess the answer to the question “which is the best operating system for web developers”, is, the best operating system is the one that you feel right at home with.
All right if you like this article and the video that also focuses on this topic, then please share with others, share your thoughts, and subscribe so you’ll be the first to know when I release new articles and videos.
Thanks again for your time. Happy coding!