loading...

Why I switched to Linux full time

vineet192 profile image Vineet Kalghatgi ・5 min read

My current homescreen setup
My current homescreen setup

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


1. Linux is completely free.

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 is not even needed for Linux because it is so secure).

2. Pop_os! gets out of your way.


Gnome multitasking with virtual desktops

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 panel.

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 :

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

Pop OS shortcuts

3. Linux is very powerful and secure

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.

Linux supports all the major programming languages ( C/C++, Python, Java, JavaScript etc) and possesses a much more powerful and versatile terminal than windows. Since Linux was built with servers and server administrators in mind, one can navigate the entire operating system using just the terminal. Something which would be an immense pain in the neck in 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)

4. Linux is lightweight

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.

Memory usage with terminal and screenshot app open
Memory usage with terminal and screenshot app open

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.

5. Package managers are way more organised that .exes and .msis

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.

6. Linux is developer friendly

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.

Posted on by:

vineet192 profile

Vineet Kalghatgi

@vineet192

Android and web dev with a love for all things software

Discussion

markdown guide
 

I love it when people talk about and promote Linux!
Kudos

 
 

I like Linux and use it for day to day tasks. That being said, I use it in a VM (I actually run several simultaneously), which allows me to make backups, snapshots and whatnot easily. My VMs are hosted on Windows 10.

While it's nice to read about people switching to Linux, that article is full of inaccuracies. Windows supports the same programming languages and Linux for example. MSI and EXE installers are actually better than rpm, Deb, pkg and odd tar.gz in the sense that there's a single format.

Windows is more automated than Linux. Install Go on Linux for example and you still have to edit your .zshrc or .bashrc, etc.

Linux is great, but clearly you don't know what you are talking about.

 

"MSI and EXE installers are actually better than rpm, Deb, pkg and odd tar.gz"

