Allow me a bit of a drummer's perspective
I used to program drum machines, back in the day. I started with a LinnDrum (used to borrow this from my friend Dixie Mabanta), then when I bought my own drum machine, it was an Alesis HR-16 (for the princely sum of $450, grrr). I liked the fact that the buttons on the Alesis were extremely velocity sensitive.
Drum machines have their own pattern based sequencer, which makes perfect sense for drummers, because in most pop/rock, you play a distinct pattern for intros, verses, choruses. You are playing "poste" for these patterns most of the time, and do fills or cymbal crashes now and then.
So it's really a matter of programming a pattern for each part, and then chaining the patterns together. For a live feel, play a fill on toms and end with a crash cymbal. Or introduce a ride cymbal on the choruses, because that's what a real drummer would do. The Alesis drum machines had touch sensitive pads, and I would play the fills on the two rows of buttons as if i was playing a kit (it helped they were laid out like a real kit)
When I graduated to MIDI drum programming on a sequencer (Cakewalk 2.0 for Windows, woo hoo), it was still just chaining patterns and then adding unquantized fills played live on the controller for "realism". You can lay out a drum track really fast this way.
Nowadays I suppose you would just loop drum loop samples for the "poste" patterns but you'd still want to play the fills live.
It always help to think like a real percussionist, and that's the key to realistic sounding drum tracks. Don't do impossible things, like playing ride patterns on 10 different cymbals all at once
Of course, I don't do much programming nowadays, and the last time I attempted a drum track I just looped a sampled pattern over and over with no variation... posteng poste