DEV Community

Cover image for Is linux good enough for everyday programming?
Marwane
Marwane

Posted on • Updated on

Is linux good enough for everyday programming?

Disclaimer: I’m writing about my experience with major OS (Windows 10, macOs High/Sierra, Ubuntu/Manjaro) using a Solid State Drive. It has a huge impact in term of speed and it could be different from your own experience.

Hello there. To begin with, this post isn’t about what’s the best OS for everyday programming, it could depend on the stack used, Misc programs and specially YOU, so i’ll try to describe all the good/bad things that happened during my everyday workflows.

But before that I should let you know my programming stack so you won't get confused later. I mainly use:

  1. PHP frameworks and CMS
  2. nodejs frameworks for frontend
  3. react native/ionic for mobile dev
  4. Photoshop (with CssHat) for HTML Integration, banner for mobile apps.
  5. ms office due to my current job.[1]

Ubuntu (Unity/Gnome):

By the end of 2015 and after a good run with Windows 7 and using Ubuntu just occasionally in virtual machines I thought I would give it a shot with a daily usage so I installed the 15.10 version. back then i was programming in PHP, Java and C# (because of my Software engineering Studies), php and apache had great performances locally, same for java but used a windows 7 VM for Visual Studio, Ms Office and Adobe Photoshop, because all the alternatives (Darkable/Gimp, Open office) weren't at the same levels. I tried but the more you use them the more you notice their weak points such as ease of use, backward compatibility.

I had a good (exactly 2 years) run switching between Unity and Gnome DE (I was the n°1 hater for KDE btw), but over time and even with SSD it felt a kinda slow (I was always stuck with 16.04 LTS) and honestly, I wasn’t fan of the Ubuntu’s PPAs either and then I discovered the Hackintosh community.

macOs (10.12/10.14)

So after a hell of an installation process I managed to run macOs Sierra smoothly on a laptop that has hardware near to macbook pro late 2012 (HP elitebook 840 G1). Apps installed with one simple drag n’ drop (applies to android studio too). It run the Android Virtual Device smoother than windows 7 and ubuntu with the same laptop, i was very surprised, the memory management, the apps integration and the overall stability was so great. At that time I finished my studies so no more Java or .Net programming, and the adobe/ms office suite was a strong point compared to Linux in general so every program ran natively without the need of any VM, with our beloved Unix cli.

The only drawback I had with mac, or with hackintosh, is the system updates/upgrades it was so painful to do it breaks your system every time, I was backing up the whole bootable system image whenever I attempted to update. Because the Kexts (Kernel extensions or “drivers”) weren’t always backward compatible.

So in the end i was thinking to go back to linux again but not sure which distribution i will stick with again, I wanted a stable distro that i forgot completely about something called upgrades of “big updates”. In the meantime I give Windows 10 another shot after hearing it got better and better in the last years.

And again, after 2 years with no workflow complaints I backed up my hackintosh installation and installed the last build of windows 10.

Windows 10.

I’ll resume my experience with one line: “not great, not terrible”
Compared, again, to mac os the system was very smooth in every way, snapping windows, switching virtual desktops, programs and files search in the start menu, no problem but! I already missed the unix cli. Yeah I know there’s cmder and other tools. The overall performance was okay but there was some latency when compiling node js apps. My workflow didn’t change. I used Laragon for all my php projects with phpstorm and it was perfect honestly. On the other hand Android Emulator was terrible even with 8gb or ram and ssd, mac os was handling it way better.

In the meantime I played with some linux distros in VMs and made the choice: Manjaro, KDE flavor.

Manjaro:

“You said you hated KDE right?” well yes but for a cause, one I didn’t want to bring back the Gnome memories i had with Ubuntu and second, I disliked is because its similarity in UI compared to Windows in general, 10 specially then I found how very customizable was and again i’ll resume it with one line: “everything is a widget”. So in term of UI I made my simple comfortable setup.

Now in term of programs and workflow I still use PhpStorm for my php and nodejs projects, npm and yarn installed globally and surprisingly npm run very fast compared to windows and mac; git already installed, but for my php projects I migrate all of them to docker with docker compose, majority of projects were based on Laravel, Prestashop, Wordpress and old native php apps. I managed to dockerize some of them from scratch, some with Laradock.

Java/.Net: RIP.

For mobile development there were some struggles during configuring ionic and react native’s first run but done with them quickly, no problem with android studio but the emulator “again” wasn’t that good as mac os, but not that bad like windows. And I discovered a helpful package that cast my connected android device to my screen and it’s shown as a virtual device but a physical one, called scrcpy from the genymotion team!

And finally these are just some of the benefits why I picked manjaro:

  1. No big breaking updates.
  2. A rolling release distro.
  3. Fast security patches.
  4. The Great Arch User Repository (AUR)
  5. Snap and Flatpak support (but why?)
  6. Very stable.

But still there are some drawback, linux’s ones in general:

  1. Still needing photoshop and lightroom.
  2. Ms Office for work purpose (Managed to use Web version since we have ms365 but still miss Excel for heavy use)

Conclusion:

Finally and personally I’ll stick with linux for these main two reasons: native support for docker (future projects could be deployed with it) and the unix environment similarity to production servers (cli, ssh and packages’ configuration).
I understand many of you will disagree for many things said in the post but that’s okay! because, finally, we choose what will help us to give the most of us in terms of productivity.

Thank you all for reading the most boring post ever made on Dev.to platform! I would gladly hear from you some of your thoughts and experiences as well. Thanks again! [1]

[1]: edit. added used stack and a conclusion.

Discussion (140)

Collapse
arturssmirnovs profile image
Arturs Smirnovs • Edited on

I was using Linux few years ago, but yes I got tired of no Photoshop no advanced drivers for specific hardware..

So at the end of the day switched back to windows 10..

Since windows 10 has windows subsystem feature I feel like I'm in Linux server with command line..

So my os to go is Windows for now...

Collapse
cyberhck profile image
Nishchal Gautam • Edited on

Author is talking about programming, not designs, so jumping onto commenting about photoshop is just not cool man,

