Those existed?! I remember reading articles on Z80 assembly language at ticalc.org as a teenager and desperately wishing I had some kind of calculator-native text editor and assembler that I could use to program in math class -- at least, that's how I would phrase it now. I assumed that none existed, and setting up a cross-assembler was beyond either my capabilities or comprehension at the time (not to mention, at the time programming was most fun in school when I was supposed to be working, not at home on a PC with a million other distractions). I didn't get that assembly language programming experience until years later. Instead, in between games of GALAXIAN and FALLDOWN, I messed around with horribly slow, illegible TI-BASIC, a language so crude that even Pong is an exercise in futility to write in it.
I just searched the ticalc.org archives, and yep, here's at least one such assembler, loaded up with the familiar MirageOS:
http://www.ticalc.org/archives/files/fileinfo/403/40304.html
I'm not going to lie, I'm kinda sad right now, wondering what might have been, if only I had known the correct keywords to search for at the time...
Anyway, I totally agree with the premise of your post. There's almost always too much to configure for novices to get a handle on, and novices don't know what the hell they're supposed to be looking for in the first place. If setup involves one step too many, or the novice is expected to figure too much out on their own before they can start, they think "I'm stupid, why can't I do anything" or "these programs are stupid, I wanted to implement that thing I read about but I wasted X hours setting up this completely unrelated thing and copying magic commands," and you'll likely lose them for good.
Which is, incidentally, why I think anyone that prefaces their programming tutorials with "you should learn to use a real text editor like vim or emacs" deserves a swift kick in the ass.
I was (sorta still am) a pretty active member of the TI community over at http://cemetech.net/ (probably the biggest community since unitedti shut down). That on calc assembler you linked to was what I used, and it was made by my friend Brendan Fletcher (calc84maniac is his TI community handle) when he was 13 or 14. He went on to make various gameboy emulators for TI calcs. He's a year or two younger than I am, and I remember when he joined the community about a year after I did. He was slightly below my level at TIBASIC (neither of us did ASM yet) but very quickly soared past me in skill and made his on calc assembler (I started ASM with that). I just remember being blown away by how bright he was. Probably one of the more gifted programmers I've personally known. I think he's a sophomore in Uni now.
Not terribly related, but a TI anecdote nonetheless.
I am so glad he forced me/us. He spent a day explaining Makefiles and their power, mentioning some people make their living fixing those up and paying attention could potentially help you out. That summer, I finally started using Linux, for personal interest, and I was so glad that class allowed to compile my own device drivers (back when wifi cards were still a novel PITA) and understand the basics of what was happening.
Good times.
The next biggest hurdle for beginners is usually grasping basic design patterns or the request response pattern of client server interaction. This is usually difficult because a lot of the nomenclature isn't there yet. But that is nothing in comparison to the struggle it is to walk someone through basic environment setup for RoR even node.
A lot of people are looking for a good teaching language, but really I suspect almost all languages are fine, and syntax is less important than an environment where you can jump right in without a lot of fuss.
It's bundled with the Mingw compiler, and basically works as you mention out of the box. I was delighted when I found it, a few years ago when my main systems were windows.
[1] http://www.cplusplus.com/forum/articles/36896/
[2] http://clicktobegin.net/programming/why-you-shouldnt-use-dev...
[3] http://www.daniweb.com/software-development/cpp/threads/3707...
[4] http://blog.vucica.net/2011/01/reasons-against-advising-begi...
One of the biggest hurdles for me in moving to a language on a computer was setting up a compiler, IDE, etc is tough for a 12 year old who doesn't know the vocabulary. From my experience at university, it is tough for college students who don't know the vocabulary and haven't done anything like it before.
I eventually started coding in Python since it is easy to install and use IDLE to run code.
A lot of people have the aptitude to learn to program, but this would be much easier if you could just "Download C++" and download the compiler, a simple IDE with a compile+run button, and have the installer do all of the PATH wiring, etc. I have seen many people give up trying to get started just because this process can be so finicky.