No, you do not need Windows to develop with JavaScript

The desktop operation systems market is split between 3 major players: the monopolistic behemoth Microsoft with its Windows, pricy Apple with macOS and a myriad of Linux distributions, both community-run and commercially supported. In this article, I will try to convince you to try Linux if you are an active Windows user by giving you very good reasons and busting some myths.

Environment consistency

When you develop with JavaScript, either backend or frontend, your code will go through a Linux environment in most cases. If it’s the backend, a Linux server will be running it. If it’s the frontend, the browsers will be running it, but the CI/CD pipelines, testing, and building will also happen on a Linux container. When you use Linux on your development machine, you can be 100% sure that your code will behave the same way outside your computer and you do not have to worry about platform inconsistencies.

Peace of mind

Linux kernel, along with most major distributions, is 100% open-source. It has a huge community, as well as corporate involvement, that constantly keep an eye on and issues that may arise, particularly the security ones. Of course, the system can only be as secure as its user, but, all other things equal, Linux is way more secure than Windows in terms of both numbers of exploits and vulnerabilities. Still, no system will give you 100% protection, and it is important to remember that the most secure computer is the one that is turned off.

So, Linux will keep your files safe from hackers, but this is not all. It will also keep your files safe from advertisers, government and any other interested party. Windows is bloated with telemetry and spyware, which is something that is not tolerated in Linux. Since it is open-source, you are welcome to look for yourself.

Performance

Regardless if you have a 16-core AMD Threadripper or an Intel Core m3, Linux will simply be faster. And, since it is configurable to the last bit, you can set it up specifically for a particular task (say, machine learning or music production) and enjoy even more notable advantages. Additionally, it’s system requirements are also so ridiculously low, you can run it on any hardware at your disposal.

Customizability

I touched customizability in the last paragraph, but it deserved a section of its own. Linux can be anything you want, a development machine, a gaming console, a coffeemaker, a smart TV, a smartphone and many other things. You can fine-tune every component of the system, having full control over what runs, when does it run and what does it do.

Users in Linux can control everything: your desktop environment, choosing between user-friendly GNOME, robust KDE, lightweight XFCE or many others. You can change your command prompt, bootloader, display server, security and firewall providers, software sources, filesystem and anything else that comes to mind.

But it does not have any software…

Not anymore. With the rise of cross-platform development, there had never been a better time to develop for Linux. Many popular apps that JS developers use, including VS Code, Slack, Trello, GitKraken, the JetBrains suite, Skype, Discord, and many others run perfectly well on Linux. If you are into gaming, Steam supported Linux for a while now, and the number of games ported to it rises every day.

If you absolutely must use a Windows app, you can still run them using Wine, a Windows API bridge for Linux.

But it is ugly…

I am just going to leave this here:

Elementary OS running Enlightenment
Ubuntu running GNOME (credits to u/69shaolin69)

But it is so unfriendly for beginners…

While that used to be the case, things have gotten way better in recent years. If you are a beginner, go ahead and try Ubuntu or Elementary OS and you will be shocked by how intuitive and easy to use they are. If you want enterprise-level stability, openSUSE may be the way to go. For those who know the ways of the force, Arch Linux or Gentoo are for you.

But I absolutely need Windows for %specific task%…

Just because you use Linux, does not mean you have to let go of Windows completely. You can install both systems on your computer and choose between them when you start. This is a very popular feature and is supported out-of-box with no additional setup for all major distributions. If you prefer a less intrusive way, you can try out Linux in a virtual machine using VirtualBox.

Ok, you convinced me, how do I get started?

Linux setup instructions are out of the scope of this article, but here are some links you will find useful:

  • https://medium.com/@dancurrotto/getting-started-with-linux-162e0f70e20c
  • https://medium.com/better-programming/linux-survival-guide-for-beginners-c18bfd982036
  • https://helpdeskgeek.com/linux-tips/an-introduction-to-linux-for-beginners/
  • https://itsfoss.com/best-linux-beginners/

leave a comment