advanced drivers, I slightly agree, but what I've seen with my system, I might have to find drivers online, but with ubuntu, they're automatically working, no need to install anything. Where I agree is with some WiFi devices, and nvidia driver (ubuntu does have nvidia driver, but it's not the same quality as windows)

also windows subsystem is shit, it's so slow, and so PITA, I've used it once in the past, it doesn't work well with symlinks for mono repo, and it's slower.

For every day programming, Ubuntu, Arch, Manjaro (any linux based OS) actually work much better than stupid windows,

I've a desktop at home, ubuntu is my primary OS, I do programming on that, and the only game I play (CS:GO) is now available for ubuntu, and you know what? it's more stable and more smooth on ubuntu. The only times I use windows is to play NFS, some battlefield.

Also for people commenting "WSL gets the job done", that's not what I'm looking for in my PC, I'm looking for myself to be the best version of me, the most productive, and no waiting for build to finish. On linux, you get significant boost when you're working. (Try deleting node_modules on windows vs linux) and you'll notice the difference.

Collapse
tpubben profile image
tpubben

WSL2 is leaps and bounds better than WSL. It has the same access to hardware as a native Linux installation and runs just as fast. Since WSL2 was released I've finally ditched my dual boot Linux installation.

Thread Thread
atldev profile image
Chris

With you 100% on WSL2. It's been running Ubuntu 18.04 very nicely for me. And I've found instructions for installing CentOS. WSL supposts installing multiple Linux distros and choosing which distro runs. WSL2 does prevent Linux access to GPU and serial ports, but MS says that's "high on their list" of improvements to be made. Still WS2 is performant and highly usable.

Thread Thread
dalgibbard profile image
Darren Gibbard

GPU access is available in the latest Windows Insider builds now

Thread Thread
yorozuyadev profile image
Yorozuya3

I'm bored of EEE strategies of Windows, and WSL is one more of them. So if I will continue using GNU/Linux for GNU/Linux applications

Collapse
reggiedrax profile image
Reggie Drax

Author wrote about Photoshop, and Lightroom, and MS Office, not just about programming.

Thread Thread
cyberhck profile image
Nishchal Gautam • Edited on

He wrote about it, I understand, but the question again is:

Is linux good enough for every day programming

I don't see myself using photoshop, lightroom, ms office for everyday programming.

I understand they're a factor, but again, looking at what's desired (everyday programming), it doesn't make sense to compare with programming, (and everyday programmers don't need fancy photoshop tools, inkscape, gimp etc can do those just fine)

Thread Thread
moghwan profile image
Marwane Author

sorry to disappoint you but I needed Photoshop (and firework earlier) for PSD/HTML template integration, for ms office and specially excel we used it for projects management and collaboration since we have a microsoft 365 subscription, and the web version wans't enough for me a least

Thread Thread
cyberhck profile image
Nishchal Gautam

again, you're using wrong tool for the job and blaming a OS for it, PSD isn't for UI designs, heard of either of XD, Sketch, Figma? they're meant for designs, and it doesn't matter which OS they support, because in the end you can see the spec through online interface.

Thread Thread
reggiedrax profile image
Reggie Drax

What's "not cool" is putting someone down because you disagree with them.

Thread Thread
cyberhck profile image
Nishchal Gautam

Where have I put someone down? I'm just expressing my thoughts, if you think Linux isn't good enough for everyday programming, state facts and try to change my mind.

I've done so, I've been using Linux for heavy programming, and is my goto os for a while now, it's a fact and I can prove how much I use it.

What's actually not cool is you trying make me look bad without shedding any facts.

Thread Thread
reggiedrax profile image
Reggie Drax

"Author is talking about programming, not designs, so jumping onto commenting about photoshop is just not cool man"

This was you putting them down.

It's not that I think Linux isn't a good development environment - it obviously is, though living with it for tasks that don't directly involve writing and running code can be a bit painful. You're right - use the best tool for the job. I commented because I thought what you said was dismissive and a bit rude.

Thread Thread
cyberhck profile image
Nishchal Gautam

Actually re-reading it, yes, I hear it too, I'm sorry about it. Thanks for pointing it out :)

Collapse
mkellsy profile image
Michael Kellsy

Such an old-guard way of thinking about things. Ask yourself, why do I think Photoshop is not a barier to entry for an OS? Why do I even need a node_modules directory, and why do I need to delete it?

Your development OS or delivery method should be influenced by the target audience, not your needs. If your app needs to run on WSL, then WSL and Windows should be your OS. This is why Docker is so popular.

Thread Thread
cyberhck profile image
Nishchal Gautam

Actually, I strongly disagree, ideally I should be able to work on whatever I'm comfortable with and build for whatever platform I want, take a look at golang,

And if you do stuff correctly, your CI needs to build and release stuff, so you can stay on what you're comfortable with.

If you're interested, I can write about how I get these things done

Collapse
moghwan profile image
Marwane Author

About photoahop I use it often when I have a project design integration to HTML or when designing/updating my app shreenshot on playstore and also I just got comfortable with it even with small editing :D

Thread Thread
aberba profile image
Lawrence Aberba

If you need photoshop then it's got nothing to do with the OS, it's got everything do do with whichever platform Adobe decides to support.

I'm yet to see what photoshop does that gimp can't. But you're into photoshop, then Linux is probably not for you.

For hardcore programming, assuming its not dependent on MS stack, Linux is second to none.

Collapse
arturssmirnovs profile image
Arturs Smirnovs

Yes sure..
But for example, i have laptop with one hdmi, but i wanted to attach 3'd display, so i purchased usb to hdmi: displaylink.com/products/usb-adapters
Guess what: linux drivers not working very well..
I have master mx2 mouse, guess what: No drivers on linux..

So it's small details like this..

Still if you are developer from time to time you need some advanced graphics.. it's pain in ass that you can't use it property..

But yeah, if linux would have all drivers available it would be my to go platform..

Thread Thread
cyberhck profile image
Nishchal Gautam • Edited on

I'm using MX2 and MX3 mouse, I've had no issues, like I said, it's plug and play, sure I don't have logitech flow, but it does work,

