loading...
Cover image for Is Ubuntu Or Fedora A Better Distro For Programmers?

Fedora vs Ubuntu Is Ubuntu Or Fedora A Better Distro For Programmers?

prahladyeri profile image Prahlad Yeri ・2 min read

A whole lot of thinking goes into what distro you should use as a dev. Its not just about your preference or what you like in terms of the Desktop GUI, packaging system or any other aspects of the workflow but there are a lot of other things too. For example, the larger ecosystem of that distro and the kind of support you get matter a lot.

Personally, I use Ubuntu as a daily driver, so I'm a bit biased here! The best thing that I like about Ubuntu is that it simply works. Perhaps the Red Hat and openSUSE have also improved a lot these days but there was a time at least as late as the 2010-2014s when Ubuntu had an upper hand in hardware support and desktop finesse. If you had a laptop with a special kind of touchpad or a WiFi/graphic card manufactured by a "linux unfriendly" actor like NVidia or Broadcom, chances are that it'd simply give up on you with any other distro than Ubuntu.

And even in cases where they did work, they left a lot to be desired. With Debian, for instance, many default settings are simply unusable on a desktop. For example, font anti-aliasing is usually set to off (at least on Debian-XFCE when I last tried) giving your desktop fonts a weird look. Secondly, they don't even provide a GUI to control your touchpad settings, they expect you to Google about the issue and fiddle with the byzantine /etc/* config files yourself!

Not that I can't do that, but why should I when Ubuntu gives me a configured and polished desktop by default?

Coming to Fedora, the desktop never had any issues (especially in the GNOME version), but I somehow didn't much like their packaging system (yum/dnf). Ubuntu's apt install works seamlessly and comes with special tools like synaptic and aptitude to take care of advanced scenarios. To be fair, I didn't put much effort to learn dnf but I don't see the point of it unless I'm getting any long-term benefit out of it.

Another advantage of Fedora which is often touted is that they provide a "bleeding edge" distro which means the apps are all supposed to be the latest versions. But frankly, I've never felt the need for a super-latest package at all and in a few weeks time, the new release will trickle down to all the distros eventually anyway. Running a stable and secure version of an app is far more important to me than having the latest one.

Finally, what I don't like about Ubuntu is their support! The official bug tracker at bugs.launchpad.net/ubuntu is atrocious when it comes to getting a problem solved. The maintainers' attitude there is like that of govt. employees! But thankfully, there are some other places like askubuntu and ubuntuforums where you can find sane voices.

What distro do you use as a daily driver for programming? What are its pros and cons, and are you happy with it?

Discussion

pic
Editor guide
Collapse
itsjzt profile image
Saurabh Sharma

In my case, If I get

  1. a web browser (firefox, chrome).
  2. the language tools (IDE, compilers, text editor).
  3. a simple terminal for non-trivial stuff.

then the OS doesn't matter. I'm using ubuntu and windows 10 and they don't really make any difference.

Collapse
prahladyeri profile image
Prahlad Yeri Author

The language tools sometimes have a deep integration with the distro. Your language package manager (pip/composer/npm/etc.) can have libraries or packages that could be incompatible with your distro's version. Besides, there could be multiple choices too as your distro might be offering the same thing through apt/dnf which the pip/npm offers. At that time, a distro that handles it gracefully matters a lot!

Collapse
itsjzt profile image
Saurabh Sharma

I agree that some language have better integration and support on *nix OSes, ruby comes in my mind and notable mention goes to node-gyp.

I'm usually doing nodejs, golang or java so this doesn't make an difference for me.

Collapse
stevepryde profile image
Steve Pryde

I think there is a trend away from deep integration with the distro nowadays. The preferred setup for Python is to use a virtualenv of some sort, and I think pip will install into the home directory by default now. Likewise with Node.js we use nvm to manage node versions, and the preferred way is to make npm -g install into the home directory also.

In addition to that there is a move towards deploying software with Docker, precisely because it handles all of the dependencies regardless of the underlying OS (as long as the OS supports docker).

With the arrival of containers (including snap, flatpak and so on) I think we will see the underlying OS become less important in how we develop on the desktop. I think this is a good trend.

Thread Thread
patarapolw profile image
Pacharapol Withayasakpunt

I think Docker at its core is a Linux OS without a desktop environment. You can even choose a distro, like Alpine or Ubuntu.

Collapse
siy profile image
Sergiy Yevtushenko

Little bit more command line tools and windows is a just disaster.

Collapse
expositionofinsides profile image
ExpositionOfInsides

Arch because it's bleeding edge.

Collapse
tiguchi profile image
Thomas Iguchi

I did a whole week of top 10 distro testing and Arch Linux Manjaro was the only one that worked out of the box on my system without having to fix things from the console. I have an RTX Nvidia graphics card which doesn't play nicely with X-Server, let alone Wayland. Arch Manjaro automatically installed the proprietary driver for me and even the live CD / installer worked like a charm and used the correct screen resolution with NVidia drivers right away. So yeah, thumbs up for Arch Manjaro

Collapse
omrisama profile image
Omri Gabay

Arch did that for you? That's insane.

Collapse
aiguofer profile image
Diego Fernández Giraldo

