
Ask HN: What is the best Linux distro for a development laptop? - selmat
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.<p>What are your experience with various linux distros as main OS? Which one is the best? How looks like your dev environment?<p>For me are important these points :<p>- Ability to run virtualized systems (Windows, other linux distros)<p>- Good battery management<p>All necessary dev tasks and experiments will be performed in virtualized systems.<p>Thanks
======
jcoffland
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.

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

~~~
mschuster91
> Packages which symlink or install large binary files or log files into /etc

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

~~~
cellularmitosis
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/)

~~~
cellularmitosis
A few more, from my notes:

These were the default permissions of the apache log dir:

    
    
        # ls -ld /var/log/httpd/
        drwx------ 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)

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

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

~~~
dyukqu
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"_.

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

~~~
dyukqu
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. :-)

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

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

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

~~~
jcoffland
You forgot the porridge that is just right, "testing".

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

~~~
jcoffland
Maybe you were unlucky. I haven't had that problem.

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

~~~
mwambua
Fedora has really cleaned up the release upgrade process over the last couple
versions. Transitioning from Fedora 24 to 25 was surprisingly painless!

~~~
jcoffland
The fact that you are celebrating one recent successful upgrade is telling.

~~~
mwambua
I used Ubuntu prior to Fedora and I never experienced a single clean upgrade.
I can't speak for recent versions of Ubuntu though.

~~~
jcoffland
Debian's rolling release system is the solution for this. Ubuntu's 6 month
release cycle is a nightmare.

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

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

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

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

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

~~~
tornadoboy55
CentOS is meant to be a server OS and misses a lot of the niceties that
Desktop Linux variants have.

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

~~~
tornadoboy55
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.)'

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

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

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

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

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

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

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

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

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

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

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

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

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

~~~
edraferi
Thanks for the reply, I'll give NixOS another look.

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

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

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

~~~
thecrumb
+1 - As a long time Ubuntu user I've recently switched to Fedora +i3wm and
love it.

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

~~~
btschaegg
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)

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

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

~~~
joatmon-snoo
And -Ss to search, -Rns for purge/uninstall.

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

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

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

~~~
rmattes
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)

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

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

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

~~~
coredog64
The Arch wiki is so good it is my goto resource for Linux in general.

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

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

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

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

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

~~~
demonshreder
How many servers? How are you managing the updates? Are you using it for any
'production' code?

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

~~~
luka-birsa
Got burned so bad with Arch in production.

You want your servers running old and verified software.

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

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

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

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

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

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

~~~
brightball
What are your thoughts on Korora? It looks like Mint for Fedora.

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

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

~~~
disordinary
+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.

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

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

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

~~~
morganvachon
> _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).

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

~~~
BugsJustFindMe
> 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/)

~~~
crdoconnor
Definitely, thanks. I will try that next time I'm distro-shopping.

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

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

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

~~~
Freak_NL
> […] 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.

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

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

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

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

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

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

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

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

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

~~~
yomly
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

~~~
greenhatman
That is correct.

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

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

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

~~~
herbst
Well there is AntergOS and Manjara, but it takes a bit of the fun and brings
some new unique bugs.

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

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

~~~
autoreleasepool
I can confirm FeeeBSD is very stable on my 2008 UniBody MacBook. Even
Suspend/Resume works

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

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

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

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

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

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

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

~~~
Koshkin
> _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).

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

------
softwarelimits
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/)

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

~~~
wz1000
> 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

~~~
Profpatsch
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!

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

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

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

------
Philipp__
Arch, NixOS, Void, Debian. Try and see yourself.

------
davidw
I've been using Debian and later Ubuntu for the past 20 years and have always
been pretty happy with them.

------
Narishma
If you care about battery life, you probably should run Windows as the main OS
and virtualize Linux instead.

------
owaislone
Ubuntu, Arc and may be Fedora. No need to look past these 3 unless you feel a
bit adventurous.

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

~~~
nhumrich
> if your doing it on a Thinkpad

What's so special about the fedora Thinkpad combo?

~~~
wyclif
Red Hat uses ThinkPads, so Fedora, RHEL, etc have great hardware support for
them.

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

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

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

------
singletoon
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!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

------
adnanh
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/)

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

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

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

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

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

------
MarcusBrutus
Ubuntu LTS with i3 window manager. Community size matters and after having
experienced i3wm I find it impossible to use any other window manager.

------
benevol
Ubuntu is best in prod => Ubuntu used in dev.

Never had a problem.

------
computerwizard
Ubuntu with the i3 tiled window manager. You can make amazing and efficient
use of the screen and the keyboard shortcuts are so smooth.

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

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

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

------
anthk
Solus OS Mate.

~~~
xaduha
Yep, Solus is adequate, which is the highest praise I can give as a non-
frequent Linux Desktop user.

------
formula_ninguna
I switched from Ubuntu to Arch a year ago or so. I like Arch much more.

------
dfc
How does your "baklit keyboard" factor into the question?

------
stevenaleach
Debian.

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

------
DoodleBuggy
Ubuntu is prolific

------
crispytx
Ubuntu, or Fedora

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

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

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

~~~
Drdrdrq
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>

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

------
lisivka
Linus Torvalds is using Fedora Linux, like many other major Linux developers.

~~~
cosatelo
considering the high internet speed in europe that would be needed to
compensate for dnf's slow speed that makes sense

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