I've 3 monitors at home and I don't even need to use those adapters, I don't see why you'd use it,

Maybe you're not buying tools correctly, if you want to have extra monitors, buy a laptop and a dock, and maybe a dock with 3 hdmi or display ports,

I think the argument about display was like, ahh, this screw driver isn't driving this nail into the wall, screw drivers are bad.

Maybe buy a docking station? While I'm typing, I'm using a docking station right now,

Also I'm sure there are plenty of usb to hdmi things which follow some open standard and linux works even without manually installing a driver (most of things are plug and play, like my mx mouse here)

Thread Thread
190245 profile image
Dave

Ubuntu user here, with an MX3 sitting next to my laptop after upgrading from the MX2.

In the office, I have a docking station, at home, I work with a single screen just fine, and when at remote sites etc, I have a USB3 hub with extra HDMI etc.

Sure, the drivers on the docking station & USB hub didn't want to play ball, but I grew up on a BSD command line, so it wasn't tricky to sort it. My problem there was the choice of laptop not being explicitly designed for a docking station, and I wanted a USB hub for travel (that I've used all of twice).

By & large, everything in modern Linux is plug & play, and I've managed to convince a few people to move over from MacOS just by them seeing the way I work.

Collapse
kretaceous profile image
Abhijit Hota

I'm looking for myself to be the best version of me, the most productive

That's the point, mate. The comment you replied to, said the same thing. He told about his own preference and why he chooses it. So I don't see the reason why it's "not cool".

Collapse
pavelloz profile image
Paweł Kowalski • Edited on

Mixing hackintosh and its kext nightmare into mac os discussion is not fair either, but here we are ;)

Im doing some frontend dev work and i cant go by without PS/Illustrator.

Thread Thread
cyberhck profile image
Nishchal Gautam

I don't understand this, for frontend work, I've never had to use PSD, because I expect UI designs on XD, Sketch or figma, and they have web interfaces to get specs and sometimes even parts of code that can be copied/pasted,

I'm sorry, but if you're using PSD to do UI design, it's like using hammer to drive screw through a wood, it can be done, but that's not what it's for.

Thread Thread
pavelloz profile image
Paweł Kowalski

Well, you should expand your horizons then.

Im working as FED longer than XD, Sketch or Figma exists, and PS was the ultimate slicing tool. And illustrator often is my go-to tool to edit vector graphics, because its just good.

Thread Thread
cyberhck profile image
Nishchal Gautam

How can you talk about expanding horizon when you aren't willing to use right tools for the job?

Also, if you're making ui designs, you aren't programming, you are designing, and if the title of this post was "is Linux good enough for everyday designing?" my answer would be no, just go with mac/windows, unless you can get away with just figma and need nothing else.

So again, if you use right tools for the job, and the job is building apps not specific to a platform, then yes, it's not just good enough for programming, it's better at most situation, and I standby this statement,

Now please talk about programming, don't talk about how I should now start to learn design and change my answer, that's not gonna happen

Thread Thread
pavelloz profile image
Paweł Kowalski • Edited on

So now know better whats right tool for MY job? ;-) This discussion is over. Have a nice career.

Thread Thread
cyberhck profile image
Nishchal Gautam

Yeah, and even if I see a carpenter trying to drive a screw with a hammer, I'd do the same, I'd just assume he's an inexperienced carpenter,

Psd isn't right tool for design, and it's certainly not a tool for programming, unless you happen to code something related to psd.

Thread Thread
pavelloz profile image
Paweł Kowalski

One day you will discover the difference between fact and opinion. This day will be huge for you, cherish it ;)

Thread Thread
cyberhck profile image
Nishchal Gautam

