Ask HN: What is the best Linux distro for a development laptop? - <AUTHOR> Recently I upgraded my 2yr old laptop (now it has 16GB RAM, 275GB SSD, baklit keyboard) and now consider which linux distro use as main OS.
What are your experience with various linux distros as main OS? Which one is the best? How looks like your dev environment?
For me are important these points :
- Ability to run virtualized systems (Windows, other linux distros)
- Good battery management
All necessary dev tasks and experiments will be performed in virtualized systems.
Thanks <comment><USER2> Debian and I'm surprised more people aren't saying so. Ubuntu or Mint, which are built on Debian do not add much value these days, IMO and Ubuntu's 6 month release cycle is intolerable. If you get behind with upgrades you are screwed.

Even after all these years it's hard to beat apt-get. I think a lot of people dismiss Debian as unmodern or some how less than the distros built on it but that's hardly the case. Debian "testing" has all the latest software and yet is still very stable. Many people are scared away by the "testing" release but this is what Ubuntu and Mint are based off of.

I find Arch, Gentoo and many others to be a lot of work. I don't have time to spend fiddling around with the OS.

Don't get me started on Fedora/CentOS/RedHat. yum/rpm is just horrible if you've used nearly anything else. I think the only reason this OS family is still alive is because RedHat managed to sell so many copies to big corps and universities. I think people still use it mainly because they were exposed to it at school or work and don't know any better.

<comment><USER3> The issues I had whenever I strayed from Debian weren't technical deficiencies of yum, etc, but rather the choices made by other distros. Installing "vim" and unexpectedly getting some sort of "minimal" version of vim. Packages which symlink or install large binary files or log files into /etc (suddenly grepping /etc becomes problematic). In general, lots of little decisions which make me exclaim the distro equivalent of "Did anyone even play-test this?"

<comment><USER4> > Packages which symlink or install large binary files or log files into /etc

wtf? who is actually incompetent enough to do something like this?

<comment><USER3> This was something like ~8 years ago, but here's an excerpt from my notes when using Redhat:

        # ls -l /etc/httpd/
        conf
        conf.d
        logs -> ../../var/log/httpd
        modules -> ../../usr/lib/httpd/modules
        run -> ../../var/run

Reactions:

        * Why is 'grep -r /etc' taking so long?
        * Why am I seeing log entries in the output?
        * Why am I seeing 'permission denied' on a bunch of socket files?

