>> You type your code directly into RAM and instructions are being assembled as you type
> Most C64 devs used assemblers. We stored source on disk and ran assemblers on them.
From my perspective, devs that were able to do that were extremely lucky. I gave up trying to program my (contemporaneous) ZX Spectrum in raw machine code with a tape deck for storage after one too many catastrophic failures, and I didn't take up programming again until ten years later when a friend donated me an old PC compatible.
I did a "loader" in basic that saved to either disk or tape. This was pretty common and was explained in magazines and books at the time (I don't think I'd have come with this idea on my own as I was 7-10 years old).
For most kids, programming was BASIC, or BASIC combined with some assembly loaded as DATA blobs. The problem was getting an editor, monitor, source level debugger like for instance http://djupdal.org/cbm/64asm/ but there were things like The Final Cartridge. My dad used it to cheat at games but I found a lot of use to it.
The C128 integrated a memory monitor and disassembler. It was a lot easier to do something decent in C128 without proprietary tools. Sadly it never caught on. But even to develop for the C64 it was a great machine. For most kids it was a lot better to program-play. Like the Spectrum, it had graphic primitives in BASIC. Believe it or not, there was no graphics mode in the C64 that didn't involve playing with memory maps (for sprites) or assembly/machine code.
I didn't do much with the Speccy as I was a Commodore kid but I loved playing with its graphics in BASIC. I never got to do anything more sophisticated than that in that platform. I believe most pros back then did cross-compiling from 128K+ machines to the 48K or the Plus.
Now I collect all these machines but I haven't taken the time to go back and see how would I do things now. There's a lot of stuff I didn't know back then, for instance Forth, which would have worked a lot better besides "machine code" than BASIC.
What I find most amazing is that I remember all this stuff with precision (I can still remember POKE codes) and I barely remember anything else from these years. I have vague memories from even friends, teachers, cartoons...
That's kind-of sad to hear. I picked up programming when I was 8 on QBASIC, and absolutely loved it. 8-year old me would stay late nights till 3 a.m. programming.
I have to admit, Microsoft got a lot of stuff right with the QBasic that was bundled with MS-DOS. Hitting F1 would bring up an amazing help system that documented various features of the language with code snippets. I remember discovering the "DRAW" command, and how much fun I had with it. I came across it on the documentation; and the code snippet is what made it really easy to learn how to use it. But the doc was well-written too -- sufficiently simple for an 8-year-old whose native language is not English, to understand.
Now imagine that I had some *nix -- vi/emaccs alone would put me off, erm, any text editing, not to mention programming. Also, just the way Unix is, where things often break silently, and the system assumes you know what you're doing -- just isn't suited to an 8-year old.
I'm kind-of disappointed at the state of programming right now. Many of the popular languages of today -- JS, Java, Obj-C, C++, etc. are no where as simple as the BASIC dialects are. Python though, is actually a good candidate. With a nice Turtle-like library, it would be a perfect beginner's intro language to programming!
You should try DrRacket. The book "How to design programs" uses it to get you straight into simple graphics. Both the book and DrRacket are available for free as in beer and speech online.
ZX Specturm had ZEUSS (http://en.wikipedia.org/wiki/Zeus_Assembler) macro assembler which we used to wrote games. Tape was different story; we made HW interface so it would use external 5.25 floppy instead :-)
They cost about a month's pocket money at the time. You also had to load them from tape before you could work, which made them mostly an impediment (unless you could afford better hardware). You were mostly better off remembering as many opcodes as you could and looking up the rest as you needed them (or at least that's how it seemed to me).
I always found that far too painful, and almost impossible to spot bugs. And maybe I was just lucky that I was working part-time by then, but a fiver or so for an assembler app didn't seem a huge expense even then.
I would agree that getting microdrives did make a huge difference, but even when I was still on tape it was a hell of a lot easier for me to do that than keying in hex values.
I had the French Silk assembler. PAL was also popular. Neither was very expensive, even for an eight year old like me, saving up his lawn mowing money.
> Most C64 devs used assemblers. We stored source on disk and ran assemblers on them.
From my perspective, devs that were able to do that were extremely lucky. I gave up trying to program my (contemporaneous) ZX Spectrum in raw machine code with a tape deck for storage after one too many catastrophic failures, and I didn't take up programming again until ten years later when a friend donated me an old PC compatible.
Edit: And yes, I'm still kind of bitter.