LinuxQuestions.org
Latest LQ Deal: Latest LQ Deals
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices


Reply
  Search this Thread
Old 04-24-2007, 01:47 PM   #1
reverse
Member
 
Registered: Apr 2007
Distribution: Gentoo
Posts: 337

Rep: Reputation: 30
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?
 
Old 04-24-2007, 11:10 PM   #2
PatrickNew
Senior Member
 
Registered: Jan 2006
Location: Charleston, SC, USA
Distribution: Debian, Gentoo, Ubuntu, RHEL
Posts: 1,148
Blog Entries: 1

Rep: Reputation: 48
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.
 
Old 04-25-2007, 04:41 AM   #3
reverse
Member
 
Registered: Apr 2007
Distribution: Gentoo
Posts: 337

Original Poster
Rep: Reputation: 30
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?
 
Old 04-25-2007, 04:45 AM   #4
theYinYeti
Senior Member
 
Registered: Jul 2004
Location: France
Distribution: Arch Linux
Posts: 1,897

Rep: Reputation: 66
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.
 
Old 04-25-2007, 05:58 AM   #6
ta0kira
Senior Member
 
Registered: Sep 2004
Distribution: FreeBSD 9.1, Kubuntu 12.10
Posts: 3,078

Rep: Reputation: Disabled
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
 
Old 04-25-2007, 06:29 AM   #7
reverse
Member
 
Registered: Apr 2007
Distribution: Gentoo
Posts: 337

Original Poster
Rep: Reputation: 30
@ 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.
 
Old 04-25-2007, 07:48 AM   #8
theYinYeti
Senior Member
 
Registered: Jul 2004
Location: France
Distribution: Arch Linux
Posts: 1,897

Rep: Reputation: 66
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.
 
Old 04-25-2007, 08:08 AM   #9
reverse
Member
 
Registered: Apr 2007
Distribution: Gentoo
Posts: 337

Original Poster
Rep: Reputation: 30
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.
 
Old 04-25-2007, 09:43 AM   #10
theNbomr
LQ 5k Club
 
Registered: Aug 2005
Distribution: OpenSuse, Fedora, Redhat, Debian
Posts: 5,399
Blog Entries: 2

Rep: Reputation: 908Reputation: 908Reputation: 908Reputation: 908Reputation: 908Reputation: 908Reputation: 908Reputation: 908
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.
 
Old 04-25-2007, 06:51 PM   #11
PatrickNew
Senior Member
 
Registered: Jan 2006
Location: Charleston, SC, USA
Distribution: Debian, Gentoo, Ubuntu, RHEL
Posts: 1,148
Blog Entries: 1

Rep: Reputation: 48
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!
 
Old 04-26-2007, 08:14 AM   #12
ta0kira
Senior Member
 
Registered: Sep 2004
Distribution: FreeBSD 9.1, Kubuntu 12.10
Posts: 3,078

Rep: Reputation: Disabled
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
 
Old 04-26-2007, 02:05 PM   #13
reverse
Member
 
Registered: Apr 2007
Distribution: Gentoo
Posts: 337

Original Poster
Rep: Reputation: 30
@ 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
 
Old 04-26-2007, 02:23 PM   #14
PatrickNew
Senior Member
 
Registered: Jan 2006
Location: Charleston, SC, USA
Distribution: Debian, Gentoo, Ubuntu, RHEL
Posts: 1,148
Blog Entries: 1

Rep: Reputation: 48
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.
 
Old 04-26-2007, 03:06 PM   #15
ta0kira
Senior Member
 
Registered: Sep 2004
Distribution: FreeBSD 9.1, Kubuntu 12.10
Posts: 3,078

Rep: Reputation: Disabled
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
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Which distribution would you recommend? Jerome47 Linux - General 7 01-09-2007 03:25 AM
x86 assembly programming in Linux XsuX Programming 9 12-01-2004 09:45 AM
x86 Assembly - segmentation fault? jrtayloriv Programming 1 07-05-2004 12:52 AM
What distribution would you recommend for: GloVe Linux - Distributions 6 09-29-2003 03:11 PM
x86 assembly: error message mandrake_linux Programming 1 06-12-2001 09:00 AM

LinuxQuestions.org > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 03:29 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration