DEV Community

loading...
Cover image for Should I use Linux?

Should I use Linux?

Henry Boisdequin on November 01, 2020

Cover Image Credits: https://onehack.us/t/which-os-you-use-windows-linux-macos-post-here-discussion/65891 Hello Dev Community! I am currently usi...
pic
Editor guide
Collapse
iamreinder profile image
Reinder

If you should or shouldn't is of course entirely up to you and a very personal decision. I switched from macOS to Linux, recently. I wanted that for some time but hesitated as there were almost no nice laptops with native support for Linux. With the recent endorsement of Lenovo towards Linux this has changed.

Reasons for me to switch to Linux are having an open source system where I have a lot of control. But the most important reasons were better docker support (docker on macOS can be a pain) and having the same environment as the servers our microservices run on. This helps me understand the architecture more fully.

I haven't looked back once, to be honest. I was hesitated as I used some commercial software not available for Linux. But I don't really miss them. The only thing I actually miss a little is a good alternative to Sketch. I use Figma now, but would love a native alternative instead of an app in the browser.

Collapse
promikecoder2020 profile image
ProMikeCoder2020

I recommend using windows subsystem for Linux since it combines the best of the two worlds. Since it has all the functionalities of windows so you can run apps like sketch and Microsoft works, but it also has all the advantages of using Linux for programming

Collapse
__mrvik__ profile image
MrViK

I don't recommend it. As a full time Linux used being forced to work with Windows I find that WSL2 a poor choice to run Linux, which also has performance problems, and yes, I'm talking about the WSL2. Docker containers take an eternity to be unpacked on an i5+M2. All the expensive operations are incredibly slow there.

Also it's too buggy and not to talk about the horrendous CMD/PowerShell/Windows Terminal with their shitty usability.

So, IMO, the WSL2 doesn't offer a usable environment for Linux users nor to newcomers who want to try Linux.

I strongly recommend the other side, using Linux instead of Windows and an VM with Windows if needed until you figure out how to run your programs under Wine (most of them just work out of the box).

Thread Thread
cyberhck profile image
Nishchal Gautam

Thank you! same experience here, people who think WSL2 is good enough are just plain ignorant who have never used linux as primary OS.

You can't have guake terminal, you can't have the workspace which makes it so much more productive, WSL2 is only for people to say "I've got a bash on my machine", honestly I see little point on people using WSL2 as alternative, give us actual workspaces, guake like terminal, then we talk.

Thread Thread
__mrvik__ profile image
MrViK

Yes, the drop-down terminals are a missing feature I personally love. I'm using Yakuake and I use it every time for short tasks.

Also, I use a lot the links detection (I work with apps that require OAuth2 and throw links at the terminal) and the lack of this feature on the "new" Win Terminal is driving me nuts.

And workspaces is an essential thing, Windows have them but honestly, they suck a lot.

Windows and Linux (with any tooling, also the basic suckless tools) are two separate worlds, where Linux is by far the best one.

Thread Thread
moopet profile image
Ben Sinclair

Different people have different workflows.
I don't like these dropdown terminals because, well, I always have a maximised, tabbed or tiled terminal available anyway.

For this, WSL with Windows Terminal is fine. Yes, it's a little slow when rendering, but since my workflow is to use a browser and a bunch of SSH connections, there's no issue.

Workspaces are not an essential thing. They're something that some people use and some people don't. MacOS and Windows now have native workspaces, but the majority of people don't use them or even understand how to work them.

It's fine that you like certain features, but they're not essential, and they might be wholly inappropriate for someone else depending on their preferences and the type of development they do.

Thread Thread
cyberhck profile image
Nishchal Gautam

These are the type of responses I absolutely hate, "it's not important because I don't use it".

first off, using Linux based OS won't force you to use these, you can still have 1 workspace, and 1 terminal maximized window, but they ALLOW you to be able to work on whatever workflow you want.

secondly, if you read my comment you'd understand, I know mac and windows have workspaces, but that's about it, they added to add it, but nothing about it makes any better. There aren't any shortcuts to move to another workspace, or customize horizontal and vertical workspaces, moving one app from one workspace to another workspace etc.

Collapse
iamreinder profile image
Reinder