.rpm and .deb files are not "official" ways to install software. This is a perfect example of someone claiming Windows superiority while demonstrating their lack of understanding on the Linux ecosystem. rpm and deb files should only be used in very specific circumstances (as in, you have a specific need and understand what you're doing). Otherwise you should only be using the respiratory. If you really need to install software that's not in the repos then you can download the AppImage or Flatpack for the program you need. Most applications are available in those formats also and they are universal among the major distributions.

"Windows is more automated than Linux. Install Go on Linux for example and you still have to edit your .zshrc or .bashrc, etc"

This is a joke, right? So the install script you used for Go didn't update the environmental variables on your system and somehow that means "Windows is more automated"?

"clearly you don't know what you are talking about." -> ditto

 

Not a joke Bud. Try installing stuff like Rust, Node etc. For the most part you will have to modify your .bashrc.
Don't even get me started with all the software that doesn't even have an install (those tar.gz ones for example).

Not sure how does one use a "respiratory"... maybe you meant a repository? Do you actually even understand how apt, yum, zipper et al. actually work? Try installing chrome with apt... or things like Redis-insight. RPM and DPKG are hard??? Now that has to be a joke.

Looks like someone peed in your cereals, and maybe before blowing a fuse, you may want to read the whole thing. I did say that I use Linux for day to day tasks. I only use Windows to host my VMs. Am I bashing Linux? no. Am I stating Windows is superior? no, despite what you're imagining.

/smh

"Try installing stuff like Rust, Node etc."

I have both of those installed on multiple systems and I've never needed to mod my .bashrc file.

"Don't even get me started with all the software that doesn't even have an install (those tar.gz ones for example)."

You mean software distributed as source code only? Yes, those can be annoying for the average user, and even the experienced one. But that's entirely on the dev.

"Not sure how does one use a "respiratory"... maybe you meant a repository?"

Yes, I was on mobile.

"Do you actually even understand how apt, yum, zipper et al. actually work? Try installing chrome with apt... or things like Redis-insight. RPM and DPKG are hard??? Now that has to be a joke."

Yes, I do understand how package managers work. I'm guessing you want to make a dig at the fact that under the hood apt and yum (dnf) work with deb and rpm files respectively. The point is that for the most part, a user shouldn't be downloading .deb/rpm files from websites and installing that way. An application should be installed from the distros repository via the package manager. Granted, Chrome doesn't exist on the Debian/Ubuntu repos, and you do need to install the deb file from Google. But this isn't a random application from a random website. And once do you install the Chrome deb, you actually can install Chrome (and Chrome Beta and Chrome Dev) from the repos.

Example: dev-to-uploads.s3.amazonaws.com/i/...

You can even see it gets upgraded with an apt upgrade.

And if you're installing something like RedisInsight then you should know how to install things from outside the repo and understand the risks. 99.9% of everything else you need will be in the repo.

 

Exe installers are the very definition of 'a shot in the dark'. You've completely missed the point of a package manager. Whether your go installation requires extra steps depends on if the installer holds your hand or not. Windows is great but clearly you don't know what you are talking about. But I'm sure we can agree, from the author's response to your claim they don't know what they're talking about, that they're classier than either of us!

 

LOL, "a shot in the dark", really?
Let's take a look at Go:

===

If you have a previous version of Go installed, be sure to remove it before installing another.

Download the archive and extract it into /usr/local, creating a Go tree in /usr/local/go.
For example, run the following as root or through sudo:

tar -C /usr/local -xzf go1.15.2.linux-amd64.tar.gz
Add /usr/local/go/bin to the PATH environment variable.
You can do this by adding the following line to your $HOME/.profile or /etc/profile (for a system-wide installation):

export PATH=$PATH:/usr/local/go/bin
Note: Changes made to a profile file may not apply until the next time you log into your computer. To apply the changes immediately, just run the shell commands directly or execute them from the profile using a command such as source $HOME/.profile.

Verify that you've installed Go by opening a command prompt and typing the following command:
$ go version
Confirm that the command prints the installed version of Go.

===

What package manager? Hand holding?

Install of Go on Windows:

Open the MSI file you downloaded and follow the prompts to install Go.

Now, which is simpler? y'all are so obtuse it's not worth spending time to try an explain simple things.

Again, I am not saying that Windows is better or superior. The examples that the author picked just aren't the best, that's all. Nothing else to it.

 

I think package manger in linux is way superior than windows, many times i try to remove a program in windows even after removing program icons are still on my taskbar, after installing or removing programs windows ask for restart

 

One problem I had is, sometimes applications wouldn't show up in the control panel which would mean I have to uninstall them manually. So in that case, I would be at the mercy of the developer being thoughtful enough to provide an uninstall.exe.

If you install some freeware or more esoteric software, you may end up with it not showing up in the control panel. For the most part, programs will show up in there. Same thing on Linux, if you install stuff like dbeaver, it won't show up in the app panel and you need to run it either from the terminal or create a soft link.

 

That's not a problem with the installer. If you install a program that requires a device driver, you will need to reboot, although this has become a lot better. In that regard, Linux is vastly superior and the whole reboot thing is really aggravating on Windows. I honestly seldom have issues with things staying in the taskbar or icons remaining etc... that usually happens if you create links yourself. The windows installer isn't perfect, but to me, it's pretty much the same as the package manager.

Then again, I usually install programs from the terminal on Linux anyway.

 

Thank you, I'll take your criticisms into consideration

 
 

I think Linux is great for servers and for beginners. What I miss from any Linux distro is lack of support from big companies such Microsoft (but it's changing) or Adobe so we don't have still things like MS Office and Photoshop. I was using Ubuntu for 2-3 years and that was really great experience. But then I decided to switch fully for MacBook and MacOS and it is much much better software for programming. I tried to work with Windows but .. it's Windows :(

 

Idk, I'm forced to use a Mac for work and to this day still do all my personal projects on Linux. Nearly every proprietary software has a FOSS alternative for your Linux distro and I find them just as useful.
I know it all comes down to preferences and what tasks need to be done, so it's not like I'll disqualify your view on mac being the best for development, but for me it certainly isn't as I am far more productive on a Linux machine any day

 

Microsoft is slowly moving to a SAAS method. The browser based Office 365 will eventually fully replace the full Office suite.

 

Linux is great!

I used PopOS 20.04 for awhile, but its cryptic bootloader and install made multi-booting difficult, and the PopOS store was lacking.

Those awesome features you're describing are really Gnome, and you can use Gnome on a lot of distros.

When you're ready to try something different, consider Debian :)

 

I'm glad to see another pro-Linux post. I've always used Windows and still do just because I'm used to it. Reading these kinds of articles make me really consider moving to Linux in the future. 🐧

 

Glad to hear your interest in Linux! I'd still say if you're dependant on games or proprietary software that's not available on Linux like the Adobe suit or MS office, you'd want to hold off on completely switching over. But then again, there's always the option of dual booting

 

Really cool article. However, I take issue with your claim that Linux doesn't need antivirus as it's so secure. Due to recent increases in attacks on Linux systems; I'd advise you install clamTK or something similar just to stay safe. Other than that, I really enjoyed the article

 

Thanks for the info! I'll check it out

 

Linux is LoVe💙💚💜
I use it cause its free!!!!!
And with a little bit of effort I can get everything done on Linux.
If you are lazy Linux isn't for you cause oftentimes you may need to find workarounds to get some software to work or spend time researching free software alternatives you can use.

I use Ubuntu for work and personal stuff.

 

"I now use the HDD as an external USB drive with the help of a case, eliminating any worry of data backup." For me that's not quite enough, a backup for me requires the same data to be in 3 different places. I usually have important stuff on two hard drives and my own server's hard drive.

If you think Gnome is lightweight, try some of the other DEs. KDE is lighter than Gnome these days!

 

Am I the only one who wants to mention WSL2? I switched from Ubuntu to Windows+WSL2(Ubuntu dist) and I have no problems at all. I have all the functionality of Linux plus access to professional software like Adobe CC.

 

Linux are the best life savers for old machines and makes them match the performance same as new ones(most of the time). As a developer one should know Linux, as after development most of the time the deployment and management is done on a Linux running server.

I appreciate the way you covered all the major keys points for newbies.

 

Appreciate the positivity

 

I love linux, the only reqson I keep using windows are some applications that only work on windows.

 

My personal laptop is Ubuntu, my work laptop is Windows, but I spend a solid 80% of the time in a Ubuntu VM for development, and the remainder of the time is usually in Chrome on GitLab or emails. I really struggle to use Windows having spent so long within Linux - hardly any of it makes sense.

I just wish more devices were available with Linux installed by default. Or at least with a solid spec. The best I can usually find at any sort of sensible price only have 16GB RAM, and tend to be 13.3" screens. I'd love a 15.6" lightweight Linux laptop with 32GB RAM. It's the only reason I give serious consideration to joining the dark side next time (and going MacBook Pro)

 

Exxelent review, thanks for your comments.

 

I love linux and gnome. I use linux from 10 years ago (or more) only linux. And I’m dev too. I never miss win or macos (I have macbook pro 2 years).

 

I use Endeavor OS (a flavor of Arch Linux) and absolutely love it. I use it along with Citrix to remote in to my company's Windows network for work.

 

I'm also a big fan of Endeavour! I installed in once when I wanted Arch on a machine in a rush and I was pleasantly surprised. It imposes very little of its own infrastructure and just gets out of the way.

Manjaro is a fine distro, and I give big props to the team, but I often felt like I was fighting the Manjaro parts of the system. This is, I think, my own fault for not taking the time to read their fine documentation, so no insult to their hard work, but with Endeavour, things work like I expect. I never have to work around their tooling (or even use any of it), and that's huge.

Endeavour is pretty great generally but especially so for getting a clean and fairly minimal arch system spun up quickly. I know the Arch purists are grumbling right about now, but aren't they always? 😎

 

You should try Manjaro also. It helped to update my kernel to the latest one to support the new AMD processor with GPU.

 

What OP is referring to would’ve been more relatable few years ago. But now I like windows as a desktop environment. I’m pretty much over the idea of desktop linux. Stability wise only apple’s macos is the one and only one to be successful in creating a desktop unix OS. I would still use windows as my desktop OS. But server would be linux always. I think if we talk about package manager chocolatey is available for windows which does very similar like apt, apt-get. Development on windows has finally become simpler for real. However I still don’t like powershell or cmd and I use gitbash instead

 
 

Linux is one love ❤️❤️❤️

 

I'm also using pop os and the only thing I hate is it used mac os's like keyboard shortcuts

 

I'm not a developer. I just love Linux. Love your point of view. Thanks.