Don't get me wrong, I love Arch.... But really!? Definitely not what Arch is known for.

Thread Thread
deciduously profile image
Ben Lovy

Lots of these distros get a bad rap because of reputations built years ago when they were less complete.

Thread Thread
aiguofer profile image
Diego Fernández Giraldo

Hmm, I wouldn't call it "bad rap"... it always just seemed to me like Arch was more being more hands on to configure your system exactly how you wanted it. Maybe that's changed since I switched to Fedora years ago. I used Arch for years before I switched to Fedora when I joined RH and I absolutely loved it. I learned A LOT, but I don't have as much time as I used to to make sure rolling release updates are compatible and won't break my system.

Thread Thread
deciduously profile image
Ben Lovy

I dont think working automated hardware detection and driver selection takes away from the DIYness of it. It's still a minimal distro, you get a shell on install and build it up yourself, you just don't need to debug as many driver problems these days.

Thread Thread
stewieandro profile image
Stuart Slaugh

Arch is great as a way of gaing a deeper understanding of the OS, but as a realiable dolistro distro for your workflow, that's another matter. I do a lot of Java for Mobile and desktop because of javafx and Scenebuilder. Scenebuilder combined with a growing ecosystem of controls is a great tool. I recently did the install from scratch with Arch which was nice challenge. But I cannot get Scenebuilder to install! None of the AUR releases will compile, and I simply don't have the time to or patience to slog through build files trying to find the problems. Gluon only offers .deb and .rpm for Linux, so I tried debtap which also failed. Arch is for OS enthusiasts, but too unpredictable to rely on. Manjaro has a lot of good features but the rolling updates are always potentially a another slog through build files.
I'm going back to Ubuntu, which as the author stated just works' and apt package management is the best in the Linux world.

Collapse
v6 profile image
🦄N B🛡

I see what you did there, you rapscallion.

Collapse
andevr profile image
drew

Do you happen to game at all? I've been having a lot of trouble with ubuntu. It didnt install nvidia drivers and I'm having issues getting them installed. Thinking about giving manjaro shot

Thread Thread
tiguchi profile image
Thomas Iguchi

Yes, I do play games, including VR games, but I use Windows 10 for that. I think Linux is not really the best platform for that, mostly because the whole range of games is not fully available. Not so much because of technical issues.

I've also had a hard time with Ubuntu on my machine. It kept freezing and crashing hard no matter whether I used the Open Source nouveau driver (with abysmal performance) or the proprietary one. I think at that time RTX was still a bit too new.

When I tested various other distros I noticed that good old X-Server was most reliable with my RTX card. Anything that ran on top of the newer Wayland gave me a hard time, and caused frequent random freezes only the reset button could sort out. That problem wasn't just specific to Ubuntu though.

I've been using KDE Neon instead of Manjaro for a little over a year now. Neon is based on Ubuntu, but it still allows you to use X-Server instead of Wayland. It doesn't install the proprietary driver automatically, but it was easy to install and replace the default "nouveau" driver.

I haven't had any graphics glitches, freezes or stability issues throughout that year

Collapse
prahladyeri profile image
Prahlad Yeri Author

That sounds cool! I might try Arch soon.

Thread Thread
benyazi profile image
Benjamin Yazi

You may try Manjaro, this is distro based on Arch, but more user-friendly.

Thread Thread
tiguchi profile image
Thomas Iguchi

As it turns out, Manjaro is actually the distro that installed flawlessly on my PC and not Arch ¯_(ツ)_/¯

Thread Thread
ghost profile image
Ghost

yea, that was weird, Arch install is just a console, installing it without a console would make you a god!. But as an Arch use you would have to praise yourself :)

Collapse
v6 profile image
🦄N B🛡

In systems theory, the more bleeding edge your work, the more standardized and less bleeding edge you want your environment for that work. That way you can better assume an anomaly comes from the work, as opposed to the environment.

It's part of the reasoning behind the likes of Vagrant and Docker.

Collapse
danielkvist profile image
Daniel

I think Ubuntu is one of the most consistent systems for developers, especially for things like this: github.com/ubuntu/ubuntu-make.

In Arch I always have problems with Docker and in Fedora/openSUSE unfortunately there's always something that doesn't work right for me.

But it's just my opinion and my experience.

Collapse
prahladyeri profile image
Prahlad Yeri Author

That's true, I also use Ubuntu because of consistency. If you consider the LTS journey from Trusty (14.04) to Bionic (18.04), the only major change has been a shift from upstart to systemd (which was a global change in all linux distros).

But in Fedora, every little thing changes drastically every six months! Their very package manager has changed from yum to dnf!

Collapse
chiefnoah profile image
Noah Pederson

dnf was a long overdue change. yum was used for like a decade before.

Thread Thread
xexyl profile image
xexzy

dnf is still awful for administrators.

The logging is a bloody nightmare. Even the devs admit that it wasn't ready in what they wanted when they released it (see below). They actually suggest too that there's an analogue to /var/log/yum.log - in dnf. No there ruddy well isn't. Not at all. It's a joke.

They say they think that users (as if installing software is a 'users' thing?) prefer not having to write scripts yet (1) they gave a little script (because their helper command was incomplete, see) and (2) it's presumptuous to say the least: who's to say the system is even up? What happened to remote logging? Sheer madness. But then again so is systemd and it's binary logging. And everything else for that matter.