Where did I miss that?
author of a comment said "putting them down because you disagree isn't cool", what I said was, I've been using linux for quite a long time, and it's working awesome for me, (for me it's primary OS), so obviously it's good enough for every day programming (which is the title of this post btw)

and the fact I've been talking about (which I have evidence for btw,) is that I've been using linux for more than at least 6 years.

And not once have I had to say, ahh, linux sucks for programming, (but on other OSes, I've said it btw),

Now this thread is becoming a bit toxic, and I'm partly at fault which I noticed before in one of the comments.

But we're just expressing opinions and getting offended.

I'm gonna stop replying to this by just stating this:

  • I've used linux as only OS for about 4.5 years.
  • I've used MacOS for about 6 months
  • I've used windows for 1.5 years (in the recent years, not counting olden days)

And now I'm using both OSes, windows for gaming (NFS) and ubuntu for writing code (also CS:GO on ubuntu)

I have to use windows for my office work because it's not cross platform, and every day, I notice so many issues.

I standby this: "Yes, linux is good enough for everyday programming"

But obviously not if you're doing iOS development, or windows app development, or something similar.

But here's the thing, IF your target platform can be developed through Linux, (and you're new to linux), then you might find a bit friction at first, but once you start getting used to it, you won't feel like you're using your IDE on linux, it'll feel like you're using your IDE, unlike on windows, it's very apparent that you're using your IDE on windows. (it's that icky feeling)

docker runs faster, builds happen faster, consumes less memory and so on.

Again, the title of the article: "Is linux good enough for everyday programming"

I say yes

Collapse
bernardigiri profile image
Bernard Igiri

Krita, Inkscape, Gimp, who needs Photoshop anymore except for graphic artists?

Collapse
lkw23002894 profile image
LKW

Precisely this. And with modern web design, it's vector graphics we need, not bitmaps.

Some of the things we used to use Photoshop for can be done with CSS3, too.

The last time I used Windows was XP, and I haven't needed it since. If you miss the UI, use the Plasma or Cinnamon desktop.

Collapse
quazardous profile image
quazardous

Using a windows VM from Linux does it 😋

Collapse
jenoblair profile image
jenoblair

Same bro

Collapse
moghwan profile image
Marwane Author

I wasn't into the need for WSL since it doesn't increase my productivity, at least for me but I heard some positive feedbacks since the WSL2 came out. does it worth it for general web development?

Collapse
henryjw profile image
Henry Williams

I've been using WSL since the early days and can say that WSL2 is a huge improvement. It's not perfect, but for day-to-day web development it gets the job done. I've hardly had any issues with it.

I use a Macbook for work and it's definitely a more seamless experience, but WSL2 gets the job done for me.

If you decide to try WSL2, I highly suggest Pengwin because it comes with many dev tools installed out of the box and has a custom installer to install other tools (like GUI support, language runtimes, etc.).

Thread Thread
aleksandrhovhannisyan profile image
Aleksandr Hovhannisyan

I really want to upgrade to WSL2, but apparently there's a known memory leak issue, so I'm reluctant. WSL1 is so slow >:|

Collapse
captain_346 profile image
Shihab Mohammed

use latest version and get best distro depends on your work... Linux is the greatest OS of all time...

Collapse
miguelmota profile image
Miguel Mota

I'm able to run Windows and even macOS VMs on Linux which allow me to use Photoshop.

Collapse
dougaws profile image
Doug

I have three laptops: a Windows 10 one that I do most of my work on; and a MacPro and Linux Ubuntu 20.04 that I use to confirm everything on MacOS and Linux. All have their purposes. In most cases I use emacs for quick code/doc changes; VS Code for larger changes. If I need to create graphics, the Mac is best; if I want to quickly compile/build an app, Linux is fastest; one should use the appropriate tool for the task, not look at every task as a nail for a hammer.

Collapse
jmr_code_social profile image
Jorge Marquez

I can tell you my story.

I first was a Windows User, then I got introduced to Linux, it was awesome. A few years later I got a job where they gave me a macbook for work, it was nice, I looked fancy and it was similar to Linux but with a nicer GUI, but to be honest, I really hated knowing my macbook constantly communicated with apple, most of the time to send stats about the OS behavior, but really who knows what is really sending out there, it could be anything.

After I left, I bought a new laptop and immediately I installed Linux (Debian), I code, write, surf, design, pretty much everything and I am happy. Recently I got stuck in a course, it was about flutter and the course only covered mac and windows, but I moved around tweaking my laptop and finally got android studio up and running correctly and I am happy with it.

Linux Lover 4ever. having control of what you do and what you have for me is a must have. If you like nice GUI mac is ok. Sorry not a windows fan hehe, not even with the new win10 that runs linux inside.

GIMP for Photoshop and Inkscape for AI
MSOffice on linux can be run using wine, but I use google drive (docs and sheets)

Hope it helps

Collapse
evilnick profile image
Nick Veitch

There is a snap package for flutter now, just FYI
snapcraft.io/install/flutter/ubuntu

Collapse
kimschulz profile image
Kim Schulz

Interesting. This is about as far from the reality I have seen as a professional programmer for more than 15 years. Every developer I know complains if forced to use Windows for development as it is slow as hell and the tool chains are cr*p (unless they are by Microsoft and for Windows apps only).
Everyone uses Linux as all the tools are available there, it is fast and can be modified easily to fit everyone's needs. If some company policy forces the devs to use Windows or macos then they still prefer Linux in a VM over the other alternatives.
I do not recognize the stability mentioned with macos. For various reasons I have had to develop ios and macos apps which forces you to use macos. Never have I seen so many crashes, cpu hogs gone Wilde and memory disappearing for no good reason. Xcode is about as bad as any tool can be and constantly crashed - especially during debug sessions which forced us to restart everything as it could not reconnecd to the ios devices after that point.
But hey, there might be some Web devs or similar that fint it usable.

Collapse
moopet profile image
Ben Sinclair • Edited on

If some company policy forces the devs to use Windows or macos then they still prefer Linux in a VM

That's not my experience. In the last 15 years or so, most of the programmers I've worked with have preferred MacOS, a minority Windows and I've only known one or two who genuinely used Linux as their host OS - I'm one of them :)

Collapse
kimschulz profile image
Kim Schulz

You should get new friends 😊 I have yet to find others than Web devs (who are more fronted designers) that actually like macos. It is just too closed down for hardcore development. We have around 200 devs where I sit (c/c++/python/perl/java/kotlin/asm) and less than a handful use win, no macs at all. Seems to be the same with most of the companies we work with.
Anyways, the fun how it differs in some orgs around the world.

Thread Thread
cegonzalezspace profile image
Carlos G. (+A+CC)

I totally agree (except for a couple of exceptions of developers I respect and use Mac).
This is probably the same case discussed in other posts above: developers that need Windows or Mac to use Photoshop... whaaaaath??

Thread Thread
moopet profile image
Ben Sinclair • Edited on

In my experience, it's usually because of the (genuine) reputation of Macs being reliable, fast and pretty, the (false) reputation of Linux being unreliable or technically confusing, and the (false) reputation of them being somehow "better" for graphics or design.
The last isn't usually relevant to programming, but phrases like "web design" have muddied the water in recent years. They're also a status symbol in places like the US because of their price.

Most people who've used them would agree MacOS is a better general-purpose programming environment than Windows, but the trek to MacOS is daunting for someone used to Windows (and vice-versa). The switch to Linux is seen as daunting by both camps. Almost nobody starts off on Linux.

Thread Thread
cegonzalezspace profile image
Carlos G. (+A+CC)

I agree.
My question is: If MacOs fits your development requirements, why Linux shouldn't?

Thread Thread
moopet profile image
Ben Sinclair

If you are developing for MacOS, then you'll need MacOS to do it on. That's all I can think of.

Collapse
quazardous profile image
quazardous

I DON'T UNDERSTAND THE QUESTION !

Is linux good enough for everyday programming?

Is it some search engine optimization news ? A SEO troll ?

Now I'm freelance but in my corporate days we switch with nux years ago. Photoshop ? Doh ! Virtualization ! Open your windows VM from a snapshot is actually faster than loading Photoshop.

Fedora+gnome rocks ! Even the font size is better by default on my t470 in FHD. In windows it's too small or you have to max the dpi (but loose space).
And multi destop is working and productive since always. No need to ask your boss for 3 Dell screens to feel comfortable.

But Linux can be picky with laptop hardware sometime. Choose a good laptop (Thinkpads, xps) and your life will be easier.

Good morning troll bro

Collapse
moghwan profile image
Marwane Author

Thanks for pointing the java/.net line, what i meant is I'm not using them anymore since i finished my studies and I earlier worked with Kava in ubuntu with no problem, for .net I was mainly using Asp.net and Windows form apps and really didn't know much about .Net Core compatibility! I'll edit ithe post for that 😁

Collapse
zlorenzini profile image
zlorenzini

With Ubuntu 20.04 and Microsoft having almost completely given in to Linux, you can do some cool stuff now. Install VS Code, Powershell, .Net Core, and Docker. You can spin up a MS SQL Docker container and have a DB in about 5 seconds. Then set up VS Code to work with. NET Core and PS, which is pretty much automatic. Now you can code in C# .NET and MS SQL and publish your code as a Docker container with the web server inside. Or say you'd rather do React Native. Expo runs as well if not better than in any other platform. And as mentioned, scrcpy is the best thing in the world. I have gotten GIMP 2.10 to do everything I need. Mind you, my main system is Windows, but all my laptops are Linux because Linux makes it possible to actually get things done on a Asus Zenbook Flip with the 1.1 GHz ULV CPU. In Windows, it could be 15 minutes before I could use my computer if an update was pending. In Linux 15 seconds no matter what. And I can run GZDoom and MAME with playable framerates, even with a bluetooth keyboard and mouse.

Collapse
stereoplegic profile image
Mike Bybee • Edited on

I was the #1 KDE hater until GNOME 3/Shell. They have made great strides in performance (largely because Canonical has made a large push for it), but even still my every attempt at GNOME Shell ends the same: Quickly unusable due to freezing. I blame this on the Mutter window manager, because I experience the same issue to some degree on every other Mutter-based DE (Cinnamon, Pantheon, Budgie...). Meanwhile, I've considered KWin the best WM since KDE 4 (which was very buggy, but had enough great features that I stopped considering myself a KDE hater). Despite still having occasional gripes with Plasma, I consider it by far the best DE since KDE 5 was released. It's nice to see how much more inviting and personable their devs are too compared to the notoriously difficult GNOME devs, and Nate Graham's "Adventures in Linux and KDE"/"This Week in KDE" posts are an absolute treat.

Windows has improved immensely as an OS for developer (largely thanks to Linux, and again especially Canonical), but as you said, not great, not terrible.

MacOS is mostly great, when it allows itself to be installed - and I'm not talking about a Hackintosh on bare metal or VM, where I've had few problems on either in the last few years going with the newer, more vanilla install method; no, I'm talking about now being on my THIRD MacBook Pro (still supported, not an EOL issue) on which MacOS installs suddenly started erroring out and I was forced to install Linux (hell, on one I even successfully installed Win10 with EFI boot, not the crappy hybrid MBR that Bootcamp forces on you... But no MacOS). As much as I've invested in MBPs, I have zero qualms about running MacOS on something besides bare Apple metal.

I always come back to Linux anyway. I don't miss Photoshop at all, but I barely used it (for the types of small edits which are easy once you're used to GIMP anyway). Same with Illustrator, I'm perfectly fine with Inkscape. I'm looking forward to better Lottie support in both Inkscape and Synfig, because that's the only reason I'd ever bother with AfterEffects, and that seems like a convoluted workflow anyway. Likewise with office, I rarely find a situation where LibreOffice doesn't suit my needs

