Firmata benefits and issues

Hi! On my way of learning more about the Arduino, I have just stumbled upon the Firmata library.

It seems a lot more advanced than SimpleMessageSystem, which I have used before. But it also seems to be more complicated.

I don’t quite get the idea of “Firmata firmware”. Is it some kind of replacement for the Arduino firmware or just some kind of IO protocol? Is the library anything more than a conventional data send and receive methods?

But then… What makes it so nice for interfacing with PC applications? Are there any notable benefits vs. SimpleMessageSystem? Have there been any issues when using it? Thanks!