Which Linux should I install being a React developer

Divyesh Parmar on September 26, 2018

I'm using Windows 10 on my HP laptop with Amd A12 processor and only 4 GB ram. I want to know which OS you guys use for developer work and which... [Read Full]
markdown guide
 

I'm sure you will find plenty of resources online, but I'll add my advice:

I was in your shoes, kind of, ages ago when instead of React it was jQuery.
I had many issues being a full-stack developer on Windows (the same is in 2018, bottom line Windows is for users not developers, just my 2cents).

I recommend Ubuntu.

Most of my peers I know use it, I use it for years, devops recommend it (the ones I know), the Cloud uses it (most popular choices of VMs come preinstalled with Ubuntu or a Debian custom fork).

It is popular, this means you will get help faster, it is friendly (as a linux could be), and you will find it compatible with more web libs/frameworks as in they already have prebuilt packages for it.

 
 

It looks that it will be abandoned the 2nd time too.

A Linux distro with 8 contributors, strange website and small OSS presense, I would not install it.

Yes, depends on personal preference. I really liked the overall experience.
BTW I did not know that solus has only 8 contributers.

 

I installed it on my mom's desktop! Works really well and it seems to have necessary applications for web development.

 

I am kind of fed up with Ubuntu UI though otherwise i don't mind using it at all. And yeah i totally agree with you I'd definitely need something more helpful

Because previous times half of the times I couldn't install some package because ir gave some error like

E:/ disk something

So i had to do sudo apt get update and install to make it run agains haha

 

I have Kubuntu with KDE Plasma at work and I'm very happy with it. If you know Ubuntu but don't like the default desktop, you might want to try other desktops before switching to a different distro altogether.

Or, you know, there's the Hannah Montana Linux.

 

I run Ubuntu with XFCE (which is slightly different from Xubuntu)

This is the beauty of linux.

 

Which one? Since 17.10 I think they removed the Unity one, and added a Gnome 3 I think is called (the one with the clock in the middle of the screen).

I can say I used a variety of web-related frameworks along the years (I'm testing many new stuff), tools and servers and I didn't had to compile a single package (by hand).

 

You can easily change Ubuntu's default UI. But then again, it is Ubuntu's only advantage...

Which Linux distro outside of Ubuntu has the most pleasant UI in your opinion?

Or one that you think others would find most pleasant?

With the effective end of Unity, all Linux distros have the same UI available for installation. If you want to know which default (or "recommended") GUI looks best to me, I'd probably choose elementary OS - it is enormously mac-ish, but I can't deny that it is very eye-pleasant.

I probably still would not install it. It uses systemd.

I love systemd. Too many benefits to count. Gone are the days of a tangled web of tightly coupled bash scripts starting a system. You can do some amazing things with systemd. I'd give it a look over and ignore all the negative hype trains, give yourself a chance to form your own opinion.

And it regularly breaks systems - and gone are the days of having simple "text in, text out" pipes for log files.

The most eye candy is available with elementary or deepin, with the ability to install deepin desktop on other distros than deepin itself.

 

tldr; it's ultimately up to you, but I can give you my 2¢

These days, my primary concerns when choosing an OS are:
1) how easily can I find the software I need to get work done?
2) how quickly can I troubleshoot issues I run into, so I can get back to work ASAP?
3) to what extent does the OS allow me to configure my system to my liking?

With these criteria in mind, I've been really happy with Arch

Arch Linux

Pros
  • very large, active community of users - there's almost always a solution to whatever issue you might be trying to troubleshoot
  • great official repos + thousands of community-maintained packages in the Arch User Repository
  • rolling release - with regard to number 2 up above: Sometimes, I've found that little issues / minor bugs just kind of "work themselves out" as I regularly update my system.
  • pacman, my favorite package manager ever
  • really nice and simple, once you get the hang of it
Cons
  • no installer; there's a bit of a learning curve.
  • you might not get things just right the first time.
  • can be a bit of a "timesink" OS if you're not careful ;)

If you're curious, I'd highly recommend grabbing an .iso and giving it a try in a virtual machine. You could probably get the hang of it in one weekend.

I don't recommend a derivative like Antergos or Manjaro - they work fine for some people, but I think you're ultimately better off taking the time to learn Arch.

If you're not up for learning Arch now, I'd recommend either Solus or Ubuntu. Last time I used Solus I was really impressed with it, and would probably install it I wasn't using Arch

You probably can't go wrong with Ubuntu - the community is really big + really supportive, and there's a lot of good software in the repos. I was actually using it for a couple months. It was pretty nice overall, but I had a lot of issues with some Snap packages, and found myself building Slack, DataGrip and others from source. Eventually, I realized it was time to go back to Arch.

 