Debian seems to have the most respect for the FHS. [http://www.pathname.com/fhs/](http://www.pathname.com/fhs/)

<comment><USER3> A few more, from my notes:

These were the default permissions of the apache log dir:

        # ls -ld /var/log/httpd/
        drwx</comment></comment></comment></comment></comment><comment> 2 root root 4096 Jan 18 12:09 /var/log/httpd/

I guess their expectation is that only root should ever need to read a log file? Contrast this with Debian, which gives read access to admins:

        $ ls -ld /var/log/apache2
        drwxr-x--- 2 root adm 4096 Jan 16 06:25 /var/log/apache2

Redhat also decided to stick wsgi sockets into the log dir. If you try to run a wsgi process as anyone other than root, you get a permissions error:

        (13)Permission denied: mod_wsgi (pid=31431): Unable to connect to WSGI daemon process 'bob' on '/etc/httpd/logs/wsgi.1965.3.1.sock' after multiple attempts.

To fix this problem, you have to tell wsgi to stick its socket files somewhere more reasonable, like /var/run (which is what Debian does by default).

When you look up the modwsgi "Common Problems" page, the very first entry describes exactly this issue... [https://code.google.com/archive/p/modwsgi/wikis/Configuratio...](https://code.google.com/archive/p/modwsgi/wikis/ConfigurationIssues.wiki)

'cfdisk' was removed from the distro because it was "a pile of junk". Really? That's funny -- I've used it to create dozens of Debian partitions and never had a problem. [https://partner- bugzilla.redhat.com/show_bug.cgi?id=53061](https://partner- bugzilla.redhat.com/show_bug.cgi?id=53061)

<comment><USER5> > These were the default permissions of the apache log dir

Since systemd came along, you're supposed to use journalctl though.

That applies to Debian and Ubuntu too.

</comment></comment><comment><USER6> As a side note, I love how this question would be begging for a distro war anywhere but HN. Here everyone says things in the way of "There's no _best distro_ " or really humbly say what they are using and why. This is the best way IMHO that HN shows how it is the opposite of any random internet website; In HN we can have civilized conversations about some topics that are not possible almost anywhere else on the internet and that is awesome.

<comment><USER7> This is so true.

I was really tired of not being able to find _insightful_ content and discussions on so many other social networks and/or forums. Most of them are full of frivolousness, hatred, squable, swear, all that memes, gifs... etc. Then I came across HN, ~3 years ago. I am not a coder (trying to learn fundamentals on my own, though) and not so fluent in English either. Even though, it was (and is) like brilliant content filter - in terms of both _news_ and comments. You cannot get a grip if you are not civil enough or if you are looking for some _visual entertainments_. You know, I guess it's all about text. You read. You get valuable information and knowledge from other readers'/writers' experiences. Text is not dead here on HN.

All in all, HN is like _" The best content aggregator for humans, by humans"_.

<comment><USER8> Completely agree. This place is now my "front page of the internet" even more so than Reddit. There is a lot of diversity, and little that is frivolous. Also, it's obvious to me that people here will upvote a comment even when they disagree with it, simply because it adds to the discussion. And THAT is what makes it so great.

This place does, however, have its limitations too. For reasons I cannot fathom, the community here absolutely _loves_ to nitpick. People will pick on the absolute nitty-gritty specifics of something some OP said and spend an inordinate amount of time splitting hairs.

<comment><USER7> Nit-pickings are what I love most here on HN. You never know what interesting, beautiful comments (stories) will come up, even if they are tangentially related to OP. Btw, we are (kinda) nit-picking in this very thread. :-)

</comment></comment></comment></comment><comment><USER9> ArchLinux is very decent distro. If you need something that you can tweak to be the continuation of your mind, environment designed exactly for you, it is Arch. If you have some time in the beginning to read archwiki, you will avoid a lot of problems in the future. After you understand how it works, it is easy to fix whatever breaks.

For me Arch breaks extremely rarely. I use it for 7 years and remember no more than a couple of times it made me confused after an update. Most issues are covered in the wiki or newsfeed (like breaking changes).

If you need something Windows-like, you can try Ubuntu, sure. But once you need fresh drivers or recent libraries for development, you add third-party PPAs and the shitshow begins. The very idea of keeping old stable versions with just a few new ones that you really need leads to problems surprisingly hard to fix.

<comment><USER10> Yup. I switched from Ubuntu to Arch after I realised I was trying to make Ubuntu work like a rolling release distro. This lead to frequent breakage. Arch definitely has a learning curve, but it also helps you realise that _some things really are as simple as they appear_ (if that makes sense).

That said, if you're like me and prone to fits of 'mad science', you will find yourself breaking your OS from time to time. But I've yet to get myself into a situation I couldn't recover from, largely thanks the the excellent Arch wiki. The 'big jumps' (i.e. staged distro) leading to 'big breaks' can happen to Arch, mind you. It's not a distro you want to 'leave alone' for too long.

So I guess if you're going to use the machine daily, Arch should be fine. If we were talking about a server or something, or maybe a work laptop that would go unused for a few weeks from time to time, I'd probably suggest sticking with Ubuntu or the like. Trust me, I've attempted running Arch on my NAS and it was not very fun. Ubuntu/Debian is much better suited there.

I guess the other downside of Arch is that there's less official packaging for it (whereas there's an rpm and deb for everything, it seems). But I think the AUR more than makes up for that, and simplifies quite a lot of things that are complex to do on Ubuntu (e.g. compile FFmpeg with HW accel support, and with all the other fancy encoder dependencies etc.).

<comment><USER11> The nice thing about Debian is that they have all your cases covered. Long- term release for my server (Stable), rolling release for my laptop (Unstable). And the latter serves as a learning stage for the former, especially during transition times (e.g. introduction of systemd).

<comment><USER2> You forgot the porridge that is just right, "testing".

<comment><USER11> I actually found Testing to have the drawbacks of both: it's neither well tested and rock-solid, nor up to date with bugfixes. I used Testing on my laptop for a year, and it was the only time I had serious bugs that lasted for more than a day.

<comment><USER2> Maybe you were unlucky. I haven't had that problem.

</comment></comment></comment></comment></comment></comment><comment><USER12> Hard to beat Ubuntu LTS. It has plenty of documentation and community support, has mostly up-to-date drivers and runs VirtualBox. LTS offers stability over several years. I use Xubuntu variant with i3. Moreover, I prefer to develop on the same OS I deploy to.

ArchLinux: Great community but too many surprises when updating that sometimes break things or in one case left the OS unbootable. Fun to tinker with but if your livelihood depends on it, choose something more stable.

Fedora: good option but no LTS version

Debian: slow to upgrade and doesn't support newer hardware

<comment><USER13> Fedora has really cleaned up the release upgrade process over the last couple versions. Transitioning from Fedora 24 to 25 was surprisingly painless!

<comment><USER2> The fact that you are celebrating one recent successful upgrade is telling.

<comment><USER13> I used Ubuntu prior to Fedora and I never experienced a single clean upgrade. I can't speak for recent versions of Ubuntu though.

<comment><USER2> Debian's rolling release system is the solution for this. Ubuntu's 6 month release cycle is a nightmare.

</comment></comment></comment></comment></comment><comment><USER14> I use Ubuntu because there is a StackExchange site, askubuntu.com, and because it's easy to set up and fairly reliable and I can always go to Archwiki if I want to dig deeper. And anyway, I run Xmonad so a lot of the gripes about Ubuntu's interface, Unity, don't really affect me. [1]

In the end it comes down to Ubuntu provides me with a better abstraction layer for support and problem solving over the top of Linux than the alternatives I've seen.

[1]: Edit. As that sort of interface goes, I think Unity is better than many, but it took some time fooling with it enough to be familiar to reach that opinion.

<comment><USER15> Yep. I tend to use Ubuntu Server and then dump i3 on it as my WM. The support from the community is second to none, so when I need answers they're always a Google search away.

Mind you, if I don't get answers I normally end up looking at the Arch documentation, which is phenomenal.

<comment><USER16> I used to do that with my XMonad setup, but at least with 16.04 and 16.10, I've found it more effective to go ahead and install Ubuntu normally, install Xmonad, and then use the session switcher to switch to XMonad. It seems to set up the NetworkManager and other similar such things more correctly, more easily.

I once went into an epic fight trying to make it so my normal user was able configure the network through network manager. Presumably someone out there must understand all that policykit and related project stuff really well, so well that nobody seems to feel the need to even remotely document it. (At least at the time.) I never did win; I just ran the nm-applet as root via sudo. With the way I'm doing now, it just works correctly, which seems to be the only way to get that stuff working at all.

</comment></comment></comment><comment><USER17> I recommend Fedora, it has more up-to-date stuff and very developer friendly. I'm probably biased though because the high-energy-physics stuff I develop for usually runs on EL-variants, so Fedora is naturally a good platform for it. I've always had more trouble compiling random things on debian-based stuff though (probably has something to do with default linker flags and poorly- written packages).

RH has a big virtualization focus, and Fedora is their development playgroond, so if you're planning on using KVM for virtualization, it's very easy to get going.

However, if you use VMWare, sometimes VMware won't support the newest kernels immediately which can cause problems since Fedora upgrades quite frequently.

Others have mentioned trouble updating with Fedora, but I upgraded from F16-F24 on my desktop fine. I finally decided to do a clean install to F25 on my desktop just to switch to a UEFI boot. F24->F25 worked perfectly fine on my laptop (and the upgrade experience has gotten better and better). Either way, as long as you put /home (and, maybe /opt, /usr/local and /var) on their own partitions, doing a clean install is no big deal.

It seems many people had bad experiences with yum/rpm in the past, but dnf is much faster and I think people usually run into problems when mixing non- compatible repositories.

<comment><USER18> If the user just wants to get work done and doesn't care if they have the latest thing, why not CentOS?

<comment><USER19> CentOS is meant to be a server OS and misses a lot of the niceties that Desktop Linux variants have.

<comment><USER18> Thanks. What kinds of niceties? I spent awhile looking at it and the other RH distros, and didn't come across anything saying CentOS was a server OS (not that I doubt you, I just would be interested in more details if you happen to know them).

<comment><USER19> Packages are often kept at stable (but old) versions for a very long time. This is good for servers, but bad for users. Same goes for the kernel - again, good for servers, but not so much for new-ish hardware. In general its a very conservative distro.

As far as it being a server OS, well..

'In July 2010, CentOS overtook Debian to become the most popular Linux distribution for web servers, with almost 30% of all Linux web servers using it.[15] (Debian retook the lead in January 2012.)'

</comment></comment></comment></comment></comment><comment><USER20> I'm using Elementary, and I really like it so far. It's based on Ubuntu, and the standout things for me were:

1\. Gets out of your way really fast - very little config and setup to do.

2\. Clean UI - very macOS inspired, so they try and get rid of everything unnecessary. To the point where it doesn't feel like a normal Linux distro with knobs all over the place.

3\. Excellent built in terminal - can't stress this enough - the built in Terminal on Ubuntu is very barebones - the Elementary terminal feels really polished and had everything I wanted coming over from macOS.

4\. HiDpi support - you haven't mentioned what you monitor is, but Elementary handles retina and 4K displays well straight out of the box.

5\. Ubuntu based, so pretty much everything that works there works here, apt is available for everything you need to install.

<comment><USER21> Seconded. As someone who's hopped from distro to distro (Arch, Fedora, Ubuntu) on my ThinkPad x220, I'm really happy with elementaryOS for all the reasons you mentioned except HiDPI support (which I don't need).

</comment></comment><comment><USER22> Regarding your important points:

\- All modern distros can run virtualized systems. You just need to install your favorite virtualization software (VirtualBox, qemu, VMWare, etc.).

\- No distros have good battery management, at least not really on par with Windows, and certainly not on par with macOS. This is just the unfortunate state of affairs with the Linux kernel. Some of it is due to lack of focus on improving that aspect, and much of it is due to the difficulty of programming power management modes for various bits of hardware (a decent amount of this stuff isn't well-documented, or documented at all, depending on manufacturer). Using "powertop" (on any distro) can help you figure out the things that are eating into your battery and can help you reduce usage. TLP, a set of tools for configuring your system better for longer battery life, can also help, and should be available on most if not all distros.

Personally I run Debian (stretch) as on my main dev laptop, and it's been working well for me for years (well, jessie before stretch existed). I used to run Gentoo years ago, but got tired of long compile times. The flexibility of compiling or not compiling certain features into software just turned out not to be all that useful for me.

<comment><USER23> Gentoo's "compile everything" approach doesn't seem like such a bad proposition up front, but it really turns out to be the PITA. Since it's a rolling distro packages get updated often and if you haven't updated you're system in couple weeks and you happen to have couple of heavy packages installed (chromium, firefox, octave, openoffice, kernel) upgrading your system may take up to 10hrs on a average 2015 machine.

Similarly, compiling flexibility didn't prove like important feature for myself also. It allows you to slim down package installations or compile them with different optimization flags, but in most cases you don't gain much by using them:

\- smaller package installation (by turning off features not commonly used) in the time where disk is cheap and OS is not the biggest consumer of the disk space

\- have marginally improved performance if you _know_ when it's safe to crank up compiler flags (better leave this decision to package maintainers)

\- have debugger symbols built in - if you happen to ever need to do this, doing it for the binary package is not that difficult; you shouldn't have source distro just for this use-case

Gentoo deffinitely excels in providing you with concrete reasons to deepen your Linux knowledge if you have it as a distro on your main machine, which can be both pro and con.

<comment><USER24> You've missed out another benefit (of Gentoo specifically): the ability to conveniently apply your own patches – just copy them to /etc/portage/patches/category/package-version and then re-emerge the offending package.

Most users will probably never need to do this, but I find it invaluable.

I maintain my own patches for dozens of packages in order to fix quirks/WONTFIX bugs, add features that upstream refuse to touch, remove intrusive/unwanted features that piss me off, etc, and being able to do this without also having to maintain my own deb/rpm/<some other package format> makes it much less painful.

It's also nice for applying emergency security fixes without waiting for your distro to pick them up.

</comment></comment></comment><comment><USER25> I have been using Linux since the late 90s and tried most of the bigger ones for development over the years. In my practical experience distros which use aptitude are far easier to work with than distros with yum (awful, how can people use that?) or other package managers I tried. Stuff just works. I myself use Ubuntu; I have not reinstalled my laptop for years, I just run dist-upgrade and it works well on both client and server (I like to have things set up the same way on both).

For battery life, I get Windows like battery life out of my laptops using powertop/tlp but mostly by swapping out the window manager for i3. I3 is very efficient. Not only to work with but also for the battery; it literally makes hours of difference on my Thinkpad X2x0 systems.

I read about Archlinux here a lot and I will try it some time in the future, but if you don't need the latest, cutting edge _linux related_ software, you are fine with Ubuntu (which, compared to Debian, is already quite cutting edge). I say Linux related, because many tools web devs etc use have no apt- get package or have a package you don't want anyway. So that's not related to the OS installation then anyway.

<comment><USER26> Arch (Or any rolling release) isn't just about cutting edge. OS upgrades tend to break stuff depending on your usage (something compiled against the specific kernel version). Updating your computer every few days means you can avoid it entirely.

<comment> luka-birsa Arch is a joke an should be considered only if you LIKE tinkering with your OS all the time.

The preposition of always up to date would be great if that wouldn't mean that your PC doesn't work properly most of the time due to some new bug or incompatibility.

We've run Arch on embedded PCs (arm) due to out of the box docker support, but after updating a year later we've literally were unable to deploy Docker containers. There was a bug in the kernel, and no amount of hacking, upgrading or downgrading made it work.

Luckily we had a sdcard snapshot a year old.

I suggest Ubuntu or Debian, they got good docs, good support and generally a positive community.

As far as windows managers go - pick what you like. Gnome looks slick, xbuntu is my go-to for Chromebooks and default isn't too bad.

A lot of devs in our company go for tiling desktop managers - i3, awm....

<comment><USER27> > We've run Arch on embedded PCs (arm) due to out of the box docker support, > but after updating a year later we've literally were unable to deploy Docker > containers. There was a bug in the kernel, and no amount of hacking, > upgrading or downgrading made it work.

You are talking about a non official Arch project (Arch Linux ARM) as it was an official derivative of Arch. It is not.

</comment></comment></comment></comment><comment><USER28> Arch Linux

If you want a developer laptop you want modern hardware. If you want to run modern hardware you want a modern kernel.

In your case (since your hardware is a little old), you might not care about support from recent kernels but still want modern compilers, toolchains, etc available to you.

You also probably don't want it to break every 6 months when you have to system upgrade. Rolling release is the best.

<comment><USER29> I agree Arch and rolling release is great to _avoid_ breaks. Paradoxically, people are afraid of it for the opposite reason.

In 9 years running Arch, I have never ever experienced the need to downgrade my kernel after an upgrade, and only once had to downgrade a package (ghc). I key point was always to run hardware that needs no drivers aside from those coming with vanilla kernels.

Quite on the contrary, I love getting new versions of things quickly as this means new features and bugfixes come to me ASAP.

With that said, I am considering to migrate to NixOS or GuixSD (currently toying with 2 virtual machines). I find Arch to be a great imperative distro, but functional ones are simply superior. Declarative system configuration, declarative package recipes, and the ability to install multiple versions of the same package is key if you have a complex setup (e.g. doing deep learning).

<comment><USER30> > I agree Arch and rolling release is great to avoid breaks. Paradoxically, > people are afraid of it for the opposite reason. > I am considering to > migrate to NixOS or GuixSD (currently toying with 2 virtual machines). I > find Arch to be a great imperative distro, but functional ones are simply > superior. Declarative system configuration, declarative package recipes, and > the ability to install multiple versions of the same package is key if you > have a complex setup (e.g. doing deep learning).

I've been eying NixOS, but haven't heard of GuixSD. I'll look into it, would be interested to hear your comparison.

The main downside to NixOS seems to be package availability. I get the impression that you spend a lot of time repackaging things for it because the coverage isn't there yet.

<comment><USER29> That was my impression about Nix, however mind that things are moving very very _fast_. NixPkgs is one of the top GitHub projects now by number of contributors. Loads of things are packaged. I think it's getting comparable to Arch _plus_ AUR.

GuixSD is a GNU version of NixOS, running on Guix package manager. Extremely neat, as it's written in Guile Scheme. They have most basic things packaged. Also, derivations are compatible with Nix ones, so you can use any Nix channel.

<comment><USER30> Thanks for the reply, I'll give NixOS another look.

</comment></comment></comment></comment></comment><comment><USER31> Best giving them all a whirl and making up your own mind. A good starting point is The Live CD List[1] website. If you're switching from Windows to Linux for the first time, Linux Mint will certainly smooth the transition for you. Also for newbies, Ubuntu is a great first option.

I usually test distros in a VM instead of installing them on bare metal. So far I have not found a distro specifically tailored to development though, and the question really should be what tools are best for development?

In that case, Emacs/Vim[2] would be a good start, and being able to develop without an Internet connection helps harden your coding ability too as you're not so reliant on the solutions of others. Go for one day of coding without Stack Overflow/Google and see how you fare.

[1]: [http://livecdlist.com/](http://livecdlist.com/)

[2]: [https://stackoverflow.com/questions/1430164/differences- betw...](https://stackoverflow.com/questions/1430164/differences-between- emacs-and-vim)

<comment><USER32> I will second Linux Mint as a very nice well done distro, with sane defaults, and that has been very robust for me.

</comment></comment><comment><USER33> Fedora 25 without question. on newer laptops (including the xps) i have suffered through Ubuntu's inconsistencies in setting up bootloader with Uefi, firmware issues, nvme ssd, etc.

it also helps that Fedora is pushing the edge with newer tech like wayland, etc.

its polished, dont have to muck about with complex howto. just pop the bootable usb drive and you're done in 5 mins.

Brilliant experience.

<comment><USER34> +1 - As a long time Ubuntu user I've recently switched to Fedora +i3wm and love it.

</comment></comment><comment><USER35> It's a matter of tools. All distro's are basically very similar but come with different desktops and package managers.

I spent many years jumping around Debian and its derivatives but then I found Arch and it just felt right. I love the package manager and the fact I can control what I have installed. With a 9 cell Thinkpad battery and some cleaver settings I can last all day.

I have to admit that these days I tend to run from Antergos which is a great Arch derivative but that is mainly because of a lack of time and a need to get stuff done. Also from years of installing and running standard Arch I can tweak things very quickly from Pacman.

<comment><USER36> When it comes to tooling, I found the packaging strategy of Arch to be pretty invaluable, too:

\- Pacman is a _great_ package manager (esp. when compared to e.g. ´yum´).

\- The Arch User Repository ([https://aur.archlinux.org/](https://aur.archlinux.org/)) has a large list of additional packages maintained by the community.

\- The PKGBUILD format used by the AUR is easy to read and essentially just generates Pacman packages you can install alongside packages from the Arch repo.

\- PKGBUILD also makes it really easy to create a package for some obscure software yourself (or e.g. a specific font), if necessary.

\- There are tools that create PKGBUILD packages from language repos like gem, npm or pypi (via pip). Those are really useful since they prevent language based packages from clashing with pacman.

In addition, I really like that arch is built with choice in mind: There's no default "way to go" \- you can e.g. choose from several desktop environments without having to install a specific one first, meaning you can configure your system from the ground up.

I think Slackware and Gentoo work similarly? (I've personally never tried them)

<comment><USER37> Can you honestly say you remember the exact pacman syntax of how to perform a system upgrade or how to install a package? :-) For me the UX was a problem, even if technically the package management is good.

<comment><USER36> I just remember the commands I use most, namely:

´sudo pacman -Syy´ to update the package db

´sudo pacman -Suy´ to update all packages

´sudo pacman -S package´ to install/update a specific pakage

´sudo pacman -U package.pkg.tar.xz´ to install a package from a local file (useful if you're using makepkg)

Those are usually enough to maintain my system. I'll have to hit the wiki for the various query options though. But if the CLI side of pacman bothers you, I'd suggest defining aliases in your shell's RC. I track my dotfiles using git and share them on all my machines, and this method works quite well for me...

<comment> joatmon-snoo And -Ss to search, -Rns for purge/uninstall.

</comment></comment></comment></comment></comment><comment><USER38> Your post seems to suggest that you won't be developing _for_ Linux and just need something that's a good virtualization host and all-round desktop. In this case, any distribution that you can get along with will do. Especially if you don't have much experience with Linux, Ubuntu and Fedora are both excellent choices. I tend to recommend the latter over the former.

If you do actually need to develop _for_ Linux, I would suggest something with a rolling release model, otherwise it won't be long before you'll need to start compiling things from source because you need a more recent version of <something> than your distro is packaging.

"Rolling release" means that there is no Arch Linux 1, 2, 3 and so on, as in Fedora's case. Arch periodically releases an install image, which you use to bootstrap your system, but the latest tested version of every package is what's available in the package repository, for everyone, and as soon as a newer version is packaged, you can install it. This seems to be the best way to guarantee that you get the latest packages and the most stable system that you can get with them (spoiler alert: it's not _that_ stable, but not disastrously unstable, either; I've ran rolling release distros on my laptop for years).

Arch is an usual recommendation in this case. Red Hat Enterprise Beta, uh, I mean, Fedora, is also a good choice -- it's not a rolling release, but it regularly ships with very recent packages. It's also a testbed for new technologies, and does have the advantage that you get a fully setup (and generally mostly working) system from the beginning.

If you're a more experienced user, you might want to have a look at Gentoo and Void Linux.

<comment><USER39> > If you do actually need to develop for Linux, I would suggest something with > a rolling release model, otherwise it won't be long before you'll need to > start compiling things from source because you need a more recent version of > <something> than your distro is packaging.

It depends on your requirements. If you constantly find yourself needing the latest and greatest upstream software releases, then yes, use a rolling release. But if not, rolling releases can make your life much more painful. If you're not paying attention when you update your system, then each update is a roll of the dice as to whether your software will still build or run afterwards, as any update could introduce incompatible changes to packages your software depends on.

A distribution with a release model (usually) tries to maintain API and ABI compatibility for the duration of a release, so you can update with more confidence that it you won't have to re-build or port your code as a result.

There's trade-offs between stability and shininess across the spectrum of distributions with rolling releases, with frequent releases, and with long release cycles. As long as you're aware of that, you can decide for yourself how frequently you want updates, and therefore the type of distribution you should run.

> Red Hat Enterprise Beta, uh, I mean, Fedora

I really wish people would stop making comments like this. I volunteer a significant amount of my free time and effort to improve Fedora, and I see a lot of others in the Fedora community doing the same. I can't speak for anyone else, but I'm doing it to make Fedora better, not to crowd-source Red Hat development for free. Fedora is a first-class distribution in its own right, with an open, inclusive, and independent community. Reducing it to a beta distribution for Red Hat glosses over that fact, which I find very unfortunate.

<comment><USER38> > I really wish people would stop making comments like this.

I didn't mean to imply that Fedora isn't a first-class distribution in its own right. In this post's context, I see why it would look that way, and I apologize for it. I don't mean to belittle the work you folks are doing, and I know that the Fedora project is more than just the distro, and that the distro itself is more than just Red Hat's testbed for new features.

I don't run Fedora on any of my home computers anymore. I ran it up to Core 3, I think, having ran Red Hat Linux before. But I've always "ran into" Fedora computers as part of my work and occasionally ran it on my company-issued laptop at $work. While Red Hat's presence can account for some of your stranger choices, it cannot be the only reason behind your success (and I honestly don't think it is).

The origin of my snarky comment is that to many of us outside the Fedora community, it often feels like a lot of things are finding their way into Fedora largely because they need more ample testing. The fact that they're so active and so pushy means that most of them are from Red Hat. I have very few fond memories about dealing with very early breakage from NetworkManager, PulseAudio, systemd and so on. All of them are now successful technologies, but they were not "ready" by any responsible use of the word when they were first included or enabled by default in Fedora. Wayland is, to some degree, an exception, but only because it has already seen wide enough deployment in the embedded/infotainment area that, for once, the desktop is not the earliest adopter.

This is one of the reasons why I recommended Fedora as a development distribution (my wording probably didn't really look like a recommendation, sorry!). At $work, I already work on Linux software; I don't want to deal with more Linux craziness at home, so I tend to stay way from bleeding edge stuff. But if you _do_ need to keep in touch with what's happening in the Linux world, Fedora is the most stable way of doing it that's also reasonably low- maintenance (the second best option, IMHO, is Gentoo).

Staying up-to-date with all these changes is very important, IMHO. For better or for worse, very important pieces of a modern Linux system, like systemd and GTK, are making a lot of breaking changes in-between releases. Running a bleeding-edge system is about the only reasonable way of becoming "passively" acquainted with them, and is a great way of weeding out the subtle bugs that they introduce.

<comment><USER40> Thanks for taking the time to write that out. My intention wasn't to call you out specifically, it's just that I see a similar sentiment expressed almost every time Fedora is mentioned, and I finally decided to say something about it.

Part of why you see things working their way into the distribution quickly is because of the "first" foundation[1]. Fedora purposely does not wait for other distributions to do the hard work of integrating new technologies, which means they're often among the first to discover bugs in new technologies. That said, I think that these large integrations are getting smoother over time, as the community is putting a lot more effort into coordinating these large changes and instituting QA that has the teeth to block releases on bugs with flaky integration.

[1] [https://fedoraproject.org/wiki/Foundations](https://fedoraproject.org/wiki/Foundations)

</comment></comment></comment></comment><comment><USER41> Like many in this thread, I'm personally a proponent of Arch Linux, but I'm objective enough to admit that there is no such thing as a "best" Linux distro for general development work. The best choice for your needs will be dictated by a balance of priorities and it'll necessarily be a compromise. I'll try to give a short outline of the current state of affairs as I see it.

If you like or at least don't mind regularly tinkering with your system and have a preference for running the newest software, Arch is definitely your best bet. Depending on UX and ecosystem preferences, you could go with Antergos with a DE of your choice (personally, I prefer KDE, it's gotten much better over the last year or two), but there's a lot to be said for setting the whole thing up from scratch at least once. It really teaches you a lot, and will invariably be useful when something breaks. Battery management will be as good as you bother to make it, with some effort it's possible to come close to Win10 levels of battery life.

On the other hand, if you want something that just works out of the box and the last paragraph sounds annoying to you, don't get on the Arch bandwagon. Fedora (my preference) or Ubuntu are you best choices here, and I suggest trying both for a week.

And, of course, if all you care about is a thin base for VMs of your choice, all of this is completely off topic. If you want the newest kernels, Arch will be a bit more convenient, but ultimately distro choices don't matter much for this use case.

</comment><comment><USER42> Not a distro recommendation, but one thing I would _highly_ recommend when setting up your Linux box is putting your /home directory in its own partition. I'm not sure if this is the default in most Linux distros, but you have to specifically configure it in Ubuntu.

The benefit is that you can easily switch to a new distro or reinstall a completely hosed one with much less migration effort. That way, if you don't like the first thing you tried, there's no harm done.

<comment><USER43> Antergos. It's Arch without the initial pain of setting everything up. The "arch way" is that you set everything up yourself so that you know how to fix it if it ever breaks, but I find the Arch wiki to be so good, that you can usually figure it out. So if you have time and want to build a custom system, Arch. But if you just want a base image to start with, Antergos.

<comment><USER44> The Arch wiki is so good it is my goto resource for Linux in general.

</comment></comment></comment><comment><USER45> The best development OS is the production OS, so just use whatever you're going to deploy on. Ubuntu (Server) and RHEL and Centos are ubiquitous. I think the easiest to manage in prod is Ubuntu.

<comment> joatmon-snoo TBH I much prefer to keep that kind of stuff in a VM so I can tear down or rebuild them from scratch.

Of course, I still have Windows as my primary OS, if for no other reason than I'm too lazy to deal with the inevitable driver wrangling. (Caveat: PuTTY into an Arch VM is my dev environment.)

<comment><USER46> Driver wrangling, seriously? I haven't had driver issues for ages, save for a few bits exotic and obsolete hardware (an ancient Creative webcam and an ancient PCMCIA Wi-Fi card).

</comment></comment></comment><comment><USER47> Archlinux ([https://archlinux.org](https://archlinux.org)) is a great rolling release distribution, and the Archlinux wiki ([https://wiki.archlinux.org/](https://wiki.archlinux.org/)) is an invaluable ressource.

<comment><USER48> There is nothing better than Arch. I have been using linux daily since 2005, tried multiple distros and now all of my machines (laptops, desktops, PIs, remote servers) run arch. Hardly ever a problem and making packages is a so damn easy compared to any other distro.

<comment><USER26> How many servers? How are you managing the updates? Are you using it for any 'production' code?

<comment><USER49> Definitely interested in an answer here, too. If the rolling release ain't bad enough, the focus on bleeding-edge would ordinarily make Arch the absolute least desirable production server OS imaginable. I certainly don't have that kind of courage :)

<comment> luka-birsa Got burned so bad with Arch in production.

You want your servers running old and verified software.

<comment><USER36> That makes sense, yes. However, since we're talking about a dev-machine here, that doesn't necessarily apply.

Of course, this is much a matter of taste, but "stable" environments can work to the detriment of a developer's productivity (especially since many developer tools improve quite fast these days). It might be a mistake to discard a tool/distro just because it didn't do what you expected for an unrelated use case.

Edit: Also note that "server" != "production code". I run a couple of servers (OpenVPN, Backups, mopidy) using Arch (on Raspberry Pis) at home, that doesn't mean I'd use it for a public facing web server.

</comment></comment></comment></comment></comment></comment><comment><USER50> I prefer Arch or derivates on Laptops because of the better default battery management. I easily get 2-3 hours more on a default Arch installation vs. Ubuntu.

Arch however can be a pain if something does not work, if you want it easy just use a Ubuntu derivat (or Ubuntu if you like that fugly Desktop)

</comment><comment><USER51> People are surprised when I recommend openSUSE. I personally use its rolling version Tumbleweed.

\- Its stable while being very latest of packages. So I am done with distro upgrades which might break something between version changes.

\- It has largest number of packages in repository [https://en.wikipedia.org/wiki/Comparison_of_Linux_distributi...](https://en.wikipedia.org/wiki/Comparison_of_Linux_distributions#Package_management_and_installation) .

\- YaST is great for everything to administer - NetworkManager, static network config, printers, kernel parameters, sysconfig, docker and what not. So I do not have to hop through different GUI's

\- Hardware works out of box mostly (because I am on MacBook Pro)

\- The community is vibrant, receptive and responsive. Till now I haven't seen anybody pushing an agenda of preferring one way over other (systemd would be another discussion). Most packages are as good as upstream with little branding change, which also can be changed with a package change from Yast (or zypper).

\- Server, desktop, RaspberryPi (and variants) are supported from same base.

\- OpenQA, OBS, Suse Studio and packman!

\- Defaults set are good to go, but you can easily change them, for most packages and configurations in general. The distro doesn't stand in your way that you have to change something very basic for the distro itself.

IMHO after inside all distro's are same, since you still need to use bash, KDE/GNOME, systemd, NetworkManager, FFMPEG etc. unless you are rolling your own solution. They differ in what they pack as defaults, updates and administration tools provide, and what they consider as "best config" for your use case. openSUE seems to have a fail balance on these.

<comment><USER52> I've just uninstalled openSUSE Tumbleweed after using it as my primary dev machine OS for about three months.

One good thing that can be said about it is that it has the most stable KDE packages of all KDE distros that are still left.

Other than that, it was the most unstable non-Microsoft OS I've ever used. Kept crashing on me all the time, updates broke stuff frequently. After the last update, it refused mounting my encrypted home partition for whatever reason.

From my experience, I'd recommend steering way clear of openSUSE if getting actual work done is a priority.

</comment></comment><comment><USER53> I'm going on 9 successful years of fedora. I spent 4 years switching distributions ever couple months until then. I think its probably different for everyone.

<comment><USER54> I'd also like to suggest the Fedora route.

I've tried most(and then some) popular distros and the last 6 years I've settle on it.

<comment><USER55> What are your thoughts on Korora? It looks like Mint for Fedora.

<comment><USER54> Since I use KDE as my desktop, I don't think it would do me any good. In general I've found that Fedora's spins([https://spins.fedoraproject.org/](https://spins.fedoraproject.org/)) are actually pretty good. So I am not exactly sure how someone would benefit from moving into a considerably more obscure distro.

It may be excellent as a distro, I really don't know. I am just thinking out loud here.

</comment></comment></comment></comment><comment><USER56> +1 for fedora here. Really very stable, "just works" experience.

I have had nothing but trouble with Debian and its derivatives on my machine. In a VM they're fine, but on bare hardware they are a pure nightmare of dysfunction. Fedora was the first linux OS I was able to get going on my PC out of the box.

Arch is good too - i hear a lot for that. I might look into that for a VM, but i'd lean more towards something like Fedora for the hardware, so you don't need to muck around to get the basics going.

YMMV though, hardware can make/break a distro.

<comment><USER57> +1 for Fedora (KDE spin) as well, only distro I've ever found to reliably work on laptop hardware consistently.

It's very actively developed though so sometimes kernel upgrades break propriety drivers, but that is extremely infrequent and is easy to fix.

</comment></comment><comment><USER58> Ubuntu would be the safe bet. Just pick a distro that appeals to you, since you will be the one working in the environment. Also any modern distro should have built in KVM support to run your virtual systems or you can always go the VMware Workstation route.

<comment><USER59> If you use your laptop for personal relaxation as well and like to game, then Ubuntu has the added benefit of being very well supported by game developers selling (Linux supported) games on Steam.

</comment></comment><comment><USER60> Your requirements are met by any distro so you'll get people recommending their distro of choice here. Mine is Fedora. Arguments for Fedora include:

* Best SElinux implementation if that sort of thing turns your clock.

* Latest gnome 3 and yearly new releases with even more recent desktop software.

* dnf, or yum as it was called, which from personal experience I think is very good. On par or better than apt/dpkg.

* Backing of RedHat, a huge Linux company that have proven their dedication to open source countless times and are one of the major contributors to the Linux kernel.

<comment><USER61> > _Your requirements are met by any distro so you 'll get people recommending > their distro of choice here._

Exactly. You'll basically just need to experiment to find what suits you for the little things.

For me, it's Elementary OS, and before that, Slackware. When I finally started getting over my aversion to _systemd_ I started using Elementary full time, and it's a great fit for me. The interface is superficially a near-clone of macOS, but in reality, only where it makes sense to do so. It's Ubuntu LTS based so it's got a solid foundation, and it has some great features for developers. The Terminal app is great, the built in visual text editor (Scratch) is good but not superb (it meets my needs but programmers will probably stick to what they're used to), and hardware support in my experience is, again, as good as Ubuntu. It also happens to have excellent laptop support, with ACPI and sleep/hibernate/resume usually working out of the box unless you have esoteric hardware.

Two downsides I've found: One, it can be a bit slow on underpowered hardware (but that's probably not an issue in your case), and two, it's not a rolling release which is a dealbreaker for some. If those are issues, Arch may be a better fit. I've found Antergos to be a beautiful, painless introduction to that distro.

An honorable mention is BunsenLabs, which was started by former users of Crunchbang Linux. It's almost pure Debian with a well-configured Openbox+Tint2+Compton theme and some really great defaults. It's as minimalist as you can get while still running a stacking WM and visual effects. Hardware support is slightly less robust than Ubuntu thanks to being Debian based, but I never had any issues with it except on one old Pentium M laptop that didn't support PAE kernels. They do offer a non-PAE installer for just that scenario (again, not a concern you'll have).

</comment></comment><comment><USER62> I tried several and these were my experiences:

* Ubuntu. Works fine (I used kubuntu and xubuntu).

* Mint. Tried it and it seemed to work okay until I upgraded it one day and ran into issues that I think were related to the system having an identity crisis over who it really was (ubuntu or mint?).

* Fedora: had a few more driver issues than ubuntu but still worked okay for the most part.

* Debian: pain to set up and a lot of issues - there wasn't a bootable ISO I could find that would let me boot into a USB and test run the latest version with all of the (nonfree) drivers I needed.

* Arch: ran into more bugs than on ubuntu/fedora: the project maintainers don't do QA as effectively as ubuntu, debian and fedora. There seems to be a pervasive attitude that since its the distro where you get your hands dirty, that you should hand-fix a lot of bugs too. I tried manjaro as well because I wanted to try Arch and didn't want to configure every little thing until I saw this horrifying post and then ran far, far away: [https://www.reddit.com/r/linux/comments/31yayt/manjaro_forgo...](https://www.reddit.com/r/linux/comments/31yayt/manjaro_forgot_to_upgrade_their_ssl_certificate/)

* Gentoo: tried and failed to install firefox due to dependency issues and then gave up. Waste of time.

* Opensuse: tried and again got bogged down by the package manager crashing when trying to upgrade some pretty basic part of the system.

For me the decision comes down to comprehensive driver support out of the box and QA. Ubuntu still seems to be the best at those although Fedora isn't far behind. Arch has the most up to date packages which is nice but IMHO its instability caused me way too many headaches.

<comment><USER63> > Debian: pain to set up and a lot of issues - there wasn't a bootable ISO I > could find that would let me boot into a USB and test run the latest version > with all of the (nonfree) drivers I needed.

Does this help? [https://fiendish.github.io/The-Debian-Gotham- Needs/](https://fiendish.github.io/The-Debian-Gotham-Needs/)

<comment><USER62> Definitely, thanks. I will try that next time I'm distro-shopping.

</comment></comment></comment><comment><USER64> "what's the best X" is why most programmers waste their time shasing a myth. There is no best thing for all, it all depends on the individual. A better question would be "what's a good enough X" And then go from there to best suit your needs. A generic best X simply does not exist out of a context, and the contex is usually personal.

<comment><USER36> As a conventional conversation starter, maybe. But I found questions like these to spawn interesting discussions on platforms like HN - which is in the end, what we're here for, right? :)

Also, anyone commenting here about their personal favorite will most likely comment on _why_ that distro is their favorite, which should at least be enough for OP to inform himself further.

</comment></comment><comment><USER65> I would go with Gentoo. I reckon that compiling might be a PITA but I'm rather accustomed with the workflow, using flags to handle specific requirements, OpenRC and other gentoo-specific intricacies that might scare off new-comers.

On the other hand, gentoo makes a great linux experience for those who would like to get more intimate knowledge of Linux internals, networking, etc. It's a great experience if you have time and will to get your hands dirty. The documentation is excellent IMHO and the community (forums) very helpful.

<comment><USER59> > […] gentoo makes a great linux experience for those who would like to get > more intimate knowledge of Linux internals […] It's a great experience if > you have time and will to get your hands dirty.

Very true; keep the time investment aspect in mind though. Gentoo is probably not what you want if things should just work out of the box right away with minimal tweaking and a minimal learning curve. Ubuntu (or perhaps Arch) is more friendly in that respect, and unless you have really outlandish hardware, it will have you sitting in a working desktop five minutes after you've plugged in a USB-drive with the installer.

</comment></comment><comment><USER66> I've recently moved to Manjaro (Arch) after trying to upgrade from Kubuntu 14.04 to Kubuntu 16.04 and finding out (you don't wanna know how much time I wasted) that Kubuntu is practically unsupported atm. So I tried Neon (the "new" Kubuntu) ... but they don't even have a working installer. I didn't want to go to Ubuntu directly for the obvious reasons.

Now to me stability is everything. I have shit to do and don't have time to fuck around with the system every two days (that's why I was on 14.04 in late 2016). But a friend of mine convinced me to invest some time, install Manjaro and learn the slightly different ecosystem. And I can say, it's been worth it. Fantastically stable, things work, and in the 3 months of usage I have yet to find a bug.

<comment><USER67> I occasionally boot into Manjaro/XFCE, it's nice. But i find it a bit odd that you use the term "stability" in conjunction with any rolling distro.

<comment> vladimir-y I also vote for Arch Linux. Have been using it for a last few years and I like it. I started from pure Arch, but switched to the Manjaro about 6 months ago since I needed system to be more stable. I believe Manjaro provides a little more stability than pure Arch since Manjaro has a kind of release cycle (every week or two) - they do addition check that all core system components work well together before releasing updates for the users. I prefer Xfce Desktop over Gnome/KDE since it's simpler and therefore it potentially can cause less issues (I used Gnome/KDE/Lxde before, as well as Xubuntu/Lubuntu distros).

PS Manjaro in my case has been installed not using GUI installer since I needed to go with a kind of complex LUKS/dm-crypt encrypting scenario and GUI doesn't support a complex configurations.

</comment></comment></comment><comment><USER68> After trying anything with rolling release in it, I settled on openSuse Tumbleweed , it runs here on a 12 year old x61 lenovo/ibm , on a samsung with atom 150 processor, on a lenovo T460s, and on 2 tower boxes. There are no complains once you have all the toolchains installed for your development effort. The other rolling distro to recommend is Arch, but it takes some time to get it where you want it to be.

</comment><comment><USER69> Xubuntu is my daily driver.

Fast and light, rock solid, many packages available, a lot of tutorials and documents on the 'net, and ltd is guaranteed to receive updates for three years on desktop and five years on servers (well, on server is Ubuntu).

Just works and doesn't get in the way.

If I need something else, qemu-kvm is awesome or docker.

<comment><USER70> I'm having a lot of issues with Xubuntu 16.04 to the point where I consider moving to another distro.

* Chromium tends to be unresponsive after waking up from hibernation.

* VLC tends to hang and freeze.

That's not the stability and simplicity that I originally moved to Xubuntu for.

</comment></comment><comment><USER71> I'd go for Mint. The only system that never disappointed me and always just worked. Second place would go to Debian "stable", old (== problems with Wifi) but rock solid.

<comment><USER72> I love cinnamon so that's a big plus on Mint but I didn't love being stuck on an old version of Ubuntu and all the associated core packages/drivers. I had some hardware issues that were fixed by using a more recent version (now on Fedora).

I'm by no means a seasoned Linux veteran though so just explaining that YMMV.

<comment><USER49> Doesn't Mint stay in-sync with the latest Ubuntu versions? It's literally Ubuntu with Cinnamon/MATE and different branding. Everything version-wise should be identical with Ubuntu, since it uses the same packages.

<comment><USER72> Think it's pegged at least to the LTS ones so when I was on Rosa it was still 14.04 when 15.11(?)/16.xx were already out

<comment><USER73> That is correct.

</comment></comment></comment></comment></comment><comment><USER74> I use NixOS for my full-time development laptop and it's great. Declaratively specified OS environments are the bees knees.

</comment><comment><USER75> I haven't found a "best" distro yet.

Before I discuss specific distributions:

1) powertop is your friend for battery management

2) Pretty much all distros will let you run virtualbox and qemu-kvm so there's no real wrong choice for your use case.

A lot of people like Ubuntu, but I've had terrible luck with it. It somehow seems to be in the (for me) uncomfortable spot where it adopts certain things before they are ready for prime time while also having other things feel old compared to a rolling-release distro.

Debian "testing" tends to be more stable than Ubuntu and "unstable" more bleeding edge. If you want a middle ground between those two, give Ubuntu a try.

That being said, nearly 20 years of running linux has given me a strong bias for source based distributions. Rolling binary distributions (e.g. Arch) tend to have issues with DLLs, and release based binary distributions are often a pain to switch releases.

For non-laptops I use Gentoo, but you don't want to have to install or upgrade packages when not plugged in as you will be able to watch your battery usage go down in realtime.

My current laptop uses Nix, which is a source-based distribution with a binary caching system. I _love_ Nix, but it's a small enough community that you are likely to find software for which no package exists; as a source based distribution, you can often write a package expression in a few minutes, and I've done that about 6 times in the past 6 months. It is a _very_ non-FHS layout so a ./configure && make && sudo make install like you can do on Gentoo is unlikely to work.

Another upside of Nix is that it also has a lot of great tools for developers, letting you easily make isolated environments with different libraries and utilities in each one. All this being said, I usually don't recommend it to someone who is asking "what distro should I use?" since the small community and sheer difference of the approach makes it much harder to do google-based troubleshooting.

</comment><comment><USER76> I've recently made the switch across to Arch. If you need to spin up something quickly, it's not going to be for you. But, if you have a little time and want to build it into something that is exactly what you want and need, it's perfect.

<comment><USER50> Well there is AntergOS and Manjara, but it takes a bit of the fun and brings some new unique bugs.

</comment></comment><comment><USER77> Frankly, this question is a very personal choice. Any distribution you choose will really just be the closest base point to get you to your "perfext" Linux installation.

After just a few weeks, even using the same distro, everyone's installation is customized to its user like a glovesl. Some start with more more comfortable distros than others. Something like Ubuntu will give you a very stock, GUI heavy, "beginner/I don't want to think about my OS" operating system. From there, you get into Debian, a much more "pick and choose distro" than Ubuntu, but still with great support and stable packages. After that, maybe into Arch, a rolling release distro with grear, always-up-to-date, system with a very minimalist and well designed base install. After that, Gentoo, a hand crafted, labor intensive distro that will be completely bespoke to you.

Some never move on from Ubuntu, some never make it to Gentoo. AND THAT'S _OKAY_. It's about what YOU are comfortable with.

As you grow and become more familiar with the CLI and Linux, you'll want to take more control of what you install and I think you'll start to appreciate simplicity and purity over "initial ease of use". You might even consider trying out different window managers like KDE, i3 (my current love affair), or awesome wm. At that point in your Linux journey, you'll actually have some intuition about how a window manager is different from your distro and how most window managers are built on top of X server. You'll have your own hand rolled .Bashrc. You'll know what you _want_ from your OS.

Personally, that's where I am now. I've been running Arch for 2 years now and made the switch from GNOME to i3 about 6 months ago.

My advice is not to try the most highly recommended distro, or the most "barebones" but simply begin with so.thing very easy like Ubuntu. You might quickly hit some frustrations and identify things that you would like your distro of choice to better. At that point look elsewhere. Migrate and give that some time.

Don't just jump onto the "perfect developer's distro", ease into the easiest and most comforting distro for you "where you are now".

</comment><comment><USER78> Would you be open to trying non-Linux distros such as BSD distros?

There are various flavors of BSD that have the toolsets to do what you requested. Not very sure of laptop battery management though.

FreeBSD (Very stable)

OpenBSD (Stability + Security focused)

PCBSD (Linux like ease of setup for Desktop environments)

They all have access to large/comprehensive application/system/development software.

<comment><USER79> I can confirm FeeeBSD is very stable on my 2008 UniBody MacBook. Even Suspend/Resume works

</comment></comment><comment><USER80> I personally use ArchLinux on my development laptop.

Three major reasons:

A) AUR

B) custom installs are default

C) rolling release + up-to-date

Of course, Arch is not that easy to setup compared to other distros (Antergos might help), you're gonna have to manage the system yourself to some extent.

If you don't like ArchLinux you could go for Fedora, NixOS or Ubuntu variants.

<comment><USER81> Would you explicitly put KDE last, or did you just forget it? As a Mac user and former Ubuntu, I wonder whether KDE is losing the race.

<comment><USER80> I haven't used KDE a lot, tho with the newer release I'm definitely willing to try.

Personally, I think KDE has a bit less good integration, KIO and the such don't work as well as GVFS. (GVFS uses FUSE while KIO (IIRC) is sockets or something)

Gnome 3, for the most part, works like an oiled machine.

</comment></comment></comment><comment><USER82> You may want to consider how well each distro supports different profiling / tracing tools, especially in userspace.

For example, I've recently started to play with Systemtap, and found it to be the perfect tool for some of my work.

But after some frustrating attempts to use it on Ubuntu 14.04 LTS, I discovered that it's broken and Canonical won't fix it. I tried to build my own, nonbroken version of Systemtap on this distro, but ran into nontrivial problems with library versions.

Even on Ubuntu 16.04 / 16.10, Ubuntu seems to build Perf Tools (which is part of the kernel's code base) without support for Python scripting. It was pretty easy for me to fix, but it did require downloading the kernel source, and rebuilding "perf". I don't know if they have a good reason for doing things this way, but it's irritating.

In contrast, Oracle Enterprise Linux has DTrace, which arguably is the (aging) gold standard for dynamic tracing on Linux. But OREL is a distro I never seriously considered using before needing this kind of tool.

* NOTE: I'm not trying to state which tracing / profiling tools work well on specific distros. I haven't done enough research for that. My point was only to bring attention to this category of feature.

</comment><comment><USER83> Right now the situation with macos and Windows 10 has spawned a bit of a migration. There is a growing trend of people buying pc hardware and running Linux on it. I think you will find that the most common choice of os among these people is Ubuntu. This is because it's designed with user friendliness in mind and has a lot of support for new users. It wouldn't be a bad choice.

I personally am using elementary right now. It seems to take advantage of the macos/win10 exodus by offering the next closest experience. It takes the principles of user friendliness from Ubuntu and takes it a step further. As others have said here, it sets up quickly, has an awesome terminal, has a great default text editor, and looks sublime. It's great. It has the occasional bug but I still find myself using it. I really believe that elementary is the closest thing that there is to a universla, open source os that makes computing accessible to _everyone_. I have been doing a lot of rust stuff in visual studio code and everything works very well.

</comment><comment><USER84> My daily driver is FreeBSD (not a linux distro, I know). It has VirtualBox and bhyve (its homegrown virtualisation system), and runs most if not all software that runs on Linux. Plus the benefits of a very coherent system that's easy to grok. Also, very stable and dependable.

</comment><comment><USER49> Pretty much any reasonably-mainstream distro will be about equivalent for the features you're prioritizing. Usually, when someone asks about which distro to use, my go-to answer is openSUSE. It's easy enough to give Ubuntu a run for its money, and I've found it to be much less prone to breakage.

\----

I personally use Slackware. Some developer-friendly features I've found to be useful:

* Ships with all sorts of editors, including Emacs (which is what I use)

* Ships with the full GCC suite among other compilers (including LLVM)

* Convention is for all packages to include development headers; no more "foobar" and "foobar-dev" like in most other distros

It ain't for everyone, though. Like Arch and Gentoo, Slackware carries an expectation of being _very_ comfortable with low-level Linux use.

<comment><USER85> > _Arch and Gentoo, Slackware_

Over years, I have tried all three and found Slackware to be the easiest one to install and get up and running as a development environment or as a server. It worked perfectly on a Dell laptop (including wifi) in 2003, and it is working perfectly now on an Asus UX305 (the best light-weight non-Apple laptop I know of).

<comment><USER49> It's definitely the easiest to install of the three. There are some tradeoffs, though:

* No dependency resolution. I consider it a feature, but quite a few folks will understandably consider it a huge drawback.

* No PAM. Again, whether this is a feature or a drawback depends on the user.

* No systemd. Same story.

Basically, the aim of Slackware is full customization and transparency, which means that users are not required to worry aboit dependencies or broken authentication systems or binary log files. Slackware also has a pretty strong "if it ain't broke, don't fix it" mentality, which probably explains why the installer doesn't look all that much different from the one in Softlanding Linux System ;)

I'm sure you already know all this; just clarifying for other readers on this thread. It's definitely the easiest of the SAG Trifecta to install, but it deviates pretty strongly from the Linux distro norm due to its history and philosophy.

</comment></comment></comment><comment><USER86> If you are a professional developer and value security of customer data probably Qubes-OS is the best Linux system you can use today, but check the HCL:

[https://www.qubes-os.org/hcl/](https://www.qubes-os.org/hcl/)

</comment><comment><USER87> I've recently started experimenting with NixOS on my secondary (testbed) laptop at home. (My main home laptop has Windows, while at work we use Ubuntu.) Based on that and posts on this thread, I'd say _if_ you're willing to consider Arch, I'd seriously suggest it might be worth adding NixOS to your list too. In my experience, at some cost, it gives you one particular _super_ -power, that I've never seen anywhere yet. Specifically, breaking down cons vs pros:

\- ~CON: It's not as polished experience as Ubuntu on "first install", i.e. "end user first" or "Windows-like". But based on other comments here, I assume _if_ you're willing to try Arch, you agree for some tweaking. Please note I've never used Arch, so I can't more precisely compare the level of tweak-ness required; what I can say for sure that it's certainly easier than what was required in '90s (at least because we have teh internets now; and esp. the ArchWiki + askubuntu...) But again, I started my post with "if you're willing to consider Arch", so in such case I assume this point is a non-really-CON, as you're already agreeing to take this cost.

\- CON: you have to learn a new language (Nix). To sweeten the deal, IIUC it's one of the few _truly_ purely functional languages around. No IO monads or whatsit. As a result, you may (um; _will have to..._ ) learn some interesting functional tricks you never imagined may exist. Note also, that some advanced usage ideas are spread over a few blogs (see esp. the "Nix pills" series), and also in inline comments in the Nix standard library source code.

\- SUPER-PRO: I found out that NixOS is a _hacker 's dream OS_. Nix's core idea is that removing a package from your OS _nukes it clean_ , leaving _absolutely no trace it ever existed_. As a result, you practically don't fear _any changes in even most sophisticated internals of the OS_. Want to change a kernel compilation flag? Meh, let's just try this one, _bam_ , compile, reboot! Oh, it hanged during boot? Pfff, reboot again, select previous version in GRUB, and we're back! [Um; I mean, as long as you haven't burnt your hardware ;) you know, Linux is powerful :)] Also, part of this is in the fact, that all of your OS config is described in a single file, so you can control everything from single central position, and VCS it trivially.

I've already sent a couple PRs based on this ease of hacking and tweaking, namely to neovim and systemd-bootchart. I'm also trying to write my own series of blogposts documenting this (while it's still fresh in memory); but, eh, you know, a bit too many side projects... not to mention even some of this weird _" real life"_ thing people are talking about so often...

<comment><USER88> > It's one of the few truly purely functional languages around. No IO monads > or whatsit.

The IO monad, as in Haskell, can be viewed as an entirely pure construct. Its implementation is impure purely because of performance reasons. You can write your own completely pure IO type if you want, with unchanged semantics.

A basic example of this would be

        data IOF r = PutStrLn String r
                   | GetLine (String -> r) deriving Functor

        type IO = Free IOF

        putStrLn s = liftF (PutStrLn s ())
        getLine = liftF (GetLine id)

        main :: IO ()
        main = do
          putStrLn "Enter your age"
          age <- read <$> getLine
          if age >= 18
          then putStrLn "You can vote!"
          else putStrLn $ unwords ["You can vote in", show (18-age), "years"]

Of course, now you need a way to interpret your IO type in order to make the machine actually do stuff. This can be achieved in two ways: You can modify the GHC RTS to allow it to interpret your IO type, or you can define an interpreter in Haskell to convert it to the IO type that the GHC RTS knows how to interpret

        interpret :: IO a -> Prelude.IO a
        interpret (Free (PutStrLn s r)) = Prelude.putStrLn s >> interpret r
        interpret (Free (GetLine s)) = Prelude.getLine >>= interpret . s

<comment><USER89> Even though it's very much out of context for this thread, it's a little pearl that brought me again a little bit closer to understanding. Thanks!

</comment></comment></comment><comment><USER90> Ubuntu is the most professional choice. It has the easiest set-up with the best hardware and software support. I would not recommend the LTS version though unless you really don't mind outdated software.

</comment><comment><USER91> All of them work. Over the years, I have used ( in reverse chronological order ) Mint, Ubuntu, Gentoo, Fedora, Suse, Mandrake, Slackware and Yggdrasil.

They were all satisfactory.

</comment><comment><USER92> Antergos or manjaro. You get all the drivers that comes with an updated kernel, the AUR, the speed of it being a source-based distro, and all the latest software. Those who claim arch has breakage often draw from past experiences with vanilla arch. Vanilla arch his a complicated install process that results in an often unstable system. But antergos/manjaro is to arch as ubuntu is debian. Heres some reasons other distros are not as pleasant as Antergos/manjaro

Ubuntu: the 6-month release cycle highlights whats great with rolling release distros. Youre greeted every 6 months with a broken system you have to reinstall. Ubuntu LTS: Alot of the packages are extremely outdated and you'll most likely collect a huge amount of ppas(a method of installing 3rd party programs in debian based distros) that will slowly but surely give your computer a decrease in speed and stablilty

RPM based distros: Rpm package managers are the slowest you'll use. This will get to you eventually trust me.

Gentoo: so difficult and impractical to use its a joke in many linux inner circles

</comment><comment><USER93> Arch, NixOS, Void, Debian. Try and see yourself.

</comment><comment><USER94> I've been using Debian and later Ubuntu for the past 20 years and have always been pretty happy with them.

</comment><comment><USER95> If you care about battery life, you probably should run Windows as the main OS and virtualize Linux instead.

</comment><comment><USER96> Ubuntu, Arc and may be Fedora. No need to look past these 3 unless you feel a bit adventurous.

<comment><USER97> Yeah, I came here to say this. Ubuntu (esp LTS) if you want "mostly just works, I don't want to spend time maintaining/configuring it", Arch if you're more adventurous and nerdy. Fedora if you are a "just works" person but are doing it on a ThinkPad.

<comment><USER43> > if your doing it on a Thinkpad

What's so special about the fedora Thinkpad combo?

<comment><USER97> Red Hat uses ThinkPads, so Fedora, RHEL, etc have great hardware support for them.

</comment></comment></comment></comment><comment><USER98> Your options are pretty much limited to Ubuntu distros unless you don't mind spending hours configuring firmware. MY personal favorite is Lubuntu. It's a really slimmed down minimal distro with LXDE., Super memory/cpu efficient.

<comment><USER99> Seconded Lubuntu is a great linux distro for your battery. The one thing that annoyed me a bit, when I used to use it, was the keybindings was not in the settings, and you had to go to some file and add them. Not sure if it is still this way, as that was 3+ years ago.

</comment></comment><comment><USER100> Hmmm. I have had consistently poor experiences with systemd and unity, so I suggested devuan or elementary os, or maybe *BSD. For some reason that comment got flagged, but I stand by my recommendation, so I'm reposting.

I also mentioned recent troubles with nvidia drivers, which very relevant to people shopping for a laptop based on prior experiences with nvidia binary blobs.

Finally, I linked to JWZ's relevant post on CADT, and how it leads to the sorts of issues that drove me away from Ubuntu in the first place.

None of this seems worthy of downvotes, but I'd like to hear what is so offensive. Color me confused.

</comment><comment><USER101> Arch Linux. 3 good reasons for that :

-builds upon a minimal stack of software, letting you create the environment of your own needs

-rolling distribution, meaning your system is always up to date

-the greatest package manager across linux distros : pacman!

</comment><comment><USER102> Arch Linux is super awesome and super lean. It has one requirement, that you can read. The documentation is solid, and you'll be up and running in a very short time. Your first install might take long, but do not fall into the this- is-frustrating trap. You'll be rewarded pleasantly for reading. It is also a bleeding edge distribution, basically the packages are updated pretty frequently and there is no concept of a release - cycle as such... in theory. Not to mention you also get to hang out a lot with a cool guy called Pacman-

</comment><comment><USER103> Any distro that provides video drives, a compiler, and a text editor. After you have those you can build a game. If you're not interested setting everything up get a distro like Ubuntu. If you want stability go with Debian, and if you want to mess around with everything in your OS then use Arch.

Don't get caught up with setting up VMs and doing a lot of stuff for setting up a distro. Write a game. Work through a series of OpenGL tutorials, compilers, and a few other game-related topics and then build something.

<comment><USER104> I think the real nugget of wisdom in this comment is to make sure you're solving the problems that matter.

If your goal is to build something, you want tools and an environment that make that task easier or more efficient, and then get out of your way. You don't want to get lost in a myriad of system config/tweaks, or to get overwhelmed and find yourself fighting the tools most of the time.

For some, that's part of the fun. For others, they want an environment that just works, and stays out of their way.

</comment></comment><comment><USER105> I use Neon and love it.

Have to admit I occasionally run sudo service network-manager restart and/or sudo service networking restart but compared to anything else it is a bliss IMO.

</comment><comment><USER106> I see a lot of folks here recommending Arch. I got the impression that it might not be as stable or secure as say, Debian or Ubuntu. But I've found it hard to find reliable up-to-date info on this -- so I'm not sure whether it's just FUD.

Can anyone comment on the current situation? Can you set Arch to automatically update with security patches only? Or is it an "updates include patches plus new bugs too" type situation?

<comment><USER36> As far as I'm informed, it's the second type only. You can't even fetch specific package versions (Pacman keeps old packages around if you ever need to downgrade to a previously installed version, but that's it). Of course, I could be missing something there :)

So yeah, you probably won't be using it for a web server or the like, but I wouldn't imply from that that Arch is to insecure to use as a dev machine.

As far as bugs go: There's a testing phase/repo for new packages, so it's not really likely that an upgrade will do much damage (and as I said, you can still downgrade if necessary).

</comment></comment><comment><USER107> I'd say Ubuntu or Fedora. I found both to be quite polished so you just need to install your development tools without having to configure anything else.

</comment><comment><USER108> I'm a CS student and I had this exact question a year earlier. I tried ubuntu as everyone suggests for a begginer, then switched to deepin and then over to elementaryOS. Sure I'm never going back to windows but ubuntu never seems to work out of the box.

The next station in this Linux journey is to dual boot Mint and Arch. Mint for when I wanna get things done and Arch for learning and customising linux.

<comment><USER109> Once you are past the initial installation (give it a few hours) you can get things done with Arch quite easily as well.

<comment><USER110> I found Architect Linux to be a good install script if you're getting tired of going through the installation. The project seems to be inactive though...

</comment></comment></comment><comment><USER111> I'm partial to Gentoo for a few reasons, but honestly most distros are going to work out just fine for development work.

If you're doing enterprise development, you might want to look towards RHEL, Fedora, or CentOS.

If you're doing all work in virtual environments, you might want to just install ESX, but 275GB isn't going to hold a lot of different environments.

</comment><comment><USER112> Giving serious thoughts to the just-announced Dell XPS 15 that'll take 32GB of RAM, and has the new Kaby Lake CPU, and a GT 1050 in it.

For reference: [http://www.dell.com/us/business/p/xps-15-9560-laptop/pd](http://www.dell.com/us/business/p/xps-15-9560-laptop/pd)

</comment><comment><USER113> I really like the new Raspberry Pi Pixel, it also runs on regular PC systems, it runs really fast on my pi3, now I'm getting ready to turn my intel chromebox into a Pixel system.

[https://www.raspberrypi.org/blog/#pixel-pc- mac](https://www.raspberrypi.org/blog/#pixel-pc-mac)

</comment><comment><USER114> This is more of a tangent from the core question, but when doing development I have found having bootable KNOPPIX media to be invaluable. The KNOPPIX distribution has all of the utilities and tools needed for dealing with a wide range of network and media management issues.

</comment><comment><USER115> Latest Ubuntu LTS.

      * The huge community would fix all the issues quickly.
      * Up to date set of "trusted" libraries and language runtimes.

Latest Ubunty, if you understand how (and why it is so) community-supported distros evolve.

</comment><comment><USER116> I use Ubuntu because I don't want to spend time configuring and wasting too much time researching how to fix every issue that I'd had. I know Ubuntu has a lot of issues, but I just want to spend time doing my work. Also I like Unity.

</comment><comment><USER117> Arch, if you have the time to configure and tweak it. Otherwise, Fedora is quite good & stable with minimal tweaks (check out fedy [1])

[1] [https://folkswithhats.org/](https://folkswithhats.org/)

<comment><USER118> I use CentOS for servers so I always run Fedora, except every major upgrade since Fedora 19 broke my system, when this happened when upgrade from 24 to 25, I had enough of it! I switched to Arch and absolutely love it, AUR specially makes life sooo much easier.

So I vote for Arch.

</comment></comment><comment><USER119> In my case, I'm using Fedora 24 on my Thinkpad x230. Also, have installed 16gb ram, and 2 hdd drives (samsung msata and sata 2.5) 1tb per drive on-board. And kvm as virtualization system. Everything is working fine for me.

</comment><comment><USER120> Another vote for Arch. However you will like it if you want to embrace linux and by that I mean learn some fundamentals which you will need to install Arch.

If you just want to run linux, Ubuntu will be better choice .

</comment><comment><USER121> The only meaningful differentiater between distributions is the PS kahe manager, and Nix is by _far_ the best if you have time to learn how it does everything differently.

</comment><comment><USER122> Debian. I use stretch 4.7.1 on my Thinkpad e560 and absolutely love it. It has a tiny ram footprint, I use i3wm on x11 and have a wonderful time. :)

</comment><comment><USER123> Ubuntu LTS with i3 window manager. Community size matters and after having experienced i3wm I find it impossible to use any other window manager.

</comment><comment><USER124> Ubuntu is best in prod => Ubuntu used in dev.

Never had a problem.

</comment><comment><USER125> Ubuntu with the i3 tiled window manager. You can make amazing and efficient use of the screen and the keyboard shortcuts are so smooth.

</comment><comment><USER126> i use arch as main os it bit me often over the years (fubar after arch- specific significant update) so i got spare laptops so i can do recovery (download the newest iso, burn to usb, install on fubared laptop, wipe all partitions but /home, read the newest changes and what caused fubar)

it's not everyday event (it gets better, last year i got 1); however, it's a good idea to clone a working virtual disk.

also consider about having openbsd as your main os. it's stable and simpler than arch. i use openbsd on my remote server and have a desktop version on my spare laptop. zzz sleeps, ZZZ hybernates, wifi automatically reconnects after sleep, etc. all made simple by the sane default. no need to fudge around systemd, power management, etc (oh yeah, i got weird mouse freeze under arch, click and it unfreezes. but freeze again after 2 sec of no movement. turns out linux power management tries to save every juice from battery, putting the mouse in 'sleep' mode after moment of inactivity. really smart, right? until the mouse frustrate u). there's workaround (i forgot atm), but not after you waste hours of testing every mouse brands you have, test said mouses on other os, etc.

linux is like that, a lot of gotchas. it seems linux devs just code but no empathy to user (things get more complex every year). openbsd feels like its devs love using their stuff so it's smoother. it's hard not to notice.

NB: i know i know, i should read archlinux.org latest news before updating; but, what if i'm clueless about the changes?

</comment><comment><USER127> I prefer Antergos w/ i3+gnome. It's sleek, beautiful, and i3 makes coding a breeze by using a keyboard-centric flow.

</comment><comment> awinter-py switched away from ubuntu because the unity desktop ate most of the ram on a 4G ram laptop -- some large builds would hang forever but worked fine when I logged in to console-only.

I use mint xfce now and the only complaints I have are palm detection (probably a driver issue) and wifi trickiness after sleep (probably a driver issue).

</comment><comment><USER128> Solus OS Mate.

<comment><USER129> Yep, Solus is adequate, which is the highest praise I can give as a non- frequent Linux Desktop user.

</comment></comment><comment><USER130> I switched from Ubuntu to Arch a year ago or so. I like Arch much more.

</comment><comment><USER131> How does your "baklit keyboard" factor into the question?

</comment><comment><USER132> Debian.

</comment><comment><USER133> I'd go with Alpine Linux, Void Linux or Arch, if you care about getting things done and especially if you plan on development.

I would not recommend Ubuntu or Debian, mostly because dealing with old packages can be the reason you waste great amount of times.

I'm writing this on Arch Linux. My oldest files (that I created) are from 2008, but I think I've been using Arch Linux longer than that. Before that I was mostly using Gentoo - basically since it got some popularity, so very early. I'd recommend Gentoo, if you don't mind compiling. I do, so that's why I don't use it.

Other than Alpine (which is the base for many Docker images) those OSs, so you want to use something else there, but all of them have the great benefit of being minimalist and do a relatively low amount of customization, meaning that software works how to author intended.

On RedHat/CentOS/Fedora, SuSE, Debian, Ubuntu, as great as these systems might be you tend to have many, many specifics, potentially making it a bit annoying when you want your software to work somewhere else. At least that's my experience. They are an option if you are sure to exclusively use those, but other than with Fedora, which I wouldn't recommend on the server you end up with fairly old software.

You might also want to take a look on one of the BSDs. They are really great for whatever you are doing, but their major caveat is desktop hardware support. You might be lucky or not. If you try TrueOS, a for desktop "distribution" of FreeBSD you might be lucky. Oh and doing Android development on there isn't the most pleasant. For everything else it actually has a lot of benefits. For example dtrace being a first class citizen means that debugging is so much easier, especially when it's something you didn't run in debugging mode.

All of them support virtualization and allow for battery management.

I'd make a list of distros/OSs that look interesting and _use_ any of them for at least 3 months. Don't make the mistake of essentially just trying how their installer is. After all you want to have an OS where you are productive and not run the installer. ;)

Oh and one more thing: Don't listen to hypes regarding OSs. What works for you is in my experience and incredibly personal choice. If it doesn't work for you (which you will know after 3 months) kick things of your hard disk. Don't waste your time on trying to run a system just because everyone else uses it. There just is too many people that only try the top ten linux distros, which are all really similar, because they think that one of them has to fit and that the others all all bad. That's certainly not the case. There is successful developers and companies (plural there) running any of the top 100. Look often you read about OpenBSD here and how it is only on spot 86 on distrowatch.

A better measure is how old it is and whether it is still actively developed. If it is older than ten years and there is developers working on it there probably is a good reason for them investing their time.

</comment><comment><USER134> Ubuntu is prolific

</comment><comment><USER135> Ubuntu, or Fedora

</comment><comment><USER136> How timely as I have just spent the downtime days of December catching up on current state of Linux (and BSD). I was a big visitor of Distrowatch and pretty much tested the big 5 as well as a few fringe ones that sounded interesting and were pretty up-to-date.

I was mostly looking for ease of installing as well as setting it up to be a workable internet/email machine, ultimately leaving it up for the guest who would house-sit for me over Xmas. My criteria on the opinions below are based on not only installing, but also; ease of updating, get it functioning fine on the current web (youtube, flash games, etc), install a few software choices I preferred and finally try to "break" the system by pretending I wanted the latest Mesa drivers than what came with it.

First, I see a lot of suggestions by many for Arch. I really do understand the following this distro and others based on it because of the super control of having complete choice of everything installed, BUT to recommend it is a bit much for anyone just wanting things to work for a while and then getting real work done after. This "rolling release" model of distro (and Gentoo even more so) is great for those wanting to learn more/experiment about linux or those who just can't stand having anything other than the latest release for every single item on the hard drive. Stick with binary distro's to save your sanity in the long run.

Off all the 10+ I tried, I recommend this:

1) OpenSuse Leap - Pretty up-to-date and long term support cycle. Even better look to the Spin GeckoLinux for well put together lite/minimalist Opensuse Leap spins. I really liked these and he has them made for all the popular desktop environments (I really liked Geckolinux Mate). OpenSuse "Tumbleweed" is their rolling release version for those wanting latest software.

2) Korora - A Fedora spin with great defaults, codecs, etc. Also has choice of DE and Korora Mate was the one I ultimately left on my machine for my house guest.

3) Any of the Ubuntu spins like Ubuntu-Mate or KDE, etc. I leaned more towards the LTS version (16.04) because I just prefer longer stability/support between major releases. I really liked the corny named Maui Linux. This is a spin of KDE Neon (which is KDE's own distro and based on Ubuntu). Maui has a cool idea to be part rolling when you want so you can get latest, then just freeze it and turn it into a long term just security updates LTS. I was able to get the latest KDE and Mesa just by enabling a repository, then I unchecked it and can stay with it. Maui was sort of ugly imo at default but I quickly was able to get rid of their theme to a vanilla Breeze/KDE. I also am enjoying KDE again because of Maui.

Also, Suse's Zypper (and now Fedora's dnf, which is based off of Zypper) I think are the best package managers, by far. Do research for why, but RPM has come a long way. I was able to update major versions of Leap and Fedora without a hitch. Install software and back out if needed. All very speedy on top of it.

