Every single piece of software that is built is designed to work best with the hardware that supports it. That is the idea, at least. Be it an entire operating system, an application, or just a tiny background utility, this same rule always applies.
Take Microsoft Windows, for example. The user interface has been designed from the ground up to perform best in the standard desktop environment (mouse, keyboard, etc). Every single component in the operating system is designed to provide the best experience with the hardware that we use it with.