Another point in Arch's favor is that the wiki is some of the best documentation available for Arch and for Linux in general. But it is a bit of a commitment if you just want your operating system to run things for you.

 

Installing arch is trivial.
Much easier than installing Docker (in a proper way that doesn't give it root access and where it doesn't store its images and filesystems on the root filesystem)
Choosing an AUR client is also harder than installing Arch by manual.

 

I went with Manjaro a year or two ago after having been a debian user for years. I've ended up stripping out all the Manjaro-specific stuff and am basically running Arch. From an general user's point of view I don't think I'd see a lot of difference once you get to a desktop.

 

hmm I mostly thought that Arch isn't that stable and all so I parted my way from that learning curve. Thank you for sharing you experience and yeah I am definitely going to first try it in Virtual Box.

 

Arch is "stable" as there were very few broken packages in years - I used arch from 2008-2016. And one or the other was broken, but not worth mentioning on a global scale.
OTOH, I am using OpenSuse Tumbleweed for 2 years and had no broken package. If you want to say, you coukd argue it beeing more stable: 0 is less than one broken package or so.

 

Up til today I don't get my head around the decision to dismiss their installer. Although only having a curses interface, arch had at least for years an installer.

Ditching it, because of KISS or whatever nonsense reason is beyond my capabilities to understand.

 

I can't stay away from Arch. I drink the arch coolaide and contribute a few AUR packages. Arch on the home and CoreOS+Docker for the clouds.

 

As many on the comments suggested: AtergOS.
I've been using it for almost four years and I love it. First I tried pure Arch and I really liked it but it tends to be unstable really quickly if you not pay attention (I broke my system two times). Then I went with AntergOS and I fell in love. The installer lets you choose any desktop env. The Arch Linux Forums are BIG. The documentation is BIG and concise. You will find the solution for any problem there. And also you have AUR where you can find almost any app/package that is not in the official pacman repositories. For system upgrades you have to only use this command: yaourt -Syau.

I really like to have minimalist desktop envs, here a screenshot:

screenshot

(I use Gnome with Plank)

 
 

I had forgotten that! Unfortunately I think AntergOS uses yaourt as default but here are some alternatives. I'm giving a try to yay. Thanks for your warning!

 

Omg this looks something I'm craving and your enthusiasm has really motivated me i feel glad an confident now to try it for sure. I hope it doesn't make me fall for other quirks while my web development goes on.

 

It may will. But you will get use to it really quick.
Here is a list of a must have Gnome Extensions to achieve a minimalist desktop:
Hide Dash
Hide Workspaces thumnails
Top Panel Workspace scroll

And turn off the "Dash to dock" extension if it is enabled. I will write a post about AntergOS soon.

Also just yesterday night I booted with AntergOS it didn't let me dual boot saying it needs a GPT partition. Then I tried Solus OS and it didn't even recognize itself on the disk. so then I made Fedora bootable and installed it but just after that since I had to turn on the Legacy support on, my Windows 10 disappeared from the grub or boot options.
So then I again live boot with the pendrive to check whether my Windows drives are there on the disk or not. Then I used my Windows Recovery disk and it installed it in a span of 4 hours so now I'm typing to you this on my Microsft Edge Browser (while chrome downloads in background).
I think my dream of starting the development on Linux systems will be shattered so much.
I read articles/blog regarding solving this online but windows needs UEFI method to boot and nothing else.

Oh that's bad. I had running windows along side with linux for a while but then I deleted windows. If I need to use windows for some .NET specific tasks I have a virtual machine. But, to get running both you have to enable the legacy mode. Install Linux and then use a grub editor (in case your linux does not detect windows automatically) to set a boot entry for windows. Maybe Ubuntu is less problematic in that way and you can achieve the same minimalist desktop env I showed to you

 

gnome extension maximus and hide top bar are awesome too.

 

Hey dude, try antergos, its clean and fast as Arch, you can choose your GUI on installation, and always will get the fresh packages.

It's not bleeding edge as Arch, but is good.

I prefer it on home, than mint on work.

 

Thank you for sharing it it does have a neat UI. I didn't know about it completely

 

Have tons of software with GUI, you will not have any problem :)

 

I want to know which OS you guys use for developer work and which will be the most stable for me.

I use Windows 10. :-) However, with 4 GB RAM, it might be not that easy to use, as you have already noticed.

If you absolutely require Visual Studio Code (which I could understand - it is a nice almost-IDE, although it is too resource-hungry for my needs), Linux might be your best choice indeed. I would like to recommend Void Linux to you. It is a rolling and very current distribution like Arch, but it comes without the burden of systemd and it is really lean and fast. Here's how to install VSCode on it. :-)

