Recommend a distribution for C/C++ & x86 Assembly development
Hello. First and foremost I apologize if I'm posting in a wrong sub-forum. I am posting in "Programming" because my question mainly targets programmers, and yet it's not a programming question.
Basically I am looking for suggestions for a good Linux distribution (I am not interested in other operating systems, FOSS or not) to be used on a software development system (C/C++ & x86 ASM; perhaps some throw-away python as well). I am especially hoping that I'll get some replies from people who actually work as software developers (If you are such a person, please be so kind as to state this in your post; if you are not, I can assure you your suggestion will be highly appreciated non the less) and have encountered the Linux Operating System at their work place. What distribution does your company use? What does a professional developer look for on their work station? What about the home development environment? Which distributions come near to these expectations? |
While I don't develop professionally, I'd pose some other questions to you. Namely, what is your preferred development environment? Are you going to be mostly coding in KDevelop, Eclipse, Emacs, vi? I'd pick that, then ask which distro maintains that package well.
To be honest, I've never seen a distro that could screw up gcc/make/autotools, although Ubuntu makes them rather hard to find. On Fedora, I never really had many troubles. Maybe try Gentoo - being a source based distro it has no choice but to have a good, stable compiler setup. |
I write my code using VIM. GCC, GDB, and the gnu assembler are my friends. However, I do, on occasion turn to GTK/Qt (thus a graphical user interface is required).
Fedora sounds interesting but I understand it's a pain to upgrade? As for Gentoo, I'm thinking that perhaps the time needed to run/manage the distribution might significantly shorten the time I'd be spending actually developing? |
Debian upgrade is easy via apt.
Mandriva upgrade is easy via urpmi. I'm sure Fedora upgrade is also easy via some Fedora front-end to rpm (yum?) Yves. |
|
99% of what I use a computer for (by choice) is programming in C++/C/Bash and I'm almost always using Slackware. I don't think there's a better distro out there for programmers since it has a very simple yet effective configuration layout, comes with quite a few development tools (KDevelop, Qt, GTK, KDiff, etc.) LFS seemed like quite a bit of work and will most likely teach you that maintaining a distribution is best left to someone who has a whole lot of time to write patches and monitor version changes, although one would think "total freedom" otherwise.
Most of the user-friendly oriented distributions just irritated me, and if you really like to have control over your system they will likely irritate you, also. Slackware is very secure and reliable and comes pretty much set up to run on anything. For aesthetics you will have to do the usual config and module changes because unlike Mepis, etc. it does not come set up to look and sound pretty out of the box. Each distro has its target audience so you really need to choose what isn't important to you in a distro. ta0kira |
@ theYinYeti: Well "hard upgrades" from RELEASE->RELEASE are not enough of a reason to put me away from a distribution. So "rel->rel upgrades" can't be the sole reason.
@ binutils: I'm guessing those are the distributions you are recommending, however you have not given me any arguments for any of them. (also, I don't care if I spend two days and install Gentoo. it's not like I'll be reinstalling every week; and I hear sabayon has some issues.) @ ta0kira: Quote:
I have thought about LFS, and gave up for reasons you've already mentioned: too much time needed for maintenance. You say that Slackware comes with quite a lot of development tools. So do Debian, Gentoo, Ubuntu, Fedora, the list goes on. I don't quite see why a "user friendly" operating system would irritate me. I get up from bed and I want to get back to my programming session as soon as possible. My box is connected to the internet so important stuff such as security and implicitly updates must not be ignored. If I can update my system via two clicks of a button.. and let it update whilst I work .. where's the harm in that? Also .. does it ever happen to you to be in need of a tool/library which is not part of the official Slackware distribution? This scenario implies chasing/resolving dependencies etc. Hm. Would it not be true that time dedicated to system administration is inversely proportional to time spent developing? -- Thank you for all your replies so far guys. I'm looking forward to more. This thread is helping me a lot. |
Well you know, I think PatrickNew is right. And even though I use Mandriva and Debian, and not Fedora or Slackware, I won't say a single thing against those two.
The reason is: "Linux" is free software: the Linux kernel, and many many apps to go with it. ALL these applications are available for ALL distributions, be it from source code or from pre-built packages. So whatever distribution you use, you'll be able to do what any other distribution would allow you to do. In short, ask yourself wether you want to learn about the Linux internals or not, about compiling or not... and choose the distribution that will go with your wishes. Debian, Slackware, Mandriva, Fedora are well known to handle pre-built packages, as well as distributions based on those (Ubuntu, DSL, PCLinuxOS...). Out of those, the one with the biggest repository probably is Debian. Yves. |
Quote:
A tractor and a mercedes both have wheels. But only one of them is good for farm work, and only one of them is good for impressing chicks. Given the above example, I have made the assumption (and .. assuming is something I rarely do) that not all Linux distributions are equally suitable for Software Development with the C, C++, x86 Assembly and Python languages. Or rather .. surely some of the are "more suitable" than others, in the sense that they make a soft-dev's life easier. By whatever means. As it was mentioned, Gentoo is source based thus they pretty much depend on having proper source-related tools available. This is one, good, strong, argument for Gentoo. Fedora makes it easy to set up a development environment, it makes certain administration task easier, again, good, strong arguments. Other distributions have good arguments too. I'm trying to inquire about them. And when I have gathered enough facts, make a list of "top 3", try them and pick. |
My strategy with regard to setting up a development friendly system is to have as much stuff as possible installed from the beginning. I take this approach as a hedge against 'dependency hell'. If I install something new, and it depends on 'n' other libraries, the probability of dependency failure is reduced if there are more, and more recent, libraries already installed. This applies to general hacking, where I run across something of interest that I want to tinker with. If an API is already supported by installed libraries and documentation, I am much more likely to dig in and explore it. Fedora seems to provide a large body of up-to-date such libraries. Also, new tools seem to get packaged as Fedora-friendly versions fairly early in the life cycle, reducing obstacles toward trying out new stuff.
In general, go big. My $.02 --- rod. |
I think you'll be served best by Slackware, Debian, Gentoo or Fedora, all for different reasons.
1. Slackware It's tried and true. Slack is stable, and it's not laden with wizards and frontends that insult your intelligence. Will probably be to your liking if your preferred editor is vim. Downsides: Many things are, comparably speaking, old. It's probably the last major distro to ship with a 2.4 kernel by default. When the choice arises, Slack chooses stability over features. 2. Fedora It's the inverse of Slack. Its perpetually new and bleeding edge. It's the only distro I ever got a very stubborn wireless card working on (x86_64 no less). You get every new package within an hour of it's release at the latest :-). Downsides: Not all those packages are the most stable. Not that fedora is unstable - it's just not Slack. When the choice arises, Fedora chooses features over stability, to a degree. 3.Gentoo It may be uniquely well suited to developers, being source based. Due to its source base, you can always count on a rock solid compiler-linker-assembler setup. Highly configurable. Downsides: Although much work is done at the packaging level, installing packages sometimes takes more work on your part than with other distros - and it always takes more time. 4. Debian It's extremely widely used. Everything you could ever want is in the repos. There is a relatively huge community of developers, and packages such as vim, gcc, gdb etc are high priority enough that I'm sure they get ample attention. Plus, the package management can't be beat. Downsides: None really. Debian would be the middle way here, it won't blow you away with advantages, but it doesn't have any real downsides either. Hope that helps! |
Quote:
Quote:
The main reason I like Slackware is it uses simple configuration scripts and files rather than guessing and GUI tools, etc. that change unknown files or ineffectively edit them. It also doesn't try to reassure you that it's as usable as Windows (that's a big one.) The nice thing about Linux and a high speed internet connection is you can download quite a few quality distros for free until you find one you like. I always come back to Slackware, although FreeBSD is my next favorite. ta0kira |
@ PatrickNew: In regards to Fedora .. you've said Fedora tends to be bleeding edge however .. take for example Firefox .. is at version 1.5. Slackware -CURRENT has FFX 2
|
Bleeding edge is the impression I got, but perhaps I was wrong. Version 1.5 you say? Hmm, and have you updated, or is that just what came on the CD, because I don't think it nags you to update. 1.5 might have been the new stuff when they started to package that CD.
|
Quote:
ta0kira |
GCC and the Kernel seem to be pretty much at "bleeding edge versions". However, I don't plan on using KDE, so that's neutral from my point of view. Programs such as Firefox, Thunderbird, XChat, they seem to be at relatively "old" versions. I have gotten used to the features of the "bleeding edge" versions of these packages.
P.S.: I am currently experimenting with Gentoo, and it's looking good so far, I might have found a winner. |
That's good that you're on to something. If you are coming from Windows or Mac I think you will notice a lack of marketing for many great distributions, so a lot of top of the line systems are grossly undersold in comparison to how much a lot of commercial software is sold. Don't let the underwhelming homepages for some distros turn you away. Pretty much all distros are build from the same open-source projects but contain slightly different selections, /etc configurations, and installation methods.
ta0kira |
All times are GMT -5. The time now is 06:45 AM. |