Linux for Web Development Guide

Last Updated on April 26, 2022 by David

Many years ago a good friend of mine named his pet rat Linux. I had heard of this mysterious operating system before, but tales of days spent configuring hardware drivers, and cellar-dwelling neck beards scared me away. Why bother using it, never mind naming your rat after it!? In this guide we will discover:

  • Exactly what Linux is, and how it differs from Windows and Mac.
  • Why we should use it for web development.
  • Exactly which version of Linux is best for the job.

What exactly is Linux, and how is it different from Windows and Mac?

linux-kernel-layout-image

An operating system is the layer of software that sits between your computer hardware and the applications that you use on a day-to-day basis. It lets the user do things like run multiple programs in different windows and use hardware like joysticks and printers.

It is common to refer to Linux as an operating system, but the title ‘Linux’ refers to the actual kernel, the heart of the operating system that mainly talks to the hardware. The rest of the software commonly known as Linux comes from many sources, but in particular from the GNU project headed by Richard Stallman. The GNU project aims to promote the four software freedoms for users:

  1. To run the programs
  2. To study and change the program in source code form
  3. To redistribute exact copies
  4. To distribute modified versions

This is the ideological opposite of Microsoft’s Windows, which some argue exists to enslave and spy on its users.

One big difference between a Linux system and a Windows or Mac system is that you get to choose the desktop environment. This might seem a strange idea at first, especially if you are used to thinking of the desktop as the OS!

In Linux, the kernel and the desktop environment are two separate things. You can choose your own, the most popular being Gnome, or not bother and just use a terminal.

Why use Linux for web development?

Linux has different roles for web development:

  • Running on your server, for use in ‘back end development’
  • Running on your home desktop or laptop as a development machine using a code editor and a browser

Linux is probably the OS that your server is going to be running, so it makes complete sense to create your backend application/site on Linux too. As a development machine running a desktop it is also a perfect choice.

Here are a few good reasons to use Linux:

  • Linux is stable, secure, and 100% free and open source.
  • Linux can be configured exactly how you want, you can change anything from the choice of the desktop right down to re-writing the supplied software.
  • Windows 11.

If you are a web developer, you are probably the kind of person who would love Linux. When I moved over from Windows I was shocked at how much better it was in so many areas. The control it gives back to the user is amazing. It just feels like it’s your computer again.

The only good reason not to switch I can think of is the initial investment of time. If you are used to Windows or Mac then you are going to have to learn about how to use a new operating system. Linux is no harder to master, but some things are done differently. You will be rewarded for your effort, but not everyone has the time to put in to get that reward.

You will probably need help setting up Linux to do what you want. As Linux is not so popular on the desktop, it means there are not the same amount of high-quality online guides as there are for Windows and Mac. To compound the problem, different Linux distributions are set up in different ways, so you not only need to find a Linux-based guide, but also a guide that relates to your chosen Linux distribution.

What is the best Linux distribution to use?

There are a lot of different distros and a lot of different opinions on which is the best. Many of the smaller ones are based on larger ones with a few things tweaked and different software by default.

Here are the main distros, and the most popular smaller ones that are based on them:

DistributionBased onSupport
MintUbuntu9 months
LTS: 5 years
Debian 3 years
UbuntuDebian9 months
LTS: 5 years
openSUSESUSE18 months
LTS: 3 years
ElementaryUbuntu9 months
LTS: 5 years
ManjaroArch LinuxRolling release
Fedora 1 year approx
ZorinUbuntu9 months
LTS: 5 years
CentOS / Rocky LinuxRHELUp to 10 years
Arch Linux Rolling release

In my opinion, Fedora is the best choice for developers.

Fedora was designed for developers from the ground up. It comes out of the box with everything you need. Nearly everything is installed by default, and any extras needed are contained in the official Fedora repositories.

The world of web development changes fast, and applications and frameworks need to stay up-to-date. Fedora takes care of all of this for you. There is a dedicated team checking that dependencies do not clash. All you need to do is perform a system update and everything is intelligently updated for you. Fedora tracks all the important programs like Node.js and PHP and keeps your development environment fully patched and up-to-date.

In the next article Configuring Fedora & Localhost Setup, I will go into detail about how to set things up for my favorite Linux distribution Fedora.

Conclusion

  • Linux refers to the actual kernel of the OS. There are many desktops built on top of it.
  • There are different distributions of Linux, like Ubuntu and Debian.
  • Stability, security, and the open-source ethic make Linux what it is.

I hope you will make the switch to Linux. By doing so you would be supporting free and open-source software, and helping to loosen the stranglehold that Microsoft and Apple have over personal computing. Linux can take over the world of software development if enough people start using it.

I hope you have found this guide helpful. If you would like to employ me for any upcoming projects, please do not hesitate to get in contact. Please leave your feedback on this guide below, and I will be sure to take it into account for future updates.

Leave a Reply

Your email address will not be published. Required fields are marked *