I have a 4 year old HP pavilion which until recently, was craving for an upgrade. I had also been wanting to get rid of Windows for the longest time, so killing two birds with one stone, I replaced the existing HDD with a new SSD and performed a clean install of Pop_os! developed by System76 on it (No dual booting). I now use the HDD as an external USB drive with the help of a case, eliminating any worry of data backup.
So why did I not just reinstall Windows on the new SSD ? Well let me explain
This holds good not only for the operating system and the kernel, but also for all the software that come bundled with it. When I first bought my laptop, I realized that it did not come with the MS office suite free which means critical functionality like editing documents, excel sheets etc were locked.
I had to turn to open sourced alternatives like LibreOffice writer, which is coincidentally the default document editing application on most Linux distributions. Not to mention the plethora of paid/proprietary software on windows including Antivirus (Which you probably wont need for Linux as malware affecting Linux is rare, probably owing to its unpopularity currently).
While the Gnome desktop environment, the default for pop OS, has its fair share of criticisms, it does hold true to its values of getting out of your way to get work done. Gnome has focused on building a very minimal yet functional desktop environment which is intuitive enough for the average user. The layout may be a bit jarring due its departure from the traditional windows design, but once you start using it, you’ll learn to understand that its almost smartphone-esque in its look and feel.
If the default design and working is not up to your liking, then you can tweak and customize it however you want. You can get it to behave like MacOS or Windows complete with a start menu. This is one of the advantages of having a completely open sourced operating system, is that you have complete freedom over its customization. Think of it as downloading new launchers/icon-packs/skins on your android phone. You can have it look however you want if you are willing to put in some time for personalisation.
Notifications are located at the center of the top bar and applications are accessed through an application drawer.
Pop OS, as of its 20.04 release, has also released a window tiling manager that is baked into the operating system by default. This allows you to tile and organize all open windows at the click of a button which is extremely useful when multitasking.
It provides a comprehensive list of keyboard shortcuts that are easy to pick up and dare I say even quite intuitive. Here are some shortcuts that I use everyday (while some are similar to windows shortcuts, it is worth noting that the default gnome is built in such a way that it encourages their use better than windows in my opinion) :
super : Opens recent applications view. super + tab : cycles through open applications. When in tiling mode super + g : toggle floating mode. super + arrow key : toggle between active windows. super + O : change window orientation.
These were just a few, however you can find the rest on System76’s website
It should not come as a surprise that the kernel used by most servers as well as all phones using android is much more powerful and capable than Windows.
The terminal might seem daunting for someone who has never used it before, but the beauty of user friendly distributions like Pop OS is that you don’t have to! You can navigate and control the OS through the GUI like you would in windows or MacOS. However, that doesn’t mean that you can’t benefit from at least trying the terminal out. So here are some basic commands that can help boost your productivity :
cd - used to change directories ls - list directory contents pwd - print name of current/working directory rm - remove files or directories mkdir - make directories rmdir - remove empty directories clear - clear the terminal screen touch - change file timestamps ( Can be used to create a new file) kill - send a signal to a process ( provide the PID as an argument) top - display Linux processes (task manager)
Compared to Windows, Linux uses far less memory on boot and that results in a much more responsive system, even when several applications are open and/or running in the background.
A lot of my development, especially in my most recent internship, involved using an android emulator which takes upto 2gb of your ram since its basically a virtual machine. This coupled with windows’ almost 4gb ram usage on boot was a recipe for disaster. Linux not only overcomes this but also provides an option to make it an even better experience. The Android Emulator can use hardware acceleration features to improve performance, sometimes drastically.
The main way of installing software on Linux is through package managers. Think of package managers as an app store like the Google play store or Apple’s app store except all the applications are free and so are the updates. You can install/update/remove/purge applications with just a single line of command on the terminal and not have to worry about installers, exe files etc.
It is also much more secure than windows as you are required to enter the lock password anytime you download/install or uninstall a new piece of software. This way is certainly better than displaying a pop up saying “Do you want to allow this app to make changes to your device ?”.
So instead of scouring countless websites to find that one 64_bit.exe all you need to do is sudo apt install anything you need.
This is probably the main reason why I switched over. Linux simply does a better job of supporting developer activities a lot better than windows. Installing new development environments be it Flutter, Angular, React, Android etc is made extremely easy and painless with the terminal and package managers.
In Windows, you might have to configure environment variables, build paths, sdk paths manually all of which is automated in Linux. So with the environment setup out of the way and taken care of, I can focus on actually developing software.