loading...

Is linux good enough for everyday programming?

Marwane on July 19, 2020

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... [Read Full]
markdown guide
 

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

 

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.

 

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.

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.

GPU access is available in the latest Windows Insider builds now

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

 

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

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)

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

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.

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

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.

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

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

 

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.

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

 

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

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.

 

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

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)

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.

 

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

 

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.

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.

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.

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

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

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.

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

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

 

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

 

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.

 
 

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?

 

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

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

 

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

 

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

 

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.

 

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

 
 

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.

 

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 :)

 

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.

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??

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.

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

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

 

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.

 

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.

 

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.

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.

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.

 

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?)

 

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

 

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.

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.

 

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

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.

 

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.

 

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

 

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.

 

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

 

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

 

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.

 

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

 

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.

 

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

 

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.

 

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.

 

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.

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)

 

check my socials in bio if youcre not sure 😁

 

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???

 

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.

 

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.

 

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.

 

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.

 

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!

 

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.

 

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.

 

For art (digital drawing, mostly) and photography (no heavy retouching, more like minor photo corrections), even on Windows I completely switched away from Adobe, mainly because I'm tired of their horrendous UX and unethical practices.

Went with Krita, my fav. drawing software, and Darktable, for photo correction / sorting.

As for MS office, well I don't use anything like so at work, so I've got this side covered.

I went for a plain Arch after running into a few long-running upgrades with Manjaro (my 4+y setup started to have some kernel conflict issues, which I was too lazy to deal with, so I jumped ships), and after using XFCE for a very long time, I ultimately ended up - and stayed - on bspwm (with no status bar whatsoever, only conky and my own project, sinx, for data grabbing).


As feedback about your post, I must say that I did not get this following part, would you mind explaining it a bit further? I understood it as "there's no support", which I'd say is wrong as I'm making JRE8 and JDK14 cohabit right now, with .NET Core 3.0!

Java/.Net: RIP.

 

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 😁

 

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?"

 

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.

 

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.

 

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.

 

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.

 

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

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

 

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.

 
 

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

 

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.

 

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.

 

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

 

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.

 

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.

 

Manjaro -> Gnome is love. Imo Manjaro has best Gnome setup out of the box then any distro I've tried. It's been my daily driver for almost a year now.

I use GIMP and ShotCut and all the other FOS software and it does me just fine. It takes some time to adjust, but I just love the Linux ecosystem and what it stands for.

 

Yes of course. I'm using linux as web developer. I only can figure out 3 scenarios on which Linux can't fit for our job:

1- Outdated workarounds (by 10+ years for being precise) and/or bad use of tools, such as needing photoshop for coding (dude WTF? There are tones of tools like Abstract out there to share designs with developers on a friendly way (with version control for designs, inspect tools, available from any device with a browser, and so).

Moreover, if you want to rely on using PS for integrating psds into your html by stubbornness instead on moving to something better from any point of view, you can use photopea which is a Free online photoshop with the 100% features a developer could need and the 90% features a designer who is used to PS could need.

2- You are programming on a .net environment in which case you'll need a windows.

3- You are programming for iOS environment so you'll need a Mac.

 

Yes, not only a day or week or month or year you can program or work or play or do anything in your entire life and beyond through out with Linux without shutting down or turning off your device...
Because it's not Windows that means no crashings, no bluescreen, no updates that take over your device, even no lags and hangs...
That's why Linux is using for mostest servers in the world, because that can run flawlessly without any hickups or crashings or shutdowns...

 

Hi guys, just out of a curiosity, we love Linux so much, but do you guys donate to open source? And if so, that what amount per year on average?
I myself think in general I'm sending around 50 USD per year to various projects. I'm also buying OS hardware (like pine book pro) to support community

 

It really doesn't depend on the OS, it depends on what the need is for the specific job. But with that said, yes, Linux is more than perfectly capable as a development platform. I use MacOS and Linux exclusively these days, as my job generally revolves around internet related technologies (web dev, back end, etc) and is also heavily focused on Apache Projects and other open source. Because of open source, I'd even argue that Linux is the superior option for most open source projects, unless that open source project involves .NET/C#. Then it might behoove one to have Windows for the Visual Studio option.

But otherwise, MacOS and Linux are entirely, completely, 100% viable for the vast majority of software development.

For the graphics tools though, if you can switch to Linux compatible software then you can easily transfer your dev there. I can profer other tips too for Gimp and whatever else one would need.

However the other option is to, if you want a solid platform, I'd still stick to MacOS for the foreseeable future (until maybe when they change a chipset and that may mess things up).

 

I used macOS for years and I loved it because it has the simplicity of a commercial OS but you can do advanced tasks like any UNIX based system. And because I was using a MacBook Air, the hardware wasn't enough for the tasks I started doing so I build my computer and installed Ubuntu, and it's been great, sometimes I miss some features from macOS but in general, Ubuntu is great for programming.

 

Good post, thank you!
I think you would benefit from getting to know elementary.os distribution. Debian based and a the UI just works - unlike every other distro I came to know through my +20y of programming.
Best

 

I am using an HP Pavilion dm4 I bought in 2010, it has an i5 second generation, these are the full features: support.hp.com/us-en/document/c028...

The only change I have done is, I increased memory to 8GB and installed a 500GB SSD.

I have installed CentOS 7 with XFCE and all of this:

  • IntelliJ IDEA
  • ATOM Editor(It seems it works faster than VS Code)
  • Opera Web browser
  • Google Chrome for Netflix and PrimeVideo
  • Thunar file browser.
  • smplayer as music player.

The very good news is that with all of those apps open at the same time, my computer runs very fast and only consuming 3.1 GB ram.

This is, we do not need windows 10 nor the last computer in the market to have fun and work fine.

Even it runs on battery and works very good.

 

MacOS is the best. It has similar terminal and is Unix based and also has something that Linux doesn't have: big support from big companies. So you have things like Photoshop or Affinity software, MS Office etc. Second thing is that you don't need to worry about drivers.

But I had Ubuntu installed on my old laptop and I must admit that Linux is good starting point for beginners.

Also I tried WSDL but it didn't worked so well so I fully switched to MacOS.

 

Honestly, I don't see 'linux' as the primary dev platform honestly.

WSL2 is a powerful tool, alongside Hyper-V which is an entirely powerful sideways for a cli tool.
-- There are some polishing needed for wsl2, but assuming you don't hit the 2nd drive hickups. (though easily worked around if you need access to a massive drive)

powershell & cmd are stupidly powerful cli with all the system commands & functionality without a problem.

VS: Code can utilize WSL1/2 linux & within the same system you can as easily swap to linux subsystem & test linux out without any problems) & even without any real effort ... connect to a mac OS install with the same code to test out the program functionality there.

