ASM all the way for me. I just can't get a handle on basic and I like to be able to manipulate everything, every step of the way.
Basic seems too "wishy-washy" to me??
You'd be the first person that doesn't "get" basic, wow that's really strange!
Agreed, ASM is by far more superior when it comes to absolute manipulation of settings and internal registers, but NO BEGINNER needs access to that kind of manipulation right from the start.
I've NEVER needed to use ASM to simply read switches and spurt out data, flash LEDs, control LCD displays and read/write to external memories & devices.
20-30 lines of basic replaces 200 lines of ASM, a beginner just doesn't need to go thru all that.
I've casually taught small groups of people with an introduction to pics/picaxes/basic, and if i have 10 people in a class, then i have 10 people at the end.
My collegue teaches some mplab/asm stuff, and when he has a class of 10, it soon becomes a class of 3-4 in a matter of weeks.
You just can't ignore those figures.
ASM is best suited for very higher-speed requirements where nanosecond timing is critical, such as generating (or decoding) advanced signals such as Video, DMX(lighting) data, Midi(music) data, Timecode (TV/videotape) data.
Obviously 'Basic' fails to meet many high-speed timing requirements due to it's nature dealing with the upper level interpreter which creates it's own delays and interferes with 'timing' within the code structure (been there, done that).
I think ALL beginners should start on basic, whether it's on a PC program (gwbasic, qbasic, visual basic), or a pic/picaxe/avr/arduino chip, and then move upto ASM when they're more confident in what they're doing.
Of course they could equally move across to 'C' for powerfully fast programming too, and still easier than ASM ;-)
MM.