Re: C++ equivalent to spaghetti code
On Jul 19, 11:25 am, terminator <farid.mehr...@gmail.com> wrote:
On Jul 18, 11:24 pm, Tim Smith <reply_in_gr...@mouse-potato.com>
wrote:
In article <4c15l5-fk5....@darkstargames.dnsalias.net>,
Wolfgang Draxinger <wdraxin...@darkstargames.de> wrote:
Well, I know only the comments Linus Torvalds made about the
implications of using C++ to develop a kernel. And I totally
agree with him in his statements. Programming a kernel you want
to control every bit of the program (yes I know, that this
sentence can be interpreted in many ways, and each way totaly
matches what I mean).
A languages like C++, that hides (some) vital aspects of the
underlying mechanisms can break things at such a low level
application. I'm thinking mainly about the way, polymorphism is
implemented (there's no standard about that in current C++), how
name mangling is performed (dito), calling conventions if
objects are passed by reference (dito). Another problem is, that
the use of some C++ features (I'm looking at templates here)
will start a chain reaction in which code is created generically
w/o having any influence on the exact outcome. This is not the
same like using macros to create a similair effect; doing it
with a macro one must exactly know what's going on.
I have yet to encounter a C++ compiler that will refuse to compile a
program if it does not use polymorphism, passing objects by reference,
and templates. There is nothing forcing someone who writes a kernel in
C++ to do those (possibly) questionable things.
Anyone who codes a kernel without using polymorphism just has to
reimplement it by hand. Ditto passing objects by reference.
And I fail to see any problem with templates, although given
that most of the data structures in a kernel are very
customized, they'll probably be used less than in the
intermediate layers.
you can call it C++ code but without them you are just codding in C
and the trouble is that many high level featuers do not always suit to
kernel programming,
Some (like exceptions) don't, but most do.
on the other hand C++ is not high level enough for
some tasks such as web programming,multithreading ...
Funny, I use it for that, with no problem. (Well, I'm not sure
what you consider web programming, but Firefox is written mainly
in C++. But maybe you don't consider that web programming.)
In short words today`s C++ cannot be considered as general
purpose as C used to be in good old days.
C was never really a good general purpose language. It was
never used (nor even usable) in commercial software, for
example.
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orient=E9e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France, +33 (0)1 30 23 00 34