That is as well to point out that 'docker' works perfectly with WSL support & is integrated exceptionally smoothly and allows swapping from the linux kernel to windows kernel.

Honestly, I am not bothered by your post, but I would point out that claiming CLI interface as a linux strength is .... short sited. Now the Unix like setup is one thing, .... but as to much that is a preference.

 

I would say, it is depend on the needs, regulation/policy and pocket size.
But in short: use whichever feel better what suits you.

[tl;dr]
If you have countless money or you can get good revenue then definitely go for MAC because development, containers, frontend related tasks and video edition could work seamlessly, with some limitation of course.

If you need low level development, without any fancy stuff (e.g. no frontend, just pure low~ish level coding, such as c++) then Linux is way ahead of everything. Popular distros mean more support and community knowledge (ofc 85% garbage).

If you have policy, when you have to use MS for development, you still can. It is quite good, cheaper than the mac counterpart, but could have some limitation (docker vs windows 10) and WSL not every single time works and you have to go through a bunch of small details, how and what. And keep in mind, if you pollute your ms host machine, then it will drop significantly the performance and does not make easy to switch between versions.

(ps.: I know virtualbox always an option but with that, you always sacrifice a bunch of performance)

My personal opinion is, either Linux, either Mac for pure development. Mac or Windows for design and MAC for video related.

 

I use Linux as my daily driver, both at work and at home. So yep, Linux is good enough, to answer your question.

There are things that I need to do that simply aren't as nice in Linux though, like video editing in Adobe... but that's not remotely related to programming (for me).

 

I'am using Linux (Ubuntu 20.04 LTS) as host system, for small tools (C#, Python, Bash) i code in VS Code on the Linux.

But for ASP.NET Core, Java and oher demanding Frameworks and Languages,
I code under a virtual machine on windows, cause Visual Studio just runs on Windows or macOS.

And this works very good. Today, the virtual machines are very performant.

I don't have to switch back to Windows 10. The Updates, not a Linux Kernel,.. all these things, is what i don't like on Windows.

The Windows Subsystem works for small tools like nmap or telnet, but Docker, etc. don't work.

I dont use Photoshop, or some else commercial tools. I'am using GIMP for Photoshop, yes, it's not the best.. But it's OpenSource, free, based on non-Profit and more..

 

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.

 

Few weeks ago, I migrated completely to Kubuntu (yes... KDE version of Ubuntu) and NPM package installation has been very fast compared to time it took on Windows 10.

I regret going with KDE, which I thought looked great because

  1. Multi-monitor feature has been buggy
  2. Doesn't auto-rotate the screen (I have a 2-in-1 spectre x360 monitor which I turn upside down once in a while)
  3. IME (I use Korean input) has been hard to set up.

Unity (Ubuntu) has much better support for multi-monitor and auto-rotated my screen and has been a breeze for IME set up.

And also as I am new, documentation and community support is essential. It was tough to find Kubuntu-specific answers as many of setups/configurations were shown in Unity.

 

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.

 

