(Disclaimer: I am one of those programmers who only switched to Apple because of the tiBook, which was a damned sexy Unix workstation in spite of the fact it was also a damned sexy laptop.. and I used it for developing apps for Linux and SGI Irix without much hassle.)
You had to take care to use libraries/APIs that were available at all three systems (no dlopen() or dlsym() at the time in OSX!), and take quirks of the OSX linker into account.
(Disclaimer: I was getting angry at Apple at the time. In a few years, they went through OS9->OSX migration, getting rid of Classic mode in emulation and now switching to Intel. They were breaking compatibility again; it meant buying new software like MS Office again - looking at the PC side, they didn't have such problem. So PB12 was my last Mac for a long time... until 2015, actually).
To me it's when the Intel macs came along (10.4.4 I think) that new adopters really started picking up steam, but the ecosystem they helped build wasn't really there yet.
At least, that's my perception.