I've worked with several network device vendors in my 10+ years of being in the industry and my favorite continues to be Cisco IOS. Overall, Cisco IOS tends to be the most stable, the most intuitive, has the best TAC support, and has the best knowledge base articles and white papers.
I think for every business in the world Microsoft Windows is a good use as standard OS system. It’s easy to use and a lot of other company's use it which make it very appealing for user to learn more about Microsoft Windows. The Office 365 suite is really good as a free feature and used a lot by every user of Microsoft Windows. If you got a designer business I would recommend other brands that are specialized in that kind of work. I feel Windows will come short on that end.
By this point, there are several "flavors" of the Cisco IOS such as XE, XR, and the standard Cisco IOS. While they are all fairly similar, there does exist syntax differences between them. It would be ideal if at some point in the future, Cisco is able to unify all of them into one standard operating system which would use the same syntax across all platforms.
While overall Cisco does a great job of QA'ing their IOS, no matter the release, there's always some minor bugs. I think it's important that Cisco continue to pour resources into their QA team to test their software.
While I'm very familiar with the graphical readouts of "show processes cpu history" I would love for Cisco to eventually find a more intuitive way to display this data. I can't begin to count how many times I've had to teach more entry level (and even mid level) engineers how this graph is interpreted.
I do wish that Cisco had something similar to Juniper's "commit check" or "commit confirmed". This helps validate the changes you're about to apply, and catch errors, so that you have a better idea of the impact of the change.
The data that Cisco IOS is able to provide is extremely relevant, it's fast, and it's intuitive. I also love that you're able to leverage things like macros or EEM scrips to run multiple commands at once. This is especially useful when you have more junior or entry level engineers in your environment and you want to provide them with a "shortcut" by having them type a single command to execute multiple commands.
It's easy to use, very straightforward, and user-friendly. It has improved over the years, but you still need to be careful not to shut it down improperly because that may lead to corruption and Windows being unable to boot. There is plenty of software available that covers most needs.
We have found other Cisco software to be filled with added functionalities as compared to iOS. New NCS software has certain programmability features that are advantageous to legacy iOS software but are more complex to use for some users. Hence, we still have most areas of the network that functions using iOS software.
Microsoft Windows and macOS are both useful operating systems. There are businesses who much prefer macOS and some that prefer Windows. Businesses that revolve around industries such as game design, art design, graphic design may opt to use macOS due to its optimization with programs that revolve around these topics. Other businesses that are more focused towards Data or text processing may opt to use Windows due to its familiarity across the world and ease of access.