On Jul 19, 11:25 am, terminator <[EMAIL PROTECTED]> wrote: > On Jul 18, 11:24 pm, Tim Smith <[EMAIL PROTECTED]> > wrote:
> > In article <[EMAIL PROTECTED]>, > > Wolfgang Draxinger <[EMAIL PROTECTED]> 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:[EMAIL PROTECTED] Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34 _______________________________________________ gnu-misc-discuss mailing list gnu-misc-discuss@gnu.org http://lists.gnu.org/mailman/listinfo/gnu-misc-discuss