<p dir="ltr">I've used object oriented languages for years as well, and make a lot of use of abstraction layers in C code.  It is the best way I know to be able to make sense of things when I inevitably have to come back a few years later and have to make changes.  I think a lot of that comes from programming in Forth for so long.  Turning the language you have into the one you need via creation of APIs comes as second nature to me.</p>

<p dir="ltr">Sometimes I think people, especially university types, over think these things though.  The problems they are trying to solve aren't that difficult with a little discipline.  I think most of these things are to try to keep bad programmers from being so bad. Languages that enforce discipline don't bother me, I've always preferred Pascal to C, for instance, but some of these things go too far.</p>

<p dir="ltr">Jeff</p>