LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (https://www.linuxquestions.org/questions/programming-9/)
-   -   Recommend a distribution for C/C++ & x86 Assembly development (https://www.linuxquestions.org/questions/programming-9/recommend-a-distribution-for-c-c-and-x86-assembly-development-548653/)

reverse 04-24-2007 01:47 PM

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?

PatrickNew 04-24-2007 11:10 PM

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.

reverse 04-25-2007 04:41 AM

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?

theYinYeti 04-25-2007 04:45 AM

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.

binutils 04-25-2007 04:47 AM

http://distrowatch.com/table.php?distribution=arch
http://distrowatch.com/table.php?distribution=sabayon

http://distrowatch.com/table.php?distribution=mepis

ta0kira 04-25-2007 05:58 AM

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

reverse 04-25-2007 06:29 AM

@ 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:

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.
Well one could argue a Gentoo user has more control of his system than a Slackware user does?
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.

theYinYeti 04-25-2007 07:48 AM

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.

reverse 04-25-2007 08:08 AM

Quote:

In short, ask yourself wether you want to learn about the Linux internals or not, about compiling or not
By Linux internals I assume you mean device driver programming. I have some limited experience with it; it will grow (or not) depending on my future projects. As for compiling..? Since I said I'd be working with C/C++ (amongst others) ..

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.

theNbomr 04-25-2007 09:43 AM

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.

PatrickNew 04-25-2007 06:51 PM

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!

ta0kira 04-26-2007 08:14 AM

Quote:

Originally Posted by reverse
Well one could argue a Gentoo user has more control of his system than a Slackware user does?

It was more of a statement of how Slackware will meet your needs rather than how it has a competitive advantage. What's really important is having a system you can manipulate in a way that suits you because you can add anything that's missing later.
Quote:

Originally Posted by reverse
Would it not be true that time dedicated to system administration is inversely proportional to time spent developing?

Well if you don't mind a business analogy, administration could be considered overhead, programming time considered direct costs, quantity of code to be unit production, and your installation is a business. Admin doesn't necessarily relate to programming time because ideally the majority of the setup takes place in the early production stages after installation, with only periodic maintenance from then on.

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

reverse 04-26-2007 02:05 PM

@ 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

PatrickNew 04-26-2007 02:23 PM

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.

ta0kira 04-26-2007 03:06 PM

Quote:

Originally Posted by reverse
@ 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

Firefox isn't the first thing I think of when I hear "bleeding edge". I'd consider something with the latest gcc, KDE, kernel, and otherwise latest-technology integral components to be bleeding edge.
ta0kira

reverse 04-27-2007 08:01 AM

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.

ta0kira 04-28-2007 11:04 AM

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.