As anyone who has been around a while knows, coding good, solid and robust cross-platform solutions can be a non-trivial task, particularly when you get into graphics or parallel processing for example. However I am learning of an even tougher situation to deal with, not just cross-platform solutions but cross-development and cross-temporal solutions. By that I mean having to maintain a code-base that has seen:
1. At least 3 OSs
2. At least 5 development environments.
IOW this is a code-base that was working on DOS, Win31, WinNT, another custom OS (due to hardware) and finally various flavors of UNIX. I have seen evidence that this once worked under TurboC, Borland C/C++ 3.0/3.1, some vintage of VisualC++ (still had message "crackers"), GCC and something called EvoX. More, I have seen evidence of coders that were good at OOP, bad at OOP, C-only, Windows-only and now UNIX only. All in the same file. What amazes me is that it all still works...and what depresses me is that it all still works. If it did not, we would have the excuse for management to bin the cruft and recode key system elements to take advantage of language elements that have been introduced ...in the past 10 years... so its not enough (when troubleshooting) to get your head into the DOS or Windows or Linux mind-set, you have to get your head into the mindset of the typical coder of yesteryear...compared to this, doing what we normally assume to be cross-platform development is downright easy...
No real question, more of a rant. I have been doing this for a long time but never really had to deal with more than a few environments at once before this....