Besides. Any administrator who's worth their salt is more than capable of writing scripts to parse things. Yet they think they know what's best for the users - making them use a tool built for them when before you could do it your own way - or not. Well you still can but you have to do clean-ups on the log file (which you didn't have to do in the past). Basically dnf is terrible.

Thread Thread
v6 profile image
🦄N B🛡

yum was used for like a decade before.

This reads like you mean to imply that "was used for like a decade before" is a bad thing, but I'm sure that wasn't how you meant it, no?

Ops greybeards & automationeers, have you met the likes of us?

Thread Thread
chiefnoah profile image
Noah Pederson

yum was aging rather poorly to be honest. I don't mean to imply that everything that has been around for decades needs to be replace or is bad, it's not (actually, I'd argue that's a good metric by which to measure the quality and usefulness of a piece of software). With the deprecation of Python 2, it needed a rewrite pretty badly, which is what I believe dnf is, basically a re-implementation of yum in a combination of Python 3 and C/C++. dnf is more of a generational improvement on yum than a full replacement, it's even got yum in it's full name.

Thread Thread
v6 profile image
🦄N B🛡

Seems like a trade of features for performance, as the perceived deficiencies of yum, from that link you posted, suggest:

Perceived deficiencies of yum (which DNF is intended to address) include poor performance, high memory usage, and the slowness of its iterative dependency resolution.

Thread Thread
chiefnoah profile image
Noah Pederson

dnf has more features than yum, it's literally a fork with fixes and updates (so technically, they are the same project, one is just maintained and the other is not). Even the yum source repository says the software is deprecated and you should not use it. There is no reason to still be using yum if you have the option not to.

Thread Thread
v6 profile image
🦄N B🛡

DEPRECATED eh? I love when devs do this... "we are in charge of the product!"

Might work be constantly done by Google, but applying that product management approach to backend stuff? Yeah good luck with that. Lucky for the rest of us yum is not a SaaS I guess.

Thread Thread
chiefnoah profile image
Noah Pederson

Devs are who write and maintain your software, so yeah, they do get to decide if they're going to continue patching and fixing security issues. This has nothing to do with a "product management approach", it's how software has always worked. Some software can, and does, continue to function fine without getting changes or updates for decades, but most things nowadays are touching public networks (ie. the Internet) and failing to update increases potential risk of vulnerabilities.

Collapse
moopet profile image
Ben Sinclair

The only problem I've had in Arch with docker is the way it overwrites (or inherits? I forget) resolv.conf unless you remind it not to, meaning your containers can't get out to any other web services.

Collapse
visi27 profile image
Evis Bregu

I use PopOS which itself is based on Ubuntu. The reason that I use it is that everything works out of the box including graphics switching and seamless HiDPI based on monitor being used.
You can achieve this with other distros but I do not have time anymore to mess around with packages and config files, I just want something that works.

Also I dual boot Windows 10. Thanks to Docker and WSL it is the same development experience. The only problem right now is that IO is quite slow in WSL. Depending on how better WSL 2 will be I might switch to Windows full time. As a desktop experience it is way better than Linux and by having Linux inside Windows I will not be missing my daily tools.

In the end the best distro is the one you are most comfortable with.

Collapse
afaliagas profile image
Apostol Faliagas

You get a like for PopOS and a dislike for Windows.

Collapse
visi27 profile image
Evis Bregu

I really do not understand people who hate Windows. I myself love Linux and enjoy Windows at the same time.

Thread Thread
valdeg profile image
valdeg

After windows 8 was released it's not about personal preferenses anymore. People hate Windows for particular reasons.

Thread Thread
siy profile image
Sergiy Yevtushenko

And these reasons existed since Windows 3.11 and every new version added more and more such reasons.

Collapse
chiefnoah profile image
Noah Pederson

Anything would be better than the CentOS 7 image my company forces all developers to use. Everything is so out of date, and I've hit walls where I can't even compile from source anymore because the kernel (which can be fixed with unofficial repos) or glibc (which can't) were too out of date.

Collapse
ferricoxide profile image
Thomas H Jones II

If you're developing for EL7, then developing on a distro that's more up-to-date is just going to lead to gnashing-of-teeth. If you're developing to deploy into another context, use something that better aligns to that context.

Collapse
prahladyeri profile image
Prahlad Yeri Author

Instead of making the tail wag the dog, the better solution is to push their company into modernizing their stack. God knows how many vulnerabilities have been around since EL7 and instead of invoking large costs in patching those specifically for EL7, simply upgrading to something like Ubuntu LTS will be a better solution. Whatever the cost of that transition may be, it'll be far less compared to maintaining a woebegone OS like EL7.

Thread Thread
ferricoxide profile image
Thomas H Jones II

That's great if you work in an industry that doesn't have legal mandates to comply with. But, if you are working in such an industry, your options are kind of limited. Even Ubuntu LTS's security-certifications tend to lag the LTS's initial release by a couple years.

Thread Thread
thorstenhirsch profile image
Thorsten Hirsch

Uhm... what?

woebegone OS like EL7

No. RHEL8 has been released just 6 weeks ago.

  • RHEL7 will be fully supported for another 5 years and gets security fixes as fast as RHEL8.
  • RHEL6 is still supported
  • even RHEL5 (that's what I'd call woebegone) is still supported if you buy extended support
Collapse
elasticrash profile image
Stefanos Kouroupis

I weep for you, silently.

Collapse
v6 profile image
🦄N B🛡

I've been there, and there's a light at the end of the tunnel. The solutions are out there, and can happen with quiet, incremental, fully compliant changes rather than revolution.

Collapse
sodonnell profile image
Sean O'Donnell

This is rather subjective. Pardon my tl;dr response here...

In terms of personal use...

...pretty much whatever distro you feel makes you more productive, requires the least hassle to install/configure/maintain, or whatever you want to learn and get familiar with.

I'm not bias to any specific distro for personal use. I started-off using Slackware in the late 90's, eventually moving towards Debian and RedHat-based distros with shiny package managers. This was a huge time saver!

Back in the late 90's/early 2000's, Slackware taught me the hard-way, having to hunt-down specific glibc dependencies and pretty much compile/re-compile almost everything from source, but it was a great learning experience when I had the time and less responsibilities.

The one stubborn thing that I do subject myself to on my own personal linux desktop, is using WindowMaker. I've been using this for years, and have customized a set of menus/themes/settings that help make me more productive than using something bloaty like Gnome, XFCE or some of the other more common desktop environments.

That's just me being stubborn, perhaps, but that's what I feel most comfortable using.

In terms of on the job...

I've worked at various companies that had all sorts of various policies on what we can use vs. what we should use, vs. what we MUST use.

Companies that mandate a specific distro, are usually of the rationale that you should develop in the environment that closest (if not directly) resembles that of production, which is honestly not a bad idea under some circumstances, despite being forced to use a distro that you would otherwise avoid for desktop/development usage.

These days, that's a bit archaic, though, especially with everything going to green/blue deployment and containers on VMs in the cloud.

Companies that DO NOT mandate any specific distro for development, are usually more appealing to the common developer, as we don't like being chained to our desks, much less being subjected to some authoritarian marginally-dictated mindset that hinders our freedom/abilities to explore, create and produce efficient code that we can enjoy developing and maintaining.

The problem that I have with Fedora, is the release cycle. It's a continuously-evolving development distro and a rapid-release cycle, so what may work today in this cycle's release, may not work the same 6mo from now in the following release cycle. Fedora 15 was a great example of that, when everything went from sysv to systemd. This wasn't necessarily a bad thing, but in terms of upgrading, did create some headaches.

At least with Ubuntu, the LTS releases are generally stable and painless to migrate to the following LTS. Not always, but more often than Fedora, imo.

Collapse
aqual1te profile image
AquaL1te

Seems like you used Fedora for 5 minutes in a VM and decided to write a blog about it. If you want to compare distributions, then put some effort in it. This is really a ridiculas read for any experienced Debian/Ubuntu and especially Fedora user.

Collapse
lietux profile image
Janne "Lietu" Enberg

It seems pretty obvious that you've never used distros that are not Debian based if you find apt to be good and don't like yum/dnf, or find them difficult to learn.

dnf search thing
dnf install thing

What else could you possibly need? In addition to doing what you'd expect them to do on apt, they also do not randomly break your system, put your /boot so full of old kernel images that you can't install new ones without manual cleanup, or randomly decide to uninstall your kernel for some "updates". Also pretty sure there's GUIs to all of this so you don't have to learn any commands if you don't want to.

For me personally there is no Linux distribution that provides a mature enough desktop environment for serious work.

When I need to get work done, I can't waste time constantly figuring out:

  • Why drag & drop actually drops the things into applications behind the thing I'm seeing
  • Why I have two separate clipboards (mouse selection in terminal, Ctrl+C / Ctrl+V)
  • How to deal with the issues with all the new innovations in software distribution methods like snap and them making things incredibly difficult to debug and fix when you finally find out what's preventing the applications you need from starting up
  • Trying to figure out why my Nvidia X drivers stopped working again after a kernel update
  • etc.

OSX on the other hand isn't available on decent hardware, and as an OS is just too limiting - can't even disable mouse acceleration, or control volume per application. I don't understand how anyone tolerates that dumbed down joke of an OS.

Seems like I'm stuck with Windows, though at least the development experience is constantly getting better on Windows with better terminal emulator software (e.g. Alacritty, ConEmu2), WSL helps with some things though due to CygWin I rarely need it, and widely known tweaks remove the annoyances like unprompted reboots for updates.

Collapse
karlredman profile image
Karl N. Redman

It depends on your goals as a developer:

  • need to stay with the LTS because of contracts, etc.?:
    • whatever is dictated.
  • is the product range flexible enough to be "standardized" across distrobputions?
    • pfft I'd go with MX linux or something light (choose your own adventure)
  • is the product/project going to require selinux?
    • whatever is dictated -because it varies in compliance
  • is it a personal project?
    • choose your own adventure

Mostly, if you have a choice then start with anything and decide what you hate about it. Also install something like virtualbox and try as many distros as you have the time/tolerance for.

For the most part, I'm a "least common denominator" kind of developer. So I will generally code for whatever is being supported by RH LTS and Debian Stable. I use MX Linux for my development, debian for server only things, red hat derivatives when forced to do so. The reason I don't use Red Hat is a personal choice based on community and personal experiences.

Collapse
lordhasyim profile image
ahmadhasyim

Hello Karl, im using kubuntu right now, think to try mx, im work in php development, can i know what apps or package you use in development?, i just wanna know is it compatible with ubuntu...if is it true, i'll go with mx

Collapse
karlredman profile image
Karl N. Redman

@ahmadhasyim,
I haven't worked on php directly in some time. However I see no reason why MX would hinder your development. I will try to list some differences and other attributes -based on latest distros:

  • MX Linux 19 is based on Debian 10 'stable' repo and AntiX (enhancements -some 'testing' repo)
  • Ubuntu is based on Debian 10 'testing' repo

  • MX uses XFCE 4.14 Desktop by default

  • Ubuntu uses a variety of Desktops by default

  • MX uses ramdisk and is EXTREMELY fast on modern computers (with desktop)

  • Ubuntu is geared toward medium to high end desktops -It's simply slower (with desktop)

  • MX DISABLES systemd by default

  • Ubuntu is FULLY ENABLED systemd

  • MX has excellent "respin" custom system replication (out of the box)

  • Ubuntu has zero "respin" system replication (out of the box)

  • MX is not supported by a large corporation and fairly new to being popular

  • Ubuntu is well supported by a large corporation and is a standard in the industry

  • MX uses about 70% less memory on new systems than Ubuntu

  • Ubuntu loads a lot of convenience services on new systems that some people find useful.

Here's the slant comparison URL for the two. I will say, I HIGHLY disagree with the "Cons" of both distros because the information is just simply FALSE (for both) en large.

Both distros are based on debian. ANYTHING you want to do in Ubuntu can be done in MX and visa versa.

I prefer MX because it is a simpler, smaller system initially that I can easily add files via 'apt' as needed. Functionally, I see no difference between MX and Ubuntu. The difference to me is in perfomance -MX is the winner there hands down.

With that said, I use the following things most often (i'm somewhat of a minimalist):

  • Vim (with lots of plugins)
  • Tmuxinator (as part of tmux) -that is customized
  • Chrome
  • Firefox
  • Thunderbird

In addition, on a 2 core 3.4GHz desktop w/16GB ram, I also run a full hosted web server (no slowdown) via docker with:

  • portainer
  • a hugo server -wiki
  • portus
  • nextcloud
  • gitea (git server)
  • drone -for building from gitea builds
  • drone (a second instance) -for github builds
  • adminer
  • suitecrm
  • traefik

I have tried with and I can not easily run all of these services with ubuntu or mint. but MX runs every thing for me.

I hope that info is helpful.

The bottom line is that you will want to use what suites you best :D

Thread Thread
lordhasyim profile image
ahmadhasyim

Whoaa... Thank you for your answer,
I've been considering mx cause there is some service causing memory leak in ubuntu, im use mintt for 2 years, ubuntu around 6 months but still have those problem... Sometimes it takes 8gig ram when running firefox, vscode, terminal, and music player... Is there any difference between sysvinit and systemd im context of usage, like service start, systemctl, etc? Im just bit afraid

Collapse
dietertroy profile image
Troy

Not an option you provided, but Windows Subsystem for Linux using Ubuntu 18.04 LTS is my preferred.

Regardless, I always lean more towards DNF over APT and grew up on Red Hat\RHEL\CentOS\Fedora but use Ubuntu for my daily work-driver. It also really depends on what i'm maintaining at work.

Collapse
krusenas profile image
Karolis

Used Fedora for a few years but on a new install tried Ubuntu a year ago. Honestly, can't tell any difference :) yes, installers are a bit different but they just install and nothing to learn there. I think as long as I can use vscode, run Docker and k8s and compile my apps - I don't care about anything else. I still use my mac when I work not from my office, that's when shortcuts are different but even then it's fine.
So, conclusion is that as long as it's not windows - it's good :D

Collapse
marconicolodi profile image
Marco Nicolodi

I use ubuntu for the same reasons: works out of the box.

Collapse
syntaxseed profile image
SyntaxSeed (Sherri W)

I personally use Ubuntu because many webservers run it & I'm a web dev. I don't need containers or VMs... I just run my stack directly on my local machine.

Collapse
prahladyeri profile image
Prahlad Yeri Author

Second that. The webdev world has gradually started to settle on Ubuntu server, development becomes quite seamless when you know that your app will run on a particular Ubuntu LTS version, so you can setup your local environment accordingly.

Collapse
endridev profile image
endridev

I agree to a certain extent but you can't dictate what server os a client might use so I rarely rely on my dev machine setup. When I develop in LAMP stack I use XAMPP. Docker for anything unexpected. Currently I'm running Ubuntu 16.04 LTS in my dev machine ( which came preinstaled from Dell and I'm super-lazy to install something else 😄 ) and I'm developing 2 web apps. One will be hosted in a Debian server and one on a Ubuntu 18.04 LTS.

Thread Thread
prahladyeri profile image
Prahlad Yeri Author

Surely, you can't dictate but if everyone follows a standard distro for server hosting (or at least a few stable variants like ubuntu/debian/centos), it makes the dev's and the tester's lives easier! As your personal desktop driver, you are free to use anything ranging from slack to void to elementary, of course.

Thread Thread
endridev profile image
endridev

I couldn't agree more on the standardization part but it's an idealistic world view. That's why I made the points I made. Who wouldn't like a seamless experience everywhere :). But fortunately we have VMs and Dockers ;)

Collapse
fida1989 profile image
Fida Muntaseer

I am using LinuxMint 19.1 Mate Edition.

Collapse
phlash909 profile image
Phil Ashby

Long time Debian stable user here, I am a big fan of the rule of least surprise :)

I switched to Ubuntu on personal systems for a couple of years, until Debian 9 reached stable. The switch away was driven by a need for Gnome 3/GTK-3 for personal app development. The switch back was driven by stability issues and weird behaviour with multiple users / session switching on shared machines at home.

At work, we are issued with centrally managed Win10 systems, that I generally nuke and put Debian stable on, re-installing the corporate managed Win10 in a VM (mostly so I can change my AD password but otherwise escape the daily pain inflicted on my colleagues by the array of invasive management apps, network filters, terrible patching experiences...). My most recent work machine is very new, requiring a testing kernel, even then Debian has been fantastically reliable for me.

My preferred way of working is to not corrupt my reliable base OS, instead I use either local VMs or cloud instances to provide a development environment that matches the target system - I then have the ability to test all our deployment tooling as well as the application code, and when something goes awry with say package management, I can tear it down and start again. I've been enjoying this experience when it comes to Windows apps developed with Visual Studio - 5mins to create a fresh VS2015/17/19 machine in Azure compared to 4-5 hours applying local installs and praying it doesn't break my whole machine is great!

That said I do have make, gcc/gdb, OpenJDK, VSCode and dotnet SDK packages on my base OS, these are useful for playing with ideas quickly when there is no target to worry about, and being proper .deb packages I can manage them safely.

Collapse
aiguofer profile image
Diego Fernández Giraldo

Pros and cons, but marginal difference IMO... I have a special place in my heart for Arch, and I love that you can find anything under the sun in AUR. However, I don't want to spend hours every time I update packages reading up what changes happened, or worse figuring out why my system broke. I much prefer dnf/yum over apt (why are there so many different apt tools? Why do I search with apt cache?). Ubuntu offers LTS. PPA tends to be better than Copr in terms of available extras IMO, but neither is as good as AUR....

But as long as you have solid configs that are portable, the most important thing IMO is how quickly you can get back up to speed on a new setup... I keep as much as possible in the user level: pyenv for python version(s) nvm for node, emacs, user level systemd files, i3 with a bunch of scripts. Ultimately, most (mainstream) distros are running on about the same technologies so it's not that bad.

Feel sorry for the forced Centos/RH guys out there... Great distros for servers, not so great for developers. Even when I was working at RH, most of us used Fedora (or another distro)

Collapse
stewieandro profile image
Stuart Slaugh

Arch was great as a challenge, but simply not reliable. I happen to do a lot of java mobile and desktop, and javafx with SceneBuilder is fantastic. Unfortunately Gluon only offers .deb & .rpm for Linux.
The aur builds of SceneBuilder all failed, so I tried deptap, which also failed.
I don't have the patience or time to slog through build files to fix them & I shouldn't have to.
And I can't agree about dnf either. Apt is the most reliable and logical package manager out there.
Ubuntu has all the strengths of Debian and none of it's quirks.

Collapse
shostarsson profile image
Rémi Lavedrine

I am using Ubuntu (Budgie) because it simply works indeed.
Nevertheless, I found that elementary OS is pretty good as well. It works everywhere I tried it (HP Spectre, Macbook) and it has some pretty good apps and tools that are developed only for that distro.
And it is really pleasant to use.

I tried Fedora as it is really popular among developers but I found that finally Ubuntu is better for my use. It has a lot of developer tools (if there is a tool on Linux, there is always a Ubuntu version). Snap apps are pretty useful as well.

Collapse
johnfound profile image
johnfound

Well, I have stopped to use Ubuntu in the moment when they without any warning, during the usual update process replaced all my desktop environment with something half-baked, named "Unity".

Well, this incident helped me to realize, the simple fact Cannonical is the same huge monster corporation as M$. So, they always will force their users to work in a way that is most suitable for the corporation, not for the users.

So, after this incident I started to use different distributions in search for the most suitable. At the end I ended with Manjaro Linux that really fit to my needs and expectations.

BTW, the hardware compatibility is virtually the same for any Linux distributions. If some hardware works in Ubuntu, then it will run in every distribution. Plus-minus some manual configuration.

Collapse
v6 profile image
🦄N B🛡

the hardware compatibility is virtually the same for any Linux distributions... some manual configuration.

Some of us would prefer to bypass the manual configuration, or at least not have it as a default.

Collapse
brightone profile image
Oleksii Filonenko

I've been using a lot of distros through the past couple of years, but settled on Gentoo. Why? Because customizability is king for me. And yeah, I like staring at the compiler output sometimes.

Though, Arch will always have a special place in my Linux heart :)

