Well I come at it from at different angle, I hate software
While I've worked on, around and with computers sense around 1970, I never transferred my love of electronics to software. The first program I ever wrote was a slot machine game programmed via machine language on paper and then entered into the minicomputer via front panel switches (no assembler available) and played via the attached teletype set. After that I tried a series of programming languages such as FORTRAN, Pascal, C, assembler, and of course Basic. I hated them all for various reasons, some more then others and some for valid reasons and probably some for not valid reasons. I'll throw out a few comments to try and focus my thoughts and maybe continue the topic for others:
Machine or Assembly language:
It's my opinion that one can't really say they really understand the target computer unless they master this form of programming. I've met good high level language programmers that really didn't understand or need to understand how machine instructions are decoded, how ALU's function, how main memory is interfaced with the CPU or how the internal CPU flags functions. Memory addressing modes, register operations, interrupt operations, programmed I/O Vs DMA I/O. I could go on and on... High level languages isolate one from having to know and work at this low level.
The learning curve for a beginner in machine language is probably the hardest of all the programming paths on could take. While blinking an LED may not make them give up, trying to accomplish anything really useful or complex will chase many away. It's only through software libraries routines that anything can really be accomplished. If one does not have access to those libraries I think they would soon try a high level language out of frustration on the amount of time and effort it takes to create anything in assembler. What percentage of assembly language programmers ever attempted or had to write their own math library? How many of them do you think would have stuck with assembler if they had to write their own floating point routines before even starting on what they really wanted to accomplish?
So my summary for assembly language is learn it if you really want to know how a specific computer or micro chip works but it better have a good subroutine library available or else forget it as a productive path.........
High level language:
Quicker learning curve and most have enough built in functions that one can learn pretty quickly. It's been my limited experience that the variation in quality and features (bugs anyone!) of the software suppliers is a bigger factor then the underlining advantages between the languages. There are/have been some really poor packages passed as useful compilers and I'm not talking freeware/shareware only! The discussions I read on which is best and why have long ago bored me to tears. A good experienced programmer (not I) will accomplish his/her goals with whatever tools are given to him/her. Keep in mind many professional programmers do not necessarily get to choose what tools they use but rather what the company/group have already chosen. Again a good and well documented library of routines is always the path towards quicker accomplishments. Certainly dealing with things like bit variables and bit I/O with some high level languages can be a painful experience. 'C' probably has the widest range of functionality and I would guess is the most used language commercially these days, but reading someone else's C code can sure be a frustrating experience, you would have thought Bell Labs charged their employees by the characters used so the bright boys in the lab came up with C to get even!
SO probably not all that useful to anyone, but I do like sharing my hatred of software in general to anyone that will listen
I generally use Basic when I can and Swordfish does sound pretty nice, except I hate paying more the $50 for any software
Picaxe basic is my current tool in learning and using PIC chips, but mostly because of the low start-up cost and quick learning curve to get started. I'm sure I will move up to hardware programmers and compilers in time, but maybe not and only if I have to
Lefty