Why I love Linux for Software Development

Junaid Rahim
GDSC KIIT
Published in
4 min readDec 20, 2019

I was 15 when I first tried Ubuntu 14.04, at that time I had been programming for a year and just knew how to write some basic python scripts. I was blown away by how fast Ubuntu ran on my old laptop.

After using linux distributions for years, I just love the entire Linux ecosystem and the community. No wonder its the OS that runs the world.

Here are my 10 reasons why I love Linux for Software Development

1. Free

(like free beer)

Yeah, linux is absolutely free, all the popular distros are 100% free to use. You don’t have to spend a single dime to switch to linux

2. Free

(not like free beer)

Linux is free. “Free” in the sense that you are free to do whatever you want with your OS. There are no gates to stop you from tinkering your OS to meet your needs. All the code and tools are open source, you are free to download them and open things up to see how this kingdom works.

I mean, you can literally download the kernel’s source code from kernel.org

3. Security

“Given enough eyeballs, all bugs are shallow” — Linus Torvalds

Linux is secure. It’s mostly because it’s development is community driven. If a security issue pops up, maintainers push updates as soon as possible to fix the issue, also the internal structure of linux inherently is more secure and robust. Over the years, this open nature of development of the kernel has given Linux superior security. You need no antivirus if you run linux.

4. The Terminal

This is one of the main reasons why I love Linux. The terminal just offers so much speed and flexibility. You can customise the terminal according to your own needs, use any sort of terminal emulator and shell you want. The power the terminal offers you in Linux is just unbelievable, you can do anything you want with the OS just with the terminal. Master the terminal and you will find yourself be much more productive in writing and shipping code.

pretty cool eh ?

5. Speed

Linux is fast. Like crazy fast. I switched to linux because Windows was simply too slow on my old laptop, it took forever to start, navigation was slow, everything was just painfully slow in Windows. But Ubuntu was orders of magnitude fast and responsive even after years of use.

The only reason I was able to learn Android Development was because my Ubuntu installation was fast enough to run a beast like Android Studio with tolerable performance. Had I been on Windows I would have given up.

6. Customisation

I love customisation, and linux distros are total winners in this area. You are free to add themes, icon-packs and whatever you want to make your setup truly your own. Arch Linux is always there if you want to do hardcore customisation 👻.

That’s what stock Ubuntu 18.04 looks like

But this is my setup.

My Ubuntu 18.04 Desktop

7. Coherence with Deployment Environments

Most of the code I write is deployed on some linux server. It’s just nice to develop on a linux system, the similarity of file systems, deployment services etc. really gives a nice idea of how my code will behave on the server. I can write up mock systemd or upstart services to test things and make sure that my scripts won’t break in production.

9. Community Support

The community support for ubuntu, fedora, arch, mint or any of the distros is just awesome, I have rarely faced a problem whose solution I couldn’t find on the forums. Almost all the problems you will be facing are already posted on some forum with the solution.

10. The Directory Hierarchy

The linux directory hierarchy just makes more sense and is more flexible compared to windows. / being the root of the tree and then gradually the hierarchy spreads, each folder named very systematically.

So yeah, those are my 10 reasons to run linux.

Do drop a 👏 if you liked this article.

Find out more about me at junaidrahim.me

Extras :

  1. https://kernel.org/
  2. How Linux Works by Brian Ward
  3. https://kernelnewbies.org/
  4. https://www.youtube.com/watch?v=yVpbFMhOAwE

--

--

Junaid Rahim
GDSC KIIT

CSE Undergrad at KIIT. Web Developer at DSC KIIT. Web Technologies. Systems. Machine Learning.