Collapse
harunyasar profile image
Aaron Yasar

Any operating system that can run Spotify would be okay for me :)

Collapse
mousahalaseh profile image
Moses

+1 Exactly what I was thinking!

Collapse
v6 profile image
🦄N B🛡

Seems like all you need is Google Home!

Collapse
tunaxor profile image
Angel D. Munoz

Every time I install fedora I fall in love with it, it feels quite nice and fun to use, then I remember that docker is always late to release in fedora, and without docker I feel forced into installing stuff I usually run there (like databases) I end up going back to Ubuntu because, in the end both are quite similar, it goes down to me on what is least annoying to set up.

The second best experience I've ever had to do development is Manjaro.
On my personal experience that doesn't account for anything beyond my selfish me I have

Ubuntu > Manjaro > Fedora > else

Collapse
jules_irenge profile image
Jules

If you ask me about Linux,
I prefer gentoo or any other Linux you can install from scratch and compile. I like Fedora too.
To be a programmer you dont need to choose an Os but some Os can be more friendly to what you do, like windows with web dev. Just do your program where u r used to

Collapse
bugmagnet profile image
Bruce Axtens

Regarding tea, "hamesha rishtey banaye". Regarding, Ubuntu over something else? I'm fairly platform agnostic. However, work has a commitment to Windows, my Macintosh laptop it too old for modern OSes and ... well ... my hobby computer runs Ubuntu. But like most of the others say: browser + language tools + terminal.