I'm using a GNU/Linux on a HP Pavilion "gaming" laptop for my job for the last 3+ years. In general, I'm a GNU/Linux user for about 15 years. Luckily I need exactly 0 Windows programs for work.

Funny enough on my current job I'm working on a desktop .NET product that is used almost exclusively on Windows and all my coworkers use Windows, but thanks to .NET Core and Rider I'm perfectly fine. :)

Frankly speaking we specifically maintain GNU/Linux compatibility for the core of our product that supports running on a server. And I never touch GUI part.

As for the GNU/Linux distribution I'm using Linux Mint and perfectly happy with it. :) Everything I have works out-of-the-box with almost zero configuration from my side.

Just a random data point, I'm not arguing for anything. :)

 

If we talk about "everyday programming" then I'd say Linux only falls short if you really need commercial software like Photoshop, or Microsoft/Windows specific software like MS Office, Visual Studio or .NET ... if you only use open source software like Node, PHP, VSCode, Java and so on then I'd say Linux is more than adequate.

If you need (for instance) game support then you're better off with Windows ... and if you're a graphics design wizard then a Mac might be better ... but the topic of the post is "Is Linux good enough for everyday programming" and then I'd answer that with a resounding "yes".

 

For my is better than Windows because It gives me freedom, I can use the distro which fits better to me. I'm the only one who cares about that? Also I prefer a more unix like way to do the things. I don't use Photoshop or Office often,(actually most of programmers dont use it?), so I can use GIMP and LibreOffice, they are free and enough for me. If I have to deal with propietary office documents I can use office online.

 

I remember, back in my days, when I first tried a Linux distro. It was Mandrake 10. I remember coding in C and C++, listening to music, and having fun. I'm currently on Pop_OS! 20.04, I am Microsoft-free since 2013 (not entirely true because I use VSCode and play Minecraft).

One of the things I hated in Windows was some problems we had with file permission. I don't know if it has been addressed by now but it was not possible to remove the read-only status of a folder recursively without the need for a "super-admin" sketchy software. Like you said, without any POSIX terminal (like in Linux, macOS, and Unix system), it was impractical. I heard that today WSL 2 Windows is now in the game, but I don't get why I would go to Windows so I could use a software that makes it more like Linux.

And please, for the love of God, can Microsoft just make everybody happy and remove the need for '\r' character?

 

Nice to know about your experience, i work only with Ubuntu arround one month and back to windows 10 with wsl2 after that, there's great things in Ubuntu I'm want to bring to windows.

 

I've never found any issue every to developing on linux really. Most every tool was either made for or works just fine on linux, except for games stuff. Games is certainly a different beast.

 

Does it matter? VS Code can run on anything. And if you need to test on a platform, that's what VMs are for.

 

WSL(windows subsystem for linux) to rescue.........

 

This post inspired me to create a Dev.to account, thanks for the awesome write up! I'm still on Ubuntu at the moment but that's only because I love having ZFS baked into my kernel from source.

 

Well the point is no OS is complete. You want Productivity/Designing go for mac , You want gaming , choose windows. You want little bit from both worlds , choose Linux

 

I'm using Linux for everyday programming and primary OS on my laptop since 2014

 

I think you're kidding right? If you are a developer you know about Linux's greatness!

 

Using win 10 with WSL 2, I am a backend developer. Let's see how far things go. 😂

 

Apple release iLife when Adobe was lacking on macOS, i think we (the Linux community) should complain about this to Canonical and RedHat, and maybe they can release a good alternative to Adobe CC

 

I've been using Arch Linux as my main distro and it works so well for development and everything else that I'll probably never go back to Windows or MacOS anytime soon. I ♡ 🐧

 

Like shocked that this article is being written in this century.

 

For Photoshop I use WINE. It works better on Linux than windows 10 because windows is a Ram hog doesn't let me run Photoshop.

 

For sure! I've been using Debian at home for at least a decade already.

 

Try WSL 2. You can keep your MS Office and Photoshop while doing the Unix CLI on the Windows Terminal

 
 

Linux is the greatest OS of all time* nothing more to say...

 

I have been using ubuntu for 4 years, and I am very happy with it. I do need photoshop and illustrator occasionally, well I use another windows desktop.

 
 
Sloan, the sloth mascot Comment marked as low quality/non-constructive by the community View code of conduct

I can't take this article seriously. There is no doubt Linux is good enough for everyday programming. Thousands of people are using it exactly because of that.

Has Linux it's quirks? Yes surely as any OS does. Might there be issues with drivers or programs not being available? Sure but usually this is even a bigger problem on MacOS.

Obviously it is ok to have your personal preference and all, but that article is not written in that way, especially the title. Also no mentioning of the problematic legal problems with Hackintoshs especially in some countries.

 

Did you miss the big black "Conclusion" and right underneath it where OP said "finally and personally I’ll stick with linux..."?

 
Sloan, the sloth mascot Comment marked as low quality/non-constructive by the community View code of conduct

It’s hard to take any articles seriously on here

Code of Conduct Report abuse