Hope this was helpful.

</comment><comment><USER137> You could have mentioned what kind of development you do. Cause image JavaScript developer and I write go/rust sometimes. These things run great in Ubuntu for me. Also I think so Ubuntu has the highest market share among devs so choosing it can be a better option.

</comment><comment><USER138> Once you really get down to it, there's practically no difference between them, other than the package manager and repositories.

Personally I use Gentoo now because it doesn't have systemd and I like source- based packages; compiling everything is kind of a hassle sometimes though. I ran Arch for years and I really like it, the AUR especially is great.

<comment><USER139> Not sure why the downvote(s). There really isn't much difference, just a different pick of the problems.

As for systemd - it is the sole reason I haven't upgraded from Debian Wheezy yet and I am seriously considering switching to Gentoo too. And before somebody asks, yes, I have installed systems based on systemd (Ubuntu mostly) and I appreciate that it simplified boot process. But I have a very strong opinion about bundling all services under one roof with no alternatives. No thank you. If I wanted that I would use Windows or MacOS. </rant>

</comment></comment><comment><USER140> Ubuntu LTS - if there's as proprietary driver not included in the kernel, this distro is most likely to be supported none the less by the bigger OEMs. Additionally, if the latest packages aren't included in the distro, the developer is very likely to distribute a .deb or PPA to let you get the latest and greatest for an LTS target.

</comment><comment><USER141> Linus Torvalds is using Fedora Linux, like many other major Linux developers.

<comment><USER92> considering the high internet speed in europe that would be needed to compensate for dnf's slow speed that makes sense

</comment></comment><comment><USER142> Most of them will be identical for your requirements, continue using what you're using already, you can copy over the whole system with dd.</comment>