As far as strictly programming(as opposed to simulation/emulation/samples) and composition go, I use Guitar Pro 5. I tab everything out (guitars, bass, drums, keys, misc. instruments), and then I export whatever instruments I need to be simulated/emulated in a MIDI file, which I then export...