[Mono-list] OT: C in mono

Miguel de Icaza miguel@ximian.com
02 Aug 2002 01:25:10 -0400

Hello Piers,

> I have to say that I find it ironic that half the project is developed
> in C# where OO concepts like abstraction, inheritance & aggregation are
> explicit and even encouraged in the syntax of the language; and the
> other half is in C where they're hidden in the semantics of the code.

Well, also notice that C++ does not directly support interfaces, so a
precise control over the object layout is required.  You can not just
depend on the object layout from the C++ compiler to be right.

To make things worse, there is no standard ABI for the layout of an
object vtable across platforms or across compilers, so even if we used
something like C++, we would still have to handle all of the object
management code with a special custom developed idiom to deal with this.
[ Personal note: The other thing that makes C code nice, is the inner
desire of a programmer to write code as simple and as clean as the
published ATT coding style.   Some of those guys manage to create great
things with tiny amounts of code ]