Collapse
artemis profile image
Diane

I didn't work with fedora for long, but I'd take it above Ubuntu any time.

Canonical and its shady business is a bad start, and the fact that it tanked several production servers on a minor upgrade, which was in fact major (removal of a network tool, supposedly replaced by another one that was not in the dependency list) really pushed me away from this distro.

Collapse
v6 profile image
🦄N B🛡

removal of a network tool, supposedly replaced by another one that was not in the dependency list

Not cool. Hadn't heard of this. Would you be willing to save me a search and source this?

Collapse
artemis profile image
Diane

I couldn't anymore, because it's been a long time since this happened and I don't remember the right context.

IIRC, I ended up without network access to my VPS, and when using the KVM client provided by the host, I discovered that the network configuration tools (which may or may not have been dhcpcd, or something like that) were removed and found out in a few unix stackexchange threads that others had the issue and that the upgrade dependency list didn't include the supposedly new network management tool.

Collapse
strzibny profile image
Josef Strzibny

Fedora. I am biased though, because I am Fedora developer (ex-Red Hat packager).

The best thing that I like about Ubuntu is that it simply works

Fedora also just works, but I always recommend to pair it with a laptop used by Red Hat engineers. That means Thinkpads. If there is a hardware problem, you are more likely to see it fixed.

