Most favoured status in development environments.

Ralf Corsepius ralf.corsepius at rtems.org
Sat Oct 13 04:22:50 UTC 2012


On 10/12/2012 08:26 PM, Joel Sherrill wrote:
> On 10/12/2012 12:29 PM, Andrei Chichak wrote:
>> Not wanting to start a germanic/aussie flame war (PLEASE), but…
>>
>> I'm starting on a new project and previously have used the MSYS
>> environment to develop my code. A while back Ralf had mentioned that
>> the installation/rebuild goes a lot faster if you are running Linux
>> instead of MSYS.
That's correct. The GNU Toolchain is a lot faster on *nix-ish platforms 
and (Independently of RTEMS) best supported on Linux.

>> Since I would be running MSYS under windows under
>> Fusion on a Mac,

The Mac has the problem of it being a closed source OS and it therefore 
not being supported and not being possible to support to the extend as 
Linux is.

Msys/MinGW has the problem of there not being a "single leading upstream 
distribution" (There are competing implementations) and of technical 
deficiencies (They do not provide all technically required resources to 
fully support them).

>> this makes a lot of sense. I tried getting the tools
>> running on the Mac once, it worked until the next version came around
>> and I was left behind and everything broke.
>>
>> Question: what is the most favoured current development environment
>> operating system? CentOS? Fedora 17?
> It depends. :)

Yes. It primarily depends on your personal goals.


I am using Fedora (currently F17), because it's a very modern, very 
actively maintained (bugs ususally are addressed very fast), 
desktop-focused OS, which is trying to stay on the "leading edge of 
development". Due to its nature, the price is "high updates/upgrade 
rates", its short life time and occasionally have to cope with "leading 
edge warts".
  IMO, it's an excellent choice for developers, who are willing to get 
involved into opensource, but it is bad a choice of "total Linux 
newcomers" rsp. for users who "simply want to consume".

CentOS is an ultra-conservatively maintained, server-focused OS. It's 
primary deployment scenario is "install and forget" (web-servers, 
database servers etc.). One of its key features is "no API/ABI changes" 
incompatible changes during is entire life-time and a very extreme 
life-time.
  Technically, CentOS basically is a "Red Hat-polished" subset of an 
older Fedora release.
  Using it as desktop-OS is possible, but is not what it designed for 
(It's a bit like using a truck as a family car). Using it as development 
platform is possible until the point, when the age of the components 
CentOS consists of starts showing (No ABI/ABI-changes) and renders 
things complicated. Also, due to CentOS being based on a non-Free Linux 
distribution, getting bugs fixed is hard to achieve.
  Due to its server- and non-GUI orientedness is it also is a bad choice 
for "total newcomers". It's however a good choice for users who "do not 
want to get involved into opensource" and to "consume only".

> (A) If you prefer getting the tools in binary form and the upgrade
> facility integrated with the OS, then an RPM based GNU/Linux distribution
> is a good choice.

That's one aspect, others e.g. are
- better system consistency
- integrated debugging of the host tools (You can debug the toolchains 
without having to (re-) build them).

> Assuming you want to use an RPM based GNU/Linux
> distribution. :)

Well, ... IMO, many non-rpm based Linux distros are excellent choices 
for GUI-oriented users and for newcomers, however these distros usually 
are bad choices for developers (or server-deployment).

  That said, if I were a mere "desktop user", who just want to run "some 
apps" I'd also likely use Ubuntu or one of its derivatives (MiNT).
  Being a non-GUI-oriented Linux veteran, a developer, a 
packaging-specialist, who is deeply familiar with rpm-packaging and 
somewhat familiar with deb-packaging, I personally favor Fedora.

> (B) If you want control over the source and know that you can build
> everything yourself, then it really doesn't matter what host
> you are on.

Not quite. Building is one thing, system-integration (aka "packaging") 
is another one. I.e. in addition to "knowing how to build", you need to 
know to integrate things into a system.
  Doing this without deep understanding of the system in longer terms is 
almost guaranteed for you to screw up your system installation.

Having been bitten by such screw ups in the past, was one key reason for 
me to get into packaging and is reason for me to discourage people from 
"building from source".

> Linux, MacOS, and FreeBSD are all fine hosts.
I disagree on the latter two. IMO, there are huge gaps in the amount of 
attention MacOS and FreeBSD receive by the GNU toolchains in comparison 
to Linux.

If there's an order, then it's likely 1. Linux, 2. FreeBSD, 3. MacOS.

Ralf




More information about the users mailing list