Not as a professional but as a radio - amateur I have done programming to interface radio's with other equipment ever since the early 80's. I have used assembler (6502 , 80x86 and recently PIC) BASIC, T-Pascal, C. Only recently - after a 8 year break - I took up programming again, this time in PIC-assembler.
In my opinion it really depends on what you want:  fast, direct and time critical interaction  between electronics and processor? Then assembler does the job. With this you have a hands on feeling. You control every bit and cycle by cycle you can predict what is going to happen. It needs  an in depths analysis of the process and a very logic mind. When used well it results in the best, fastest and most compact code.
All higher languages (BASIC, PASCAL e.a.) make life simpler. Especially when you want to process data or make complex calculations. Then a higher language comes in handy. Time critical routines are difficult to make while the one BASIC statement results (not all the time but usually) in multiple machine code instructions.
So it is not OR but AND. When you want to make the most of the PIC (or anyother micro)  you cannot do without a good workig knowledge of its assembler. and of assembler techniques in general.
Good luck
 
Q.Is there an advantage in writing program code in assembler or is the complied PBasic code just as good.