But that's not all. Some applications, for example MPlayer and Xine, do everything themselves and do not rely on a sound server. While this might not bother end users, it is a nightmare for developers who have to write support for all these different beasts into their applications. In fact, the fractured nature of audio systems and their many diverse APIs in Linux is a chronic problem for developers.
While describing the current state of Linux audio would require a book, this should give you an idea of its complexity, pitfalls, and boobytraps. The good news is we have a lot of great audio applications. The bad news is it's all rather a messy jumble. But that, perhaps, is changing.