I'm not that fond of Windows 😉 Also, Sketch is a Mac app. I have a dual boot setup Linux / Windows, though. Just to have the option to run some other software. But I haven't used it yet 😅

Collapse
hb profile image
Henry Boisdequin Author

Thanks, I am in the same situation as you were in then. I liked the pro of having the same environment as our microservices run on. I don't plan to migrate to Linux completely but to use VM or dual boot. I think that macOS has some pros (iOS development, better default apps, etc) and this is why I'm keeping macOS, and not migrating to Linux completely. With that said, I do plan to use Linux as a secondary OS. Thanks for your input!

Collapse
tkouleris profile image
Thodoris Kouleris

I never understood why to pay so much money to have macOS when you can have a better experience with Linux. Exception is when you develop IOS apps.

Collapse
idarek profile image
Dariusz Więckiewicz

I try think the dilemma is different here. Author have macOS and is advised to go Linux. If you got macOS I do t see the reason why. If you don’t, than even I will advise to go Linux first if Windows is not good idea.

Collapse
chilarai profile image
Chilarai

I completely agree

Collapse
idarek profile image
Dariusz Więckiewicz

macOS is Unix based and share lot of similarities with Linux. Personally using macOS, Windows for work and Linux for devices like raspberry pi. I would like to hear good arguments why somebody telling you to move from macOS to Linux please. Personally I don’t see why you shall move.

Collapse
codemouse92 profile image
Jason C. McDonald

Here's a few:

  1. macOS has 400% more computer threats than even Windows as of this year. SOURCE: USA Today

  2. You're locked into an endless cycle of mandatory and semi-mandatory software upgrades that will eventually render your expensive hardware useless. Linux does not do this: you are in control.

  3. Just because macOS is POSIX doesn't mean it's transparent. It is incredibly opaque. Apple runs the show, especially within their controversial "walled garden" model. The Linux ecosystem, on the other hand, is built around transparency.

Apple itself really brings nothing to the table that the Linux ecosystem cannot provide.

If you want Linux-preinstalled hardware that sports the same level of quality and attention-to-detail that Apple used to be known for, see System76. system76.com/

Otherwise, there are dozens of excellent Linux OSes that will run on nearly anything you already have or could otherwise buy. My favorite is Pop_OS!

Collapse
hb profile image
Henry Boisdequin Author

Thanks for your input. This is why I want to try Linux! I don't plan to have Linux as my main OS but if I like it, I will dual boot. I will definitely check out Pop_OS!

Collapse
sdcaulley profile image
sdcaulley

