I generally use a homemade IDE configured around TextPad, GC Basic and MPASM from Microchip. I will confess though, I'm starting to gravitate more and more toward GCB@Syn.
Tonight while working on the Cosine function which I've posted elsewhere, I ran into an incompatibility between GC Basic and MPASM that stumped me for a while.
In particular, when GC Basic compiles a lengthy table, it creates .DE assembler code in one enormous line. But MPASM chokes on long data lines (probably around 128 bytes, but I didn't check.)
The internal GC Basic assembler, on the other hand, doesn't care how long the line is.
So, in a nutshell, if you're using MPASM with GC Basic, look out for long tables; they get truncated unceremoniously without any warning, and you'll end up reading data from who knows where in the PIC.