I agree that ALSA sucks (for many reasons, the hideous API probably being the most important one).
But, as an application developer, you simply shouldn't use ALSA directly, it's not worth the hassle. If your app does any "serious" audio work, use JACK. Period.
If you're aiming at the average desktop user, use another high-level audio API. PulseAudio appears to be a good choice.
If you can't get your work done in the first 24 hours, work nights.