Not too long ago I had a discussion with someone about the choice of implementation language for a project. He had chosen to implement the project in C++. According to him because this was the "best possible way" to go about the job of writing something that could be compiled and run on any platform.
And in principle he wasn't really all that wrong: there are C++ compilers for nearly every imaginable platform out there.
The problem is that it isn't really painless to write C++ in a portable manner, an even more importantly: to have it build in a reasonably painless manner everywhere. In particular not when you start depending on certain libraries and you start with the assumption that there will be an entire (up to date) GNU toolchain available.
Which is only the case on fairly up to date open source flavors of UNIX, but if you want this on OSX you have to fiddle around for a couple of hours. And if you are on Windows...well, let's not go there. (Yes, it would have been easier to just order everyone on the project to drop Windows since it is a pain in the ass to have people running Windows on any development project).
In principle the result was portable. In reality it wasn't. Not unless you are willing to spend a lot of time fiddling about.
I couldn't be arsed to start a big fight over it. Mostly because I don't feel like spending days lecturing someone who should know better and then ending up looking like a bad guy for doing so. I need that like a bull needs tits.
*sigh* ... updating the GNU toolchain is really taking forever. I should be in bed.