I have been using Linux (primarily Debian and Ubuntu) as my primary operating system for about 10 years now. My current hardware is a Lenovo ThinkPad T460s. Debian 10 is the only operating system on the machine (I got rid of the Window's 10 install upon purchase).

The biggest limitation I have found is it is difficult to use software that has only been written for macOS or Windows - like the Adobe suite, Kindle desktop, or video games. Since I don't, this has not been a problem for me.

Even though Linux is my primary OS, I do all of my development in virtual machines (using the native kvm/qemu). This lessens the probability of me doings something catastrophic to my machine. I do regular backup snapshots of each VM for easy recovery.

I would recommend that before you make a decision, you set up some VMs with different Linux distributions and play with them. There are many options for desktops and configurations. I am sure you will find something that meets your needs and desires.

Collapse
hb profile image
Henry Boisdequin Author

Thanks for your insight! I will definitely set up some VMs with different Linux distributions before going full-on Linux, and then find the one which I like best.

Collapse
scionsamurai profile image
scionsamurai

My suggestion would be to have a pc host a linux server. Then you can install everything docker/dev related on that server. I have code-server (vscode) as a self hosted (docker) service so i connect to it through the browser on my chromebook and develop. You can use containers like Guacamole to RDP into your server if you wanted to have an accessible desktop. When i learned about docker i wrote down all of the applications i install on all of my computers and looked for a self hosted docker alternative for those applications. Now i do everything through my chromebook, rpi, or android tv box.

I used to be a windows guy who sometimes utilized linux, but now i 100% prefer linux. I prefer to use the terminal to install applications instead of using graphical auto installers. I do have to use windows 10 for work though, it's not so bad when someone else does all the windows-like upkeep. (defrags, updates, etc)

Collapse
rockykev profile image
Rocky Kev

I'm very similar! Pure Windows background, web developer.

I figured out all the work-arounds to get LAMP sites working on Windows that errors didn't bother me. But my surprise when I deployed a LAMP stack natively in Fedora, it just freakin' worked! 6 months later, I'm now using Docker, and the OS doesn't matter to me. It's really freeing!

Of course, using linux was a crazy challenge with my windows background. Once I got comfortable with the linux command line (I've been using powershell), Aliases became the rubber band to allow me to do all the things I'm used to without affecting anyone on my team.

Currently, we switched from Fedoras to Mac in the past few months. Macs are weird. But where it took me 1 year to go from Windows -> Linux, it's taking me like a week to go from Linux/Windows -> Mac. I still fight with Mac keyboard shortcuts.

Collapse
hb profile image
Henry Boisdequin Author

Thanks for the insight, I will definitely try Linux and see how it goes!

Collapse
nqhuyd profile image
Louis

I think with linux you can learn a lot how to using command line to manipulate os and network also setup your own server, etc... due to nowadays many host cloud service running on linux distro.

I am using macos also linux dual boot i think it would be great for me because i am also programing with ios device so only macos can support me for that.

Buf if you want to practice i think you should use vm to run on it because it will take lot of time to dual boot system and some times it will have some issues need you a day to research so my recommendation is using vm for practice and using dual boot when you master it

Collapse
hb profile image
Henry Boisdequin Author

Thanks for your input, VM is certainly on my mind! Any tutorials you would recommend to use VM to run Linux on YouTube?

Collapse
nqhuyd profile image
Louis

I am not sure which tutorials suitable for you. But if you want to learn linux deeply i suppose to install arch distro. Its the best way to learn linux and read the book relevant to LPIC1

Collapse
francisl profile image
Francis Lavoie

Here a counter unpopular opinion,

Recently, I switch my personal laptop to Windows, after running Linux for a month. Before I had an old MBP that last me for about 12 years. I did start using Linux in 1999, and since then I run all of time from time to time.

I got a new job recently and asked first to have a Linux laptop, but I changed my mind three month into the job and ask to switch back to Mac.

Here some things to consider:

First, Mac OS has a consistent key-binding across all the system. IMO, a more efficient one for programming. This is what I miss the most when I’m not on OS X.

On Linux, it's pretty inconsistent. On the terminal, you have the same emacs-like as you have on OS X. But has soon as you're in GUI mode, it's a windows-like mess. For example, each application will behave differently with ctrl+w. Sometime copy/paste is ctrl+c/v but other time shif+ctrl+c/v. On OS X, it's all the same, everywhere.

Second, if you use a lot the built-in keyboard and trackpad, a MBP trackpad is just incomparable. The precision, palm detection, two-finger navigation is horrible and frustrating. You have different options to configure it, but even after spending many days trying to get it working, there was always something short. If you plan to use mostly a mouse, this point is not valid.

There are other small issues I experience at home as well as with my work setup. Shorter battery life, broken suspend/sleep mode, screen recording quality issue, dual monitor + screensharing, update that broke working stuff (yes still in 2020, like sound, recording, resolution), no resume session.

Nevertheless, if you never run Linux as your main OS, I’ll encourage you to do so. You will learn much, and you will be more at ease later when you deploy on Linux and work with docker, from OS X.

Collapse
hb profile image
Henry Boisdequin Author

Thanks for your input. I don't plan to run Linux as my main OS unless I really enjoy it. I will play with different distros in a VM and see if I really like one. If I really like Linux, I would dual boot with macOS (macOS costs $$$, got to save it).

Collapse
endorama profile image
Edoardo Tenani

What an interesting question! I'm a long time Linux user (since 2009 more or less) and was wondering to try MacOS. Now, I love the freedom Linux provides (like, my workflow is really mine) but there are downsides and slippery slopes.

@hb I have a question for you: why change? What are you searching for in Linux? I think the switch (and which distro to target) depends a lot on the answer

Collapse
hb profile image
Henry Boisdequin Author

I have heard so many great things about Linux: the customization, security, transparency, cost (free), it's open-source, and just overall makes you understand the cloud and different dev-ops more (host my server on Linux, my OS is Linux). I am searching for a distro which is easy to get into (not super complex), has all the best features of Linux, and has a customizable look. Hopefully, you can help me find a distro which suits my needs best! I will not switch to Linux 100%. I will try out different distros in a VM, and if I like one then I will dual boot! Thanks for your input.

Collapse
endorama profile image
Edoardo Tenani

You can derive most of the Linux distribution you see today from common ancestors:

  • Debian family: Debian is itself a powerful distro, but I would not suggest it to newcomers. Ubuntu is it's probably most know derived distribution. I would choose it because can be customized, has many derived distributions with different UIs and is very stable for desktop use.
  • Slackware family: I'm not that familiar with it but I would consider this for advanced users. I think t's most popular derivation is SUSE
  • Red Had family: know for Red Hat enterprise, it's most popular derivation is Fedora. I would say it's a solid distribution for desktop use. I consider it the main competitor to Ubuntu on the desktop.
  • Enoch, mainly known as Gentoo: the amount of customization you have is endless, but not for the faint of heart. If you are starting out I would avoid it as Linux is as awesome as complex and most of that complexity is overwhelming at the beginning.
  • Arch family: I consider this a step up over Ubuntu or Fedora, allowing you to customize a lot your system but requires understanding more of Linux internals.

More details on the Linux distro history can be found on Wikipedia.

Apart from the OS, you should have a look at the Desktop Environment you would like to use, I suggest to look at the Wikipedia page for a general overview. Consider that Ubuntu has lot of derivatives pre-made with a Desktop Environment, something that other distribution do not provide (you can always do it manually, and I suggest you to do it, but not on your live system 😆).

Good luck and have fun. That's the most rewarding thing of using Linux.

Thread Thread
hb profile image
Henry Boisdequin Author

Wow, thanks for all of this information. I will make sure to have fun when trying Linux! So far I have tried Ubuntu and loved it, I just need more performance. I might dual boot soon!

Collapse
buphmin profile image
buphmin

For some of the practical reasons (for backend development):
Docker helps with this on mac, but from my understanding Docker runs on a linux VM in mac so that would be a layer of overhead. The file structure and some of the way software gets installed on mac is different. This means that you may have to understand and keep track of two ways of running things like webservers. Also if you are not using docker with a compiled language you may have to keep of track of the compilation target and any quirks that might bring.

For some more opinionated reasons:
I, personally, am not a fan of the macOS UI. The defaults seem to get in my way and makes it harder for me to be productive. Additionally, I have not found many ways in the settings to bring it to a "good enough" level. There are a variety of linux desktops out there, and many of them have very different approaches to the UI. Whether these are better or worse than the macOS UI is a matter of personal preference.

Collapse
hb profile image
Henry Boisdequin Author

Thanks for the insight. I have never thought of the Linux UI vs the macOS UI. I have heard from a lot of people, and you that Linux is much more customizable. This is why I'm convinced to try Linux!

Collapse
rockykev profile image
Rocky Kev

I'd argue that the Linux UI is more customizable if you WANT TO CODE IT YOURSELF.

Since you mentioned your background is on Mac, you may find a lot of linux distros just being fugly and cumbersome. (I'm speaking from my own experience.) Mac is crazy slick and has so many quality-of-life pieces. For me to jump into Ubuntu & then Fedora, I was pretty annoyed at how 'old' it looked and felt. And I wasn't going to learn how to fix all the things that I took for granted out of the box.

If you're feeling the same way as I did, check out Elementary OS. It's a bit more than a UI flavor of Ubuntu - but a bigger rebuild. That might give you a jumpstart getting your feet wet. Then, you can move to other flavors of linux. For me, I went Elementary OS -> Ubuntu -> Fedora -> Elementary OS again! (I still use fedora at work!)

Thread Thread
hb profile image
Henry Boisdequin Author

Thanks for the tips! I will definitely try out Elementary OS. For the most part, I'm fine coding the UI myself, as long as it's in Python, Javascript/Typescript, or Dart, but I don't think they use those languages...

Collapse
panasoft profile image
Abdul-Razak Alhassan

Early this year I started playing with Linux distros on VirtualBox...I started with Xubuntu and later tried Ubuntu itself...I still have. But somewhere along the line I chanced Debian...I installed full version and have been in love with it forever. Debian full installation is the pinnacle of Linux experience...

In the "Discover" software app...you will find a torn of useful software.

Bugs are fixed in Debian long before Ubuntu and other Distros do so.

The only challenge with Linux Distros is the lack of good design software like Adobe...If that could be fixed...Linux will have no limits, especially Debian!

Collapse
hb profile image
Henry Boisdequin Author

Thanks for your insight. A lot of people have said that Debian is the best Linux distro. Linus Torvalds hasn't used it right? Ubuntu and Debian are on my list to try on VirtualBox.

Collapse
samrocksc profile image
Sam Clark

Use whatever you find yourself most accomplished with. When I'm doing straight programming, and little devops or serverless....I honestly prefer my osX rig.

When I'm doing devops heavy work, I'll gladly put away the heat of a thousand suns that is my MBP and bust out my XPS 13 with Ubuntu.

It's not about the operating system, it's about what you're doing with it :), most importantly, have fun.

Collapse
daksh777 profile image
Daksh P. Jain

Although Linux is way better than MacOS or Windows for programming, I didn't like Linux because of some problems which I mentioned in this post of mine: dev.to/daksh777/why-linux-is-not-f...

It totally depends on your liking if you ask me. I use Windows Subsystem for Linux to get some basic Linux experience on Windows so I never needed Linux.
But Linux is definitely better if you want a full fledged programming experience.

Collapse
dsaghliani profile image
silkroad

Depends on the kind of programming you're doing.

Me, I do game development, and Unity doesn't support Linux. I'd have to do it inside a VM, or use some other workaround. I'd also need to do the same for Photoshop.

At that point, might as well just not use it, especially when its perks -- good access to various packages -- are wasted on me.

Collapse
hb profile image
Henry Boisdequin Author

Thanks for your input. I don't plan to switch to Linux completely, I just want to do it inside a VM. I do mostly full-stack/ML development and from my knowledge, it's all available on Linux!

Collapse
amanessinger profile image
Andreas Manessinger

If you use a Mac, you won't need Linux. It's UNIX like Linux. If you have a current Windows 10, just install WSL2 with a Linux distribution, Docker for Desktop, Visual Studio Code, and you're good to go. in any other case, install Linux.

Limitations of Linux are mostly less Games and no Photoshop. You say you have a Mac, and if you can live with that game-wise, you can live with Linux as well. If you need the Adobe Creative Suite, keep the Mac.

Collapse
hb profile image
Henry Boisdequin Author

Thanks for your input. I don't really play games, do photoshop, or do Adobe stuff, I just code, do school, and watch YouTube! I think this is why moving to Linux is okay for me.

Collapse
kryptiksage profile image
Harikrishnan A

It's better to use linux with dual boot over VM. WSL is better than VM anyway but to completely utilise it, it's better to use a distribution. Feel free to ask more. I've been daily driving a linux distro for 4 years and haven't touched windows unless I wanna game.

Collapse
hb profile image
Henry Boisdequin Author

I plan just to play with different flavours of Linux in a VM and find which one I like. I will dual boot if I really like a specific Linux distro. Thanks for your insight!

Collapse
chilarai profile image
Chilarai

I don't know how right I am but the stability and the ease that a Mac offers over Linux is way too much, considering the Mac hardware. Hence coding on a Mac hardware is way like breathing on fresh air. Also, almost all the features of Linux are there on Mac.

It's true a Linux gives you a lot of power on the choice of tools and customisation of OS. But for only coding, can't be better than Mac, unless you have specific needs

Collapse
hb profile image
Henry Boisdequin Author

Thanks for your input. Some people say that Linux is much better, others say that macOS has what Linux offers. I'm going to try Linux and see if it suits my needs (as you stated).

Collapse
michaelphipps profile image
Phippsy

My advice... use the OS you are familiar with. It took me 10 years to stop reaching for Windows when I moved over to Linux for my main environment. Changing will slow you down unnecessarily.

YES. I recommend developing on a Linux system, particularly if you're doing backend work.

My setup is in the cloud. I have a dev server that I connect to with VS Code using the Remote SSH extension. So I'm developing on a Linux, from the comfort of my chosen os, without having to manage dual boot or a virtual machine. If I get bored of working in my office, I can switch from my Desktop (Ubuntu) over to my Laptop (Windows) and connect to my dev server, and just pickup where I left off.

Downside of my setup, I do need to be connected to the internet - but that isn't an issue for me.

My ultimate goal is being able to walk up to any computer, any OS, connected to the internet and get work done. I am currently looking at Code Server which is a completely in browser version of VS Code. Unfortunately it doesn't do Remote SSH due to legal issues, so I would need to install Code Server onto the dev system - something I'm undecided about.

Collapse
hb profile image
Henry Boisdequin Author

Thanks for your input. I agree that trying a new OS will slow me down. I just plan to play with different Linux distributions in a VM and see which one I like. I would love to work on any computer or any OS and get work done. Maybe in the future, we will see something like that.

Collapse
sunitk profile image
Sunit Katkar

Some part of my work does require me to use Excel extensively and so I cannot abandon Windows. Openoffice, etc just don't cut it. As someone here said to use Linux subsystem on Windows. Yes, that's what I do to run some things. But these days, for development, it does not matter what OS you have as the languages are mostly Java, Python, TypeScript and the IDEs (like Spring ToolSuite, IntelliJ IDEA, et-al) run very well on almost any OS.

So I would recommend that first answer yourself on 'What am I going to do on my laptop?' and then decide on the OS. Like I do 99% non-Windows specific work but I need the 1% of Excel, so I decided to stick to Windows as the rest can also be done on Windows.

Collapse
hb profile image
Henry Boisdequin Author

That is an interesting thought. More and more, things are becoming available on all the OS, as you stated. My problem is that some things are just available on Linux still. For example, I had to wait a year to use the Google Football Playground. Also, I do use Exel which I run on macOS and that is not available on Linux. I will use Linux as a secondary OS, so I will always be able to switch back.

Collapse
webeleon profile image
Collapse
hb profile image
Henry Boisdequin Author

I am convinced to use Linux now!

Collapse
webeleon profile image
Julien Prugne

You should!

Collapse
milden6 profile image
Daniel Mileev

Hi, Henry! Just try and decide for yourself - it's right way.
You could dual boot for best performance, because VM might be slower.
My IMHO is Manjaro KDE. I have good experience with it

Collapse
hb profile image
Henry Boisdequin Author

Thanks for your input, any tutorials you would recommend to use VM to run Linux?

Collapse
milden6 profile image
Collapse
dancingmonkey profile image
Timothy

I use wsl on windows, recommend it 👌

Collapse
eric23 profile image
Eric

Try Linux Mint (Cinnamon).
I've been running Linux as my daily driver for well over a decade now and it's always done what I needed it to do.

Collapse
hb profile image
Henry Boisdequin Author

I'm planning to first use Ubuntu (most popular), and then find a "variant" of Linux which suits my needs best. I will definitely consider Linux Mint, thanks for the tip!

Collapse
eric23 profile image
Eric

Ubuntu is a good choice.

Collapse
hb profile image
Henry Boisdequin Author

It's funny that you mention the OS choice partly a political decision. I don't plan to move 100% away from Apple, keeping it as my primary OS but in the future (if I like Linux) I might. I will look out for these problems in the future! Thanks for the tips

Collapse
akashkaintura profile image
AKASH KAINTURA

It's fun working in Linux from core shell scripting to python serveretc.
Should Consider this.

Collapse
chadalen profile image
Chad Alen

If you switch to Linux I hope you don’t mind distro hopping. :D I think I tried just about every distro out there couldn’t find one with everything I like out of the box.

Collapse
hb profile image
Henry Boisdequin Author

Thanks for your input! I definitely plan to go distro-hopping in my VM. I plan to start with Ubuntu!

Collapse
cyberhck profile image
Nishchal Gautam

dev.to/cyberhck/os-wars-let-s-sett... TLDR: use what you're most comfortable with.