Running a stable and secure version of an app is far more important to me than having the latest one.

Fedora is super stable these days. Unless you run rawhide directly or testing packages, Fedora is not any less stable than Ubuntu. Any reason to believe otherwise (apart from marketing)?

but I somehow didn't much like their packaging system

This comes to personal taste (and experience). I definitely prefer RPM and DNF to manage anything. One cool think about Fedora is Copr build system that let's you create and host your RPM repositories easily (also offers many packages that are not in Fedora).

Fedora is actually great for developers.

As an example we directly package Vagrant with libvirt that you can run in 5 minutes and have reproducible environments for your projects. Try to set it up in Ubuntu and come back to me ;).

Another example is that it provides daemon-less alternative to Docker that does not need sudo called Podman. (Here is how to run Docker containers in Fedora 31.) Podman is a RH project and will have first-class support in Fedora.

Yet another think to consider might be the latest stock GNOME environment and language environment (so you sometimes don't need version managers).

Collapse
nguyenkien profile image
Collapse
afaliagas profile image
Collapse
xexyl profile image
xexzy

Writing an article along the lines of - 'Is X or Y a better distro for programmers?' - is the same thing as saying I prefer this for these reasons - but it does not say which is better because better is subjective. Ubuntu? No thanks. I'd rather vomit. Also if you compare only two that's pretty limited.

Basically there is no 'better'. You seem to prefer Ubuntu. That's fine. Doesn't make it better though.

Collapse
pencillr profile image
Richard Lenkovits

I recently ditched Fedora for Ubuntu. The package system gave me a hard time a lot of times, as there were a lot of things that were unavailable and I ended up struggling to install and configure stuff. It's just that apt repositories are better, as they are more commonly used.

The last drop in the glass was when I was trying to get a PostgreSQL server running. After a couple of hours, I decided it was easier to reinstall ubuntu and just get it with apt.

Collapse
stevepryde profile image
Steve Pryde

I use Manjaro and have done for the past 2+ years. I previously used Arch for years before that, but I would see probably 1 or 2 major breakages per year (remember the glibc update?). Manjaro delays updates for 2 weeks allowing for those major breakages to be resolved before they reach users. Also Manjaro has a much nicer installer, and a little more polish. It just works, and I haven't reinstalled in a very long time (it's rolling release).

