Hi Megatron
3D printers need software for handling the G-code they receive from the computers. This software, which handles the G-code input along with other peripherals is called the firmware.
Most of the printers these days use Arduino boards. Additional hardware like drives etc are to be attached to this board. These boards have to be then programmed to interact within and with the peripherals for functioning in a proper fashion.
With regards to firmware, most of the firmware including the three firmware that you have mentioned are open source firmware and are available for download for free. At the same time, few of the developers of firmware also provide 3D printer host software too. Theoretically if host software and the firmware come from the same developers, their interaction might be stable and less problematic.
Conclusion
There is no one best firmware. The best firmware would be the one that adapts well to your hardware.