Perhaps surprising, and certainly not obvious to many people, is that
it's been possible to develop RISC OS programs under Windows for a long time. Historically, ARM's SDK environment was able to generate RISC OS binaries, although that support was removed some time ago. More recently (but has still been true for a number of years), it's been possible to build RISC OS programs using GCCSDK under Cygwin - although bugs in the version of the compiler packaged with it did make that problematic earlier this year.