From: Bernd Petrovitsch <bernd@firmix.at>
To: Jamie Lokier <jamie@shareable.org>
Cc: Bart Van Assche <bart.vanassche@gmail.com>,
"Leisner, Martin" <Martin.Leisner@xerox.com>,
Alexander Neundorf <neundorf@eit.uni-kl.de>,
linux-embedded@vger.kernel.org
Subject: Re: prevalence of C++ in embedded linux?
Date: Wed, 30 Jul 2008 15:58:09 +0200 [thread overview]
Message-ID: <1217426289.7892.48.camel@spike.firmix.at> (raw)
In-Reply-To: <20080730130712.GA12991@shareable.org>
On Wed, 2008-07-30 at 14:07 +0100, Jamie Lokier wrote:
> Bernd Petrovitsch wrote:
> > If "GOLD" is as old and flexible (and portable?) as binutils,
>
> The author says it will only work with ELF, and he does not
> intend to add support for all the other things binutils does.
Well, supporting 80% of the deployed systems requires probably only 20%
of the code;-)
But then it won't really replace binutils. And if, some quirky
hardware/systems have a problem .....
> > gcc and/or other huge software maintained to death, it is probably
> > similar complex and odd. If people take a > 10 year old tool and
> > rewrite it from scratch, I would assume that design is better.
>
> Only true if the cruft is no longer relevant. If the cruft is
> intrinsic to the problem, e.g. supporting umpteen quirky architectures
> implies umpteen quirks of cruft, then it'll be in the new design.
Yes, but one can make a better design in always knowing/planning to have
hooks here and there and everywhere.
> Btw, gcc and binutils are more like 30 years old :-)
That doesn't make it better;-)
I was too lazy to search for more exact numbers.
> > And I can't see any direct dependence on the used programming
> > language(s) if one compares running code and what is left of "design"
> > after years of design extensions, changes, enhancements, etc. to a new
> > design from scratch from the lessons learned (hopefully) from the former
> > one.
>
> Some programming languages allow you to express a problem concisely
> and clearly, and some don't. That clarity then affects whether an
And if C is too low-level, one abstracts with functions etc. I call that
"design" - independent if the design existed before the source or if the
design evolved over years with the software
And yes, at first it is enough to add a parameter and/or function here
and there without breaking implicit or explicit assumptions.
But at one point from a larger view, the "design problems" will be
obvious and one can either solve them (investing time/money for
effectively no real gain in features and/or functionality, just only
cleanups or refactoring of parts or whatever one wants to call it) or
lives on with patching/maintaining the software to death.
> evolving design becomes loaded with implementation cruft or not - and
> you can't always tell the difference.
Yes.
And over the years and decades, the implementation evolves with the
problems - new and existing ones. If the design doesn't involve - which
IMHO implies refactoring of existing, tested and working code(!)
possible breaking it - you have at some point such a mess that each
"trivial" enhancement takes age (and breaks again somewhere else
something).
> Most languages are well-matched to different problem domains.
Maybe. IMHO these differences are almost nothing compared to the below
point:
> Binutils and bfd look very crufty, but I think it's hard to tell how
> much of that is due to the implementation language and implementation,
> or the design and requirements, and how much would exist in any
> implementation on any language.
IMHO it's (mostly) independent of the implementation language:
If changes in design are not completed (including removal of old
deprecated stuff or at least push it in peripheral places where nobody
cares;-) in the implementation (for whatever reason - no one does it, no
one wants to pay it, one wants to support every API indefinitely, ....),
it will lead more sooner than later to unmaintanable crufty software.
Bernd
--
Firmix Software GmbH http://www.firmix.at/
mobil: +43 664 4416156 fax: +43 1 7890849-55
Embedded Linux Development and Services
next prev parent reply other threads:[~2008-07-30 13:58 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-28 15:43 prevalence of C++ in embedded linux? Robert P. J. Day
2008-07-28 15:54 ` Chris
2008-07-28 15:55 ` Jamie Lokier
2008-07-28 16:15 ` Domenico Andreoli
2008-07-28 17:30 ` Matthias Kaehlcke
2008-07-28 21:47 ` Ben Nizette
2008-07-29 5:42 ` Roberto A. Foglietta
2008-08-02 4:14 ` Ben Nizette
2008-07-29 7:40 ` Marco Stornelli
2008-07-29 7:51 ` Alexander Neundorf
2008-07-29 8:20 ` Bernd Petrovitsch
2008-07-29 8:35 ` Marco Stornelli
2008-07-29 8:58 ` Alexander Neundorf
2008-07-29 9:47 ` Bernd Petrovitsch
2008-07-29 20:08 ` Leisner, Martin
2008-07-30 4:46 ` Bart Van Assche
2008-07-30 10:25 ` Jamie Lokier
2008-07-30 11:04 ` Bart Van Assche
2008-07-30 11:58 ` Haavard Skinnemoen
2008-07-30 12:38 ` Jamie Lokier
2008-07-30 13:01 ` Haavard Skinnemoen
2008-07-30 12:48 ` Bernd Petrovitsch
2008-07-30 13:07 ` Jamie Lokier
2008-07-30 13:58 ` Bernd Petrovitsch [this message]
2008-07-30 10:16 ` Jamie Lokier
2008-07-29 8:50 ` Bart Van Assche
2008-07-29 11:39 ` Richard Danter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1217426289.7892.48.camel@spike.firmix.at \
--to=bernd@firmix.at \
--cc=Martin.Leisner@xerox.com \
--cc=bart.vanassche@gmail.com \
--cc=jamie@shareable.org \
--cc=linux-embedded@vger.kernel.org \
--cc=neundorf@eit.uni-kl.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).