(I switched my only Linux machine from Void to Gentoo for different reasons - but I really miss Void sometimes.)

 

Oh man thank you so much for sharing your experience. It is always like an intimate relationship for me to choose an OS per se. Yeah VSCode seems the culprit here, I'd start checking out others then if that's the case. Do let me know which one (IDE) do you use

 

I wrote an article about IDEs (and why I like acme2k). I usually use that when I'm on my Gentoo machine. On Windows, I keep switching between acme2k and GNU Emacs. I had been using Sublime Text 2 and 3 (beta) and I keep an eye on VS Code, but I always find its performance disturbingly low. I have a 2018 laptop, why does VS Code need several seconds to properly start? ...

No, it's really not for me. :-) But I can't tell you what suits your needs best, so I won't.

 

woow! I never read/heard about Void Linux definitely I will give it a try!

 

If you want to start working fast and is your first time with Linux, the answer is Debian with LXDE or XFCE as desktop enviroment. Why? Because you don't need to worry about drivers, is stable, low on specs and there are official precompiled packages (and support) of any major software vendor.

 

My 2c. I would not recommend anything running Gnome. The Gnome developers have been copiously messing it up for years now, removing simple things that the community didn't want removed.

I would suggest any system that runs KDE, as it's currently the most advanced Desktop Environment available. KUBUNTU would be a good one to start with, perhaps on version 18.04 LTS so that you don't have to go upgrading it any time soon.

 

hmm I have the same kind of fear about GNome containing OSes. Also if you can read my edit of my experiences to install 3 OS and failed at it and if you can help me with it, it would be amazing

Also just yesterday night I booted with AntergOS it didn't let me dual boot saying it needs a GPT partition. Then I tried Solus OS and it didn't even recognize itself on the disk. so then I made Fedora bootable and installed it but just after that since I had to turn on the Legacy support on, my Windows 10 disappeared from the grub or boot options.
So then I again live boot with the pendrive to check whether my Windows drives are there on the disk or not. Then I used my Windows Recovery disk and it installed it in a span of 4 hours so now I'm typing to you this on my Microsft Edge Browser (while chrome downloads in background).
I think my dream of starting the development on Linux systems will be shattered so much.
I read articles/blog regarding solving this online but windows needs UEFI method to boot and nothing else.

 

I would recommend xubuntu. I got a second hard rive on my pc with a xubuntu on it and have loved it for reactJS/node/react native and android development. vscode or atom(nuclide) run pretty smooth and os is better at reserving RAM for my coding processes.

lubuntu is one of my favorites as well, and wayyy more efficient with RAM, but I wouldn't recommend for someone asking this question as it can be a pain to get your UI just right.

Arch Lunux is amazing but man the time from fresh boot to productive can take an entire day. Then you will spend time maintaining you system. I only recommend arch for people who are very comfortable in linux.

Ubuntu is great but can feel a bit anointing with only 4GB of memory. After installing all your tools you will probably have less than 60% of your memory left because of the UI and other bloat. Ubuntu runs great is you have a dedicated GPU and at least 8BG of memory. Below 8GB and without a dedicated GPU your system will freeze from time to time.

Most people when coding will have a browser open with 5-10 tabs open, music playing(spotify, pandora, YT), their editor (VSCode, Atom) and a couple of node processes running (npm watch). If you're looking at this setup with only 4GB of ram, you need a light system to power through an 8 hours day without freezing and UI hangups.

 

wow thank you for a neat personalized explanation. I am looking at xubuntu and it really feels neat and light-weight.

and yeah I would like to share my experience last night that I had so please can you tell something on it?

Also just yesterday night I booted with AntergOS it didn't let me dual boot saying it needs a GPT partition. Then I tried Solus OS and it didn't even recognize itself on the disk. so then I made Fedora bootable and installed it but just after that since I had to turn on the Legacy support on, my Windows 10 disappeared from the grub or boot options.
So then I again live boot with the pendrive to check whether my Windows drives are there on the disk or not. Then I used my Windows Recovery disk and it installed it in a span of 4 hours so now I'm typing to you this on my Microsft Edge Browser (while chrome downloads in background).
I think my dream of starting the development on Linux systems will be shattered so much.
I read articles/blog regarding solving this online but windows needs UEFI method to boot and nothing else.

 

pop_os is an ubuntu variant with a nice UI. Maybe try that?

or Kubuntu?

 

I never knew about pop_OS thank you for sharing that.

 

the guys behind pop_OS sell notebook with it installed too

 

which linux is always a point for debate but if I were you (and I develop react on Linux so I am not sending you down any old rabbit hole) I would run Ubuntu or Debian on an old desktop or ancient server as a docker host and literally use docker environments or VMs that you can toss if it gets mucked up without reinstalling your workstation weekly.

Arch will just be more time tinkering and fixing than developing at first (and personally I don't like PacMan) Some people like Fedora for this sort of think but I've never been a huge fan despite the improved package managers. Mint is stable, it can be bloated but bloat is DE thing (KDE is bloated to death. I use PopOS (ubuntu based without Canonical involved thank God, they release buggy garbage sometimes for the community to essentially develop for free) with Budgie over the top cause its minimal at install and I fill it with my needs dropping my install scripts with a ton of piped Ys and go eat dinner, works GREAT and styles really well.

I ssh -X to a VM with Lubuntu preconfigured for my dev needs for React.IDE, dependencies, node, yarn all turnkey but not my daily driver. I use Debian for other languages like Python, Perl, etc. Plus I like it more than ubuntu and on containers lately alpine if its a throw away cause its package manager is FAST. but it doesn't age well if preserved

Either way, write out a shell script that installs everything your dev environment needs and save it elsewhere (external, flash, its only a few KB). Being able to drop a script and press y every few minutes beats trying to remember your whole dev env when infuriated after a crash (they happen on all OSes in the right contexts, some devs tend to participate in even)

 

Wow you really gave me new thoughts on writing a new script which will always help me install my dev environment needs. So what choice I got from your experience is Debian with Budgie desktop environment.

May I know how do I write that kind of script which will help me install the basic requirements for every project or for the dev setup.

Also just yesterday night I booted with AntergOS it didn't let me dual boot saying it needs a GPT partition. Then I tried Solus OS and it didn't even recognize itself on the disk. so then I made Fedora bootable and installed it but just after that since I had to turn on the Legacy support on, my Windows 10 disappeared from the grub or boot options.

So then I again live boot with the pendrive to check whether my Windows drives are there on the disk or not. Then I used my Windows Recovery disk and it installed it in a span of 4 hours so now I'm typing to you this on my Microsft Edge Browser (while chrome downloads in background).

I think my dream of starting the development on Linux systems will be shattered so much.

I read articles/blog regarding solving this online but windows needs UEFI method to boot and nothing else.

 

I'd possibly go for Ubuntu, Fedora or Elementary. Given your description, all you need is a simple desktop for running Chrome and VSCode so that should work on any distribution you can lay your hands on, and these three seem the most straightforward to get started with, out of the box.

All along the lines, however, I'd reconsider either my choice of tools or my hardware setup; both VSCode and Chrome with a certain amount of applications open are utterly heavy these days and might be just too big for only 4 gigabytes of RAM, no matter which OS you use.

 

Yeah that's true, so much true. I might need to just update RAM hardware. And try everything else.

Thank you for sharing your experiences

 

Be wary of Gnome. It's single threaded and that means any extension can kill your whole desktop and it means you can experience UI lag. There is no separate UI thread. If you don't use a bunch of 3rd party extensions it's an ok desktop.

 

On a global scale: it doesn't matter.

I settled down with OpenSuse Tumbleweed.
Why? It's stable although daily updating (aka rolling release) because of OBS and openQA: continously building the "current version".
So far - after about 2 years - a package never was broken.

Beginner friendly installation: fire and forget style.

When some fancy thingy is not directly available in the main fundus of things, you could easy extend.

Install once and be happy 😊

 

Remember this.

  • When you are using UEFI mode, It's recommended that you keep your partition table in GPT format and when you are using Legacy Mode, you keep your partition table in MBR format.

MBR is kind a old and GPT is new thing. Now by default mostly, when you buy laptop it comes with UEFI enabled and if you install Linux in legacy mode and boot it obviously you won't see your Windows because it is in different mode. To boot into windows you need to change from legacy to UEFI.

So you need to install both Windows and Linux in the same mode. That's how you get option to choose while booting.

If your partition format is MBR and you want to convert it to GPT. There are softwares available that can do that. Just google and you will find ton of those.

I have some HDD problems and because of that I can't install any other linux except Ubuntu. Don't know why. But I don't like Ubuntu that much and I want to use Fedora. Currently Windows Sub System for Linux or WSL is working pretty good for me.

 

Checkout Fedora & Solus. If you don't like gnome then go with KDE or Budgie.
I would prefer Budgie. It is a beautiful user experience and Solus comes with default distro of Budgie out of the Box.

 

Oye launde thanks for sharing I didn't know about it.

 

debian, fedora or ubuntu would be my top flavors to use if I wanted out of the mac world.

 
code of conduct - report abuse