Quite often C is the primary platform for the development. And when things are large scale, I have seen partitioning of the system as different objects is quite a natural thing. Some or many of the object orientated analysis and design principles are used here very well.
This is not a debate question about whether or not C is a good candidate for object oriented programming or not. This is also NOT a question how to do OO in C. You can refer to this question and there are probably many such citations.
As far as I am concerned, I have learned some of this things while working with many open source and commercial projects. (libjpeg, ffmpeg, Gstreamer which is based on GObject).
I can probably extend a few references that explains some of these concepts such as
- Event Helix article
- Linux Mag article
- one of my answers which links Schreiner's reference
Schreiner is definitely one of the only reference I know. However, there are few things/ approaches that I don't quite like about it. At times, this books gears more towards theoretically being closure to OO_ness_ rather than being useful. But, definitely, this is perhaps the most giant leap of all reference I have found.
Unfortunately, when we induct younger folks, it seems too hard to make them learn all of it the hard way. Usually, when we say it's C, a general reaction is to throw away all of the "Object thinking".
Looking for help extending above references from those who have been in the similar areas of work.
Are there any good formal literature that explains how Object thinking can be made to use while you are working in C?
I have seen tons of book on general "object oriented paradigms" but they all focus on advanced languages mostly not in C. You see most C books - but most focus only on the syntax and the obfuscated corners of C and that's it. There are hardly ANY good reference, specially books or any systematic (I mean formal) literature on how to apply OO in C. This is very surprising given that so many large scale open source projects use C which are truly using this very well; but we hardly see any good formal literature on this subject.