Hi,
I've revisited this subject (and question) far too many times in my career -- yet, I keep *hoping* the answer might change (sure sign of insanity? :> )
I have a largish application that *really* would benefit (from the standpoint of maintenance) from the use of something like C++. Currently, I use an OO programming *style* but write the code entirely in C. I just find C++ too damn difficult to keep track of all the magic that goes on behind the scenes so getting deterministic behavior (RT application) is much easier from C (i.e., I can more accurately visualize what the machine is doing each time I write a statement -- without having to worry about whether an anonymous object is being created as a side-effect of a statement).
It also makes it much easier for me to keep track of physical resources (it seems like I'd be constantly overloading new() in a C++ implementation just to make sure I can corral each wayward instance into a known part of memory, etc.)
But, doing things in such a "low level" language (C) will ultimately make the code harder to maintain for those that follow me. It really would be nice if I could leverage some OO features to relax some of the discipline that I have had to impose on the code doing "OO under C".
I am sorely tempted to go back and rewrite the OS itself, as a first exercise, just to see how damaging this venture might become (in terms of code size, runtime performance and reliability). But, that's a fair bit of work (the image is a bit over 500K currently) and I'd hate to undertake it naively.
Are there any folks who have successfully deployed larger applications in an OO language? No, I'm not talking about desktop apps where the user can reboot when the system gets munged. I'm working in a 365/24/7 environment so things "just HAVE to work".
Any tips you can share that can help me get C-like behavior from a C++-like implementation? (besides the obvious: "use only the C subset of C++" :> )
Thanks!