I'm a big fan of Manjaro (and it's stupid to me that vanilla Arch is still such a pain to install, even to someone with ~18 years of Linux experience like myself), but Ubuntu and its variants have always worked better on MBPs. Also, snaps aside, I prefer PPAs or other third party deb repos to AUR any day (and don't get me started on the horrific RPM collisions I've encountered from RedHat/CentOS/Fedora, OpenSuse, etc.). Also, there's no better distro for widely-supported and organized creative tools (even KXStudio can't compete with ubuntustudio-menu, and I use their repos too for audio). I'm a little miffed that Kubuntu 20.04 is stuck on KDE 5.18 (even if it makes sense because they're both LTS releases), but that will be solved in October with 20.10 (if I don't just go the Rolling Rhino route and pull from the devel repos - have I mentioned that I'm thinking about building my own distro based on all of the above?)

Collapse
cegonzalezspace profile image
Carlos G. (+A+CC)

I made an account justo to agree with your comment. More than 10 years on Linux in my case, many distros, and Manjaro KDE has offered the best experience (really surprising for an Arch based rolling release distro).

Collapse
stereoplegic profile image
Mike Bybee • Edited on

Sorry to disappoint you, then. To be clear, I still prefer Ubuntu-based distros (namely Kubuntu, or soon Ubuntu Studio when it switches to KDE in 20.10, because KDE Neon is even slower than LTS releases to update its base).

