I am currently learning c++ on my Mac started with eclipse and playing with Qt some recently. I am wanting to switch over to Linux. I was wondering what is the recommend Linux destro that c++ programmers are using. I will need to do some GUI programming. So I guess I need some advice as to what recommend. Thank you for any help you can provide
Any Linux distro is good for C++. The C / C++ languages are fundamental to Linux and GNU tools, not so much in Mac (C / Objective-C are the preferred language, and C++ is pretty terrible to use on Macs).
Qt is also a great choice for Linux (and all other OSes). Eclipse also works in Linux, as well as all the Qt development tools (Qt Creator, Qt Designer, Qt Assistant, qmake). I personally prefer KDevelop as my IDE.
I really like the Qt-based desktop environment called KDE. Any distro that uses KDE is a great choice in my opinion (Kubuntu, OpenSUSE, Fedora KDE-spin, etc.). KDE is a somewhat more conservative yet user-friendly and customizable desktop environment, and in many ways, it is very programmer-friendly. And of course, it is tightly integrated with Qt. In other words, it is a platform programmed in C++ with Qt, and it has lots of software to facilitate programming in C++ with Qt, i.e., made by C++/Qt programmers for C++/Qt programmers (among many other types of user).
But again, any other Linux distro is going to work great too for C++ programming, and overall it doesn't matter that much which you choose on that front since most Linux software is available in most Linux distributions. So, choose the distro you like best from a "normal" user perspective.
Ok, thank you for the help. Any you suggest I should stay away from as someone new to Linux?
Mainly, stay away from those that are the most "strip down" distributions. You might hear that they are preferred by some programmers, but that's implying they are good programmers and experienced Linux users who like to temper with the system or set it up exactly as they want. Distributions to avoid are things like Arch Linux, Debian (pure Debian, not the derivatives), and anything based on Slackware, or any of the "server" versions (which usually means no GUI, no user-software, only server software tools). Most of these distributions are stripped to essentials or come with very little software such that you can build it up to your exact desires, and will inevitably require lots of familiarity with the terminal / shell (command-line interface).
Distributions that are friendly for the new user mainly include:
- Ubuntu (and its friends) (desktop versions)
- Fedora (and its spins) (desktop versions)
- Linux Mint
- CentOS, Scientific Linux, etc..
Just checkout the main distributions on distrowatch. One of the reasons to stick with one of the more popular distributions is to minimize the potential (and real) trouble when installing and configuring it (i.e., more popular distributions have been tested on more computer models and peripherals, and have a bigger community of people sorting out problems). There are usually some hick-ups when you first install Linux, so be careful and be prepared to have to do some troubleshooting to get everything running smoothly (there are usually a few peripherals and drivers that won't work right away, or maybe ever, or won't be used to the fullest due to Linux drivers being "generic" and not provided by the company that made the electronic component itself).
Another thing to watch out for is how upstream vs. downstream the distribution is. "Upstream" means cutting-edge software, but it also means less stable and less thoroughly tested software. "Downstream" is the opposite. The most upstream distros, e.g. Arch Linux, are usually called "rolling distros" because they don't really have a release cycle, they just constantly update everything almost immediately after the developers submit their latest additions to the software, so, these distros are essentially always in the "beta" version (or RC version, to be more accurate). Most popular distros are either upstream or midstream, with a release cycle of roughly every 6 months or every year. And the more robust (often for servers) distributions are quite a bit further downstream (i.e., very well tested software). You can generally tell how a particular distribution is placed by looking up the kernel version for the latest release, versus the latest kernel versions and those of other distros. For example, as of now, Ubuntu uses kernel 3.8, OpenSUSE uses kernel 3.7, Fedora uses kernel 3.9, Arch Linux uses kernel 3.10 (the very latest version, currently), CentOS and Red Hat uses kernel 2.6.32 (these are highly stable downstream distros), etc.. I recommend staying reasonably close to cutting-edge, because it is nicer, faster and cooler than the older versions, but keep a comfortable distance from the very latest stuff, unless you want to become a beta-tester for the Linux community ;)