Ubuntu, ironically, used to become a little less stable for me after a few version updates. It wasn't terrible - actually it is still probably my goto distro for just getting something up and running. I've had a lot of trouble with Fedora - F28 was great but the upgrade to F29 just broke everything. I used OpenSUSE a long time ago but these days it feels too customized and unstable. Tumbleweed did not work for me at all. I used to distro-hop a lot but since switching to Arch and then Manjaro I don't like the others as much. That said, if things started to break with Manjaro I would search elsewhere.

Collapse
jonathanburnhill profile image
Jonathan Burnhill

I use ubuntu and have for a few years on and off, I bought my new laptop last year and planned to keeo windows 10 until the warranty run out but in the end it just got on my nerves!

I can figure ubuntus problems out quicker and have less problems in general with it which is perfect for letting me just get on with what I need.

One day I would like to experiment with parrot os but not for a while yet!

Collapse
cescquintero profile image
Francisco Quintero 🇨🇴

I've personally prefer Ubuntu or Linux Mint(which is Ubuntu based). Although at work we have MBPs.

As I'm a backend developer I can freely use either of the two OSes because I can get:

  • A terminal
  • Web browser
  • Text editor: Sublime Text 3 ;)
  • Linux-like filesystem

But if I were a frontend developer and designers used Sketch then I'd need a Mac unless they export designs to Figma or Zepplin.

Collapse
thegreatcabbage profile image
TheGreatCabbage

KDE neon is awesome. It's based on Ubuntu 18.04 at the moment, and always has the latest KDE Plasma desktop.

Collapse
prahladyeri profile image
Prahlad Yeri Author

What's the difference between KDE Neon and Kubuntu? They both seem to do the same thing (Ubuntu plus KDE)?

Collapse
thegreatcabbage profile image
TheGreatCabbage

Good question. The problem with Kubuntu is that it usually has an extremely outdated desktop environment: Kubuntu 18.04 is running Plasma 5.12, which was released 16 months ago. Even with the Kubuntu backports PPA, only bug fixes are available for Plasma.

In contrast, KDE Neon gets updates to all KDE software straight after it's released. Neon is now running Plasma 5.16, which is just a couple of weeks old.

Collapse
david_j_eddy profile image
David J Eddy

On a daily basis:

  • Ubuntu on home desktop
  • Mac OSX on a 2015 MBP
  • Android on the phone
  • Windows 10 on work notebook
  • Windows 7 on client notebook

I always get looks in airport security lines pulling out 3 notebooks.:S

Collapse
xarbit profile image
Jason Scurtu

I personally use Fedora and even switched to the immutable silverblue version a few days ago. The idea of a stable OS and Developing using a container based workflow is just simply great and very clean. If you want to use the latest tech (Flatpak, Podman etc) then Fedora is the way to go.

Ubuntu is great too but I am not a fan of snap, the theme, X11 as default and the patches applied that make the things I actually like not work.

tiguchi profile image
Thomas Iguchi

Dangit, you're right. It wasn't Arch. I think it was Manjaro instead. Sorry about the confusion. I tested too many different distros in a week, all of them had a bootable image with installer :-/

Collapse
lesis_more profile image
Leslie Nyahwa

I personally love Boxes in Fedora stock, which makes it easier for me to setup VMs unlike having to install Virtual Box or VMware on top

Collapse
drxdesign profile image
Maamar

Ubuntu user here
my story is that i love linux when it come to programing and Windows when it come to design / gaming

Collapse
ogala profile image
Emmanuel Ogala

You just can't beat Ubuntu's simplicity and versatility.

Collapse
larsklopstra profile image
Lars Klopstra ⚡

I run Ubuntu on my development machine and Windows 10 on my desktop for anything not development related (music production, photoshop, video editing, etc...)

Collapse
thezooperman profile image
zooperman

Try Pop OS from system 76, it's based on ubuntu but a lot better, and targeted primarily for devs.

Collapse
jimfrenette profile image
Jim Frenette

Fedora has been great for me as a developer O/S. I use gnome for my desktop manager. Visual Studio Code, Docker all work great on my 4k display Dell XPS laptop.

Collapse
greenroommate profile image
Haris Secic

the answer is: sure! :D

Collapse
jvarness profile image
Jake Varness

If it has an XFCE environment, I usually don't care, just because XFCE has been the most user friendly for me and has always performed well.

Collapse
maymeow profile image
💜Emma🌼

i used windows but swithed to ubuntu and now trying POP OS.

Collapse
maxdevjs profile image
maxdevjs

Wow... no sign of NixOS, Void or Solus here. Each of these displays dev.to so well :)

Collapse
webcoderkz profile image
Alexander Kim

MacOS is the best of both worlds, in this case Windows and Linux.

Collapse
mohdsalmanshaikh63 profile image
mohdsalmanshaikh63

Pop os 18.04 Lts. The best stable and gorgeous looking distro.

Collapse
osde8info profile image
Clive Da

use ANY os then run xubuntu OR linuxliteos inside virtualbox

Collapse
blackbear710 profile image
Blackbear

Isn't that what Kubernetes is for now??

It doesnt matter what or where you type code in

K8s

Collapse
theodesp profile image
Theofanis Despoudis

I've tried both professionally but I always end up using an ubuntu variant such as ubuntu-mate.org/