Griwes wrote:The closeness of mapping between the language and machine code makes sense only in few parts of kernel, and of course, in those parts, you write mainly C, even when writing C++ - PODs, raw and literal pointers etc. - but in some parts it doesn't matter what the machine code is; with proper abstraction, your scheduler shouldn't care about the machine in question - only the lower level constructs, like arch-specific context switcher etc. - so in those parts, you don't need mapping to machine code, but abstractions that are easy to work with.
It seems you're arguing just for the sake of arguing.
I did not argue whether "the closeness of mapping between the language and machine code makes sense" in every or any part of the kernel. I did not argue whether it matters what the machine code is in every or any part of the kernel. I did not suggest C because of its convenient level of abstraction.
I merely suggested that C is a good choice of
language in direct response to the OP's expressed wish to keep the kernel lightweight. If you want to reduce the weight of your kernel by choice of language - you pick a lightweight language to write it in, and I was talking about C only in regard to it being lightweight.
Griwes wrote:don't discriminate C++
Did I?
I see that you're using C++ in your project. By now, I also assume that because of my encouragement to use C you think I'm in some sort of a C camp. Currently I don't use,
surprise, C.
If C was out of the question, and I had to suggest another lightweight language for kernel development,
surprise, it would be C++.
Griwes wrote:Not to mention that it's prettier and superior </flameish mode>, but let's not turn this into yet another language flame war.
It seems you're the one eager to start "yet another language flame war" here.