I might feel differently when I buy something other than a MacBook for my daily driver (this will be my last, both due to cost and the issues I detailed above). But Manjaro does get a lot of things right... though I don't think including Steam as a dependency of manjaro-{whatever_de}-full is one of them, as trying to remove it (I'm not a gamer) has led to it threatening to remove a lot of packages I do need (manjaro-{whatever_de}-minimal solves this mostly, but it's not a good feeling when coming from Debian/Ubuntu, where metapackages can be removed without uninstalling the dependencies they reference).

Chances are, I'll stick with (K)Ubuntu (Studio, plus a lot of extra repos). I'm not sure I'll ever trust another package manager as much as deb/apt, and I'd say that Ubuntu has done better in hardware support than other distros in 95% or more of the cases I've encountered.

I always try plenty of others, in typical Linux distro-hopping fashion, but always come back to Ubuntu.

Thread Thread
cegonzalezspace profile image
Carlos G. (+A+CC)

Yes, I agree with the general diagnosis. The discussion about distros might be interesting, but currently I think desktop environment discussion is more interesting. I'm glad to see many people recognizing the great job KDE is doing.

(K)Ubuntu is great, solid and a huge community which is very important, my default option to everyone who wants to start with Linux or for work. Manjaro is also great, really focused to bring an usable solution, personally I love having the latest software, specially KDE related updates.

But the original question was another, and the answer is yes. With Linux you have many options to get the most productive version of you. That is what you need for work, be productive, and in Linux environment you have the right tools to do that.

Collapse
moopet profile image
Ben Sinclair

I'm not sure why you would be surprised about this?

Thread Thread
cegonzalezspace profile image
Carlos G. (+A+CC)

Just because of past experiences with ArchLinux.
I don't have a full opinion about Arch... but I think rolling distros can be a bit more difficult to maintain. Generally, I do not recommend Manjaro to newcomers, because you have to worry more about keeping things up-to-date. And with updates, we know, sometimes small things need to be fixed visiting the forums jeje.

Collapse
ginsburgnm profile image
Noah Ginsburg

Manjaro: “You said you hated KDE right?”

Distros are decoupled from desktop environments, you can run KDE/Gnome/cinnamon/mate/i3/xfce/whatever on pretty much whatever distro you want. In fact there tend to be different downloads available for purposes of having a specific default desktop environment.

On a neat note, the installer image for OpenSUSE (at least tumbleweed) is so large because it let's you choose your environment during installation.

Collapse
cegonzalezspace profile image
Carlos G. (+A+CC)

Not totally true. Some distros do a better job with some desktop environment than others.
For example, I think Manjaro is the perfect choice for KDE... you need that KDE updates, which you don't have in Kubuntu.

Collapse
ginsburgnm profile image
Noah Ginsburg

You could instead use KDE neon, kde.org/distributions

KDE neon takes the latest Plasma desktop and KDE apps and builds them fresh each day for your pleasure, using the stable Ubuntu LTS base.

KDE neon is the only KDE desktop environment/distro pairing made by KDE (that I'm aware of); one would think if you want the true KDE experience you would get the distro straight from them ;)

Or as with any system you can just build from source.

Thread Thread
cegonzalezspace profile image
Carlos G. (+A+CC)

Yes, I recently tested KDE Neon too! And I like the idea.
For me, Manjaro KDE resulted in a slightly better experience.
In particular some KDE updates (specially recent 5.19 updates) introduced some small but annoying bugs, that I didn't see in Manjaro due to the testing process.

Thread Thread
ginsburgnm profile image
Noah Ginsburg

Whatever works for you, but I find it interesting that you call out manjaro for less bugs. In my experience arch and arch related operating systems are bug heavy due to their significant lack of testing capabilities. This is partially why people kinda wear "I run arch" as a badge of honor.

I've run manjaro before and while I didn't run it with KDE, so this experience doesn't particularly translate, I did see a litany of graphical bugs; and this was because of the rolling release style of the system. "Did the package build? Cool, release it"

I tend to find debian based operating systems more stable than Arch ones, but everyone has their own preferences. So I guess back to my original statement

Whatever works for you.

Collapse
lulebe profile image
Leander Berg

I use windows because I love my surface book and it's pen, so I can't switch. I'm not a professional programmer but do it as a hobby and also need to write a lot of analysis code at work (medical lab).
WSL2 works nicely. The new windows terminal app is a big improvement.
With those two things and windows 10's multiple desktops I have all the special needs figured out. Granted, there are issues here and there but I it costs me maybe 30mins per month for personal and work related issues to resolve them, and I'm sure I'd have other issues with a different OS when using some non-programming related apps. If I only used my PC for programming though, I'd certainly switch to Linux.

WSL2 is really underestimated though. It works very well for me and is way faster than WSL1 so no matter if it's running a complex analysis function or just compiling some webpack stuff, I've had a great experience so far.

Collapse
brokenthorn profile image
Paul-Sebastian Manole

This comment section is full of BS no matter the side they're on. Use your own experience and your own judgement! One article doesn't sum up everything for everyone and that includes you! Like I could tell you that I love both Windows 10 and Mac! How does that help you???

Collapse
stefan_stojanovic profile image
Stefan Stojanovic

The most overall comment from these comments + the story from the author => just use dual boot
Linux for programming because its faster and more menagable and Windows for other stuff you don't have on linux
I use Linux Mint XFCE for MERN projects and it's much more fluent then on win

Collapse
moghwan profile image
Marwane Author

I still have the dual boot with windows 10 just in case even I rarely need it lately, but we never know.

Collapse
nuculabs_dev profile image
Nucu Labs

Huh, I'm surprised you didn't try Windows Terminal along with WSL on Windows.

I have no problems writing python programs, debugging them and testing them using a remote python interpreter in WSL.

I wouldn't give up on Windows. Microsoft did a lot of improvements and for me it's an absolute pleasure to work in it.

Collapse
moghwan profile image
Marwane Author

Actually I played a little with WSL (not WSL2 tho) but it was a "meh" experience for me. But some comments mentioned that SWL2 is understimated and I'm thinking to give it a shote lated :D

Collapse
x3m profile image
Eduard Lucena

This website have been becoming in an antilinux community. Linux rules the internet and will continue to rule it, if you're lazy to learn it, don't blame the distro. If you call yourself a developer and need a driver, write it.

Collapse
cegonzalezspace profile image
Carlos G. (+A+CC)

Yeah... what are the chances you need to write a driver in Linux?

Collapse
aldridge_ai profile image
Aaron Aldridge

Linux is and always has been associated with programming. It's been common knowledge since before I was born. To even ask the question makes me wonder if the author is really a programmer.

Collapse
justinmaxwell profile image
Justin Maxwell • Edited on

There is an entire world of Microsoft oriented developers who work in .net, c#, etc and have only fiddled with Linux a bit now and again. They view Linux as a server OS, because that's the only place they've encountered it, and perhaps still don't grasp why the infrastructure team insist on running Linux boxes for web and db servers etc. That (ms) is not my world, but it exists and it is both dominates and is valid in many orgs.

Collapse
zlorenzini profile image
zlorenzini • Edited on

Fortunately, that is no longer the case. I have a Linux machine running .NET Core, Powershell, and MS SQL Server. You can install the extensions for VS Code so it behaves like Visual Studio, and test and publish your builds. If you use MS's SQL Docker image, you can spin up a SQL server in seconds. You can also use their Dockerfile to publish a .NET Core Function App to a container. Using these procedures, I was able to convert $250+ a month in Azure services to a $19 per month Linux VPS and it's 10 times faster. It's about the most ironic thing in the world, but Microsoft stuff runs way better in Linux.

Thread Thread
justinmaxwell profile image
Justin Maxwell

I'm not saying that there are not a ton of .NET people now using Linux... I'm just saying that there is still a vast number yet to take the plunge. But your reply is actually very helpful to me right now (I'm just starting to play with Azure)

Collapse
moghwan profile image
Marwane Author

check my socials in bio if youcre not sure 😁

Collapse
ramiro000 profile image
Ramiro Escudero

I dual boot Windows and Linux, and I found that both have their uses. I mainly use Windows for gaming, and other inane daily uses, and I use Linux for development. Why? Mainly because of the CLI. Maybe it's the fact I'm used to dev in Linux more than anything, but the workflow seems so seamless and doesn't get in your way. I can easily install/uninstall whatever I need, and if there is a very critical program that only runs on Windows, I can always run it on Wine. I used to run Ubuntu, back in 2008/9, but then I switched to Debian, then to Slackware current (which, while awesome for its no nonsense, diy philosophy, at the end of the day, I had to switch back to a distro where I can be less involved in distro things and more on actually developing) and now I'm using KDE Neon. All in all, I find any Linux distro to be an amazing OS for developing, as it's reliable, easily customizable, doesn't get in your way, and the CLI actually helps in your workflow.

Collapse
singhshivani profile image
Shivani Singh • Edited on

Yes I think Linux is better specifically than Windows(I'm not a Mac user and haven't tried it for many days to note down my reviews).
In term of the lagging and performance of course Linux is best! When it comes to softwares we always have an alternative mostly in all cases.

I have user more than 10 distros and I think Linux is way better than Windows!

Collapse
aicra profile image
marcia

I like what many are saying with the exception of Google docs...ew.
I'm a GNU Linux dev.
So I want to share my experience here real quick... I took a gig where I was issued a proprietary / Windows system. I also have a lot of Linux Dev kits I work with and on also ...AIoT. So one day I created a simple bash script of under 20 lines to replace this huge workflow on Windows....
I did share this with coworkers who then wanted it on Windows...first of all I don't do that and second of all - the time it would take to recreate this on Windows would be significant. Another thing I noticed was setting up servers and such were so easy on Linux, especially compared to winblows.
I was not surprised to read in one of these posts, people were having problems with modules or drivers - the kernel is so inflated right now... Compared to back in the day. Another thing I see a lot of is developers not understanding how to build modules and load these drivers into the kernel...
I did a gig a few years ago with a macbook and it was slick.. but yeah it wasn't a developer's tool really.
I'll stick to Linux. Despite all the cultural issues with Debian etc.

Collapse
johanpiet2 profile image
Johan Pieterse

I am developing in PHP on Symfony stack. Also Java and C#.
For development in php and java Linux is best. I use to use Ubuntu but lately Suse.
I still boot into windows for my day to day work when creating documents and other windows based apps.
WSL totally does not work. After being a developer for 25+ years I could not get it to work.

Collapse
_codegears_ profile image
Code Gears

So you complain about the installation and maintenance of macOS. You now that macOS is intended to be installed on Apple machines. I think it's rather uncool to compare your experience with OSes that have a "natural way" to be installed on a HP computer with macOS that has to be "frankensteined" on this machine.

I would be interested in an unbiased experience report, say compared with a similar Apple MacBook Pro.

And yes, for the record, I have an Apple computer as a main dev machine, but also worked with Linux and Windows. I have my preferences for all of those OSes, but in different fields of application.

Collapse
moghwan profile image
Marwane Author

I used mac os with macbook before but I liked to mention it with HP laptop just to clearify that mac is stable wherever the hardware is compatible, even I heard some had issues with it with some macbooks. I tend also not to update it regulary so it could be that I guess.

Collapse
markbatho profile image
markbatho

Hey! I want to say thank you for mentioning scrcpy! I am using a 5 years old laptop with just 4Gb of ram, and it's pretty not enough for the emulator.
I am using Fedora 32 with Gnome 3.36 DE and it's working great for me. It satisfies my needs like running multiple tabs in Firefox (YouTube always on of them), usually I make website designs in Figma. I can run VS Code smoothly and some command line utilities. In my personal experience I can tell that Fedora it's a great distro and I recommend it for developers or simple users with old hardware.

Collapse
sabatesduran profile image
Dídac Sabatés

For me trying to develop in a Windows env has not been an option since I was getting tired of VM's (2014-2016). I've been using Linux for the past 10 years and it has been great, also at work from (2016-2020), now for my job I have to use MacOS and running Docker compose in an Apple machine I have a lot of problems with battery live and heating CPU temps above 100ºC .
For me also I got use to Gimp and Libre Office / Google Docs.

Collapse
darkain profile image
Vincent Milum Jr

The way I've done web development for the past 15ish years.

I treat my desktop like a dumb terminal in those regards. My desktop runs whatever OS I happen to be running, and Sublime Text. Then I have a network share into a central file server to actually store the code I'm working on, so I'm always 100% working with a remote copy of the code, nothing is ever local.

Then, I have a whole fleet of VMs on various servers accessing that exact same file share. These different VMs handle unit testing, compatibility testing, and the like.

For instance, one of the main things I was developing was a set of PHP libraries and a core framework. I had different VMs built out for various PHP versions and OSes to ensure compatibility. This was significantly faster than doing docker/containers, as these were all persistent VMs that never shut down. I could get feedback on any one of them doing the entire unit testing suite in under 1s.

All of that code today still works perfectly on PHP 5.4 through 7.4. And yes, I actively maintain EOLed PHP versions. The libraries in question help modernize legacy applications, so they can be integrated while still operating on older installs, and then once the codebase is ready, be pushed to a modern PHP version.

And yet, to circle back around, nothing was tied to the desktop. What ever machine I just happened to be on, would work. Also, another tidbit. My SSH key is managed through a Yubikey, so I even take that with me anywhere I go. I would frequently find myself at a friend's house working on projects with them, and could hop on their dev machines, have full access to my code, and do git commits without worrying about security. This level of mobility is absolutely amazing.

Collapse
pentacular profile image
pentacular

It should be clear that Linux is good enough for programming for some people.

Which means that you are asking the wrong question.

The question to ask is, "Are you one of those people, and if not, why not?"

Collapse
ode42 profile image
Otso Kurkela

Linux is absolutely great (I would say the best) OS for programming, but there are exceptions of course. Visual Studio missing is bad, and game development isn't too fun, but for almost all kinds of programming Linux is good choise.

Collapse
roylevi profile image
Roy Olsen

You are certainly not alone in this perception. Working for a successful ISV, all of our developers run Linux in their laptops while just about everyone else runs MacOS, including Ops/SRE. The latter have dedicated Linux workstations to compliment their MacBooks, though.

Collapse
cacarrpdxweb profile image
Christopher Carr

" ... linux’s ones in general: ..."

Those aren't Linux problems, they are Adobe and Microsoft problems. :)

Collapse
bernardigiri profile image
Bernard Igiri

I've been 100% Linux since at least 2010. I'm more productive when I have a better CLI experience and more available system memory. I also spend way less on hardware as it takes much longer for me to feel like I need an upgrade. In fact my last upgrade was only to get portability from a desktop to a laptop. My current machine is actually slower and it's still a beast with KDE Neon. I have a 9360 XPS 13 Developer Edition with an i7 and 16GB RAM.

Collapse
variemai profile image
Ioannis Vardas

Yes. Neeeeext!

Collapse
psic profile image
psic

What the point about photoshop, light room and excel when talking about programming?
Even Linux, is not about DE, there are other pro and cons with Linux and programming. Even distro is not so important.

Collapse
aleksandrhovhannisyan profile image
Aleksandr Hovhannisyan

I’ll resume my experience with one line: “not great, not terrible”

Accurate, lol.

I already missed the unix cli. Yeah I know there’s cmder and other tools

Have you looked into setting up WSL + Windows Terminal? It's basically like you're using Linux but on a Windows machine. It's not great, and WSL2 does have some memory leak issues at the moment, but it's about as close as you can get to true Linux dev on a Windows machine.

Collapse
moghwan profile image
Marwane Author

I tried the WSL with debian image but not version 2, if you say son i'll give it a try later then!

Collapse
ferdelvalle profile image
Fernando Del Valle

I run a arch desktop that runs docker containers with my dev environment, so I SSH into it from any OS.

I thank that unless yourw coding swift, os is not as important ad being able to use the tools of your trade, I mean at tgis point and age, vim runs everywhere, and even BSD runs VSCode...

Collapse
sswam profile image
Sam Watkins

The title of this post offends me a little! "Is linux good enough for everyday programming?" I think that Linux is extremely better for programming and ops than Windows or Mac, there is no comparison. It is an open-source system created largely by programmers, for programmers.

Personally I do dual boot with Windows 10, which I only need for games and the odd random application. I am not too big on the graphic design, and GIMP suffices for my needs together with command-line tools such as imagemagick and ffmpeg.

You could also explore VirtualBox or similar if you don't like to dual-boot. If some applications that you need don't run on Linux, and don't have suitable equivalents on Linux, and don't run adequately under emulation (such as Wine), and don't work well enough in VirtualBox, please petition the vendors to support Linux in future releases.

Collapse
rahxuls profile image
Rahul

Agreed with that.

Collapse
joelbonetr profile image
JoelBonetR • Edited on

Adobe tools... If you need them you can get Photopea which is a web based tool, and so accessible from any platform and inkscape which is one of the few adobe alternatives which works well enough for being a real alternative.

You can get official drivers from AMD on supported builds (that's why I'm using full AMD devices).

But most important: You must no need photoshop or lightroom, those are digital photography edition tools and you stated "for programming" so it's like i perform a review about using Mac for photo edition and I blame it for not having native docker so I've to virtualize it, getting less performance.

There are a bunch of tools (mainly web tools) that works as a bridge between designers and programmers, like Abstract or Axure Share.

Collapse
abinash393 profile image
αвιηαѕн

Most of the developer needs a UNIX like OS for a productive workflow.

Mac works but not everyone can afford it.

If you need a text editor, terminal emulator, web browser then Linux is your best choice.

Those who work with adobe suite or play lots of AAA games then Linux is maybe not a great choice.

Free BSD is very stable and its works but lots of Apps are not available for that platform.

I am currently using KDE neon for about a year I am quite happy with it never crashed Memory uses is ~400MB and it is very customizable.

Collapse
bam92 profile image
Abel Lifaefi Mbula

Thank you for sharing your experience with us. I appreciate.

I'm a unix-like user (Debian) for many years, so I think I can say something too (also now I'm writing this comment on a W10 machine).

I see many people in the comments talking about Linux (Ubuntu for most of them) lacking drivers and some other software programs. That's true. But, what you should be aware of is how GNU/Linux systems are built. Most of the distros rely on free and open-source standards, unfortunately, some drivers companies (if not most) don't even like the open world, so it is very complicated for the community to do reverse engineering on those kinds of materials.

So, the problem is not at all that GNU/Linux systems are not capable, but the provides don't allow them to do good work for people.

Coming back in programming in general, I can say that it is a bit difficult to easily get started on Windows that on a Linux machine. Software installations and installations management are just simple. Simple commands do a great job.

Collapse
abbddos profile image
Abdul Rahman Sabbagh

One good thing about linux is that you don't have to stick to a particular layout or desktop environment, and both KDE and Gnome are highly customizable.

I don't do any graphics, so the lack of powerful software like photoshop was not a big deal, and WPS office is sufficient to my regular work.

The reason I switched to Linux in 2015 was the annoying windows updates, along with its inflexibility. I needed something fast, flexible, affordable and that can run on my old computer at that time.

I kid you not, since I made that switch, I was able to do things that I've never thought of doing on Windows.