I found this thread kind of interesting and went off looking. Found this:
http://www.dwheeler.com/6502/
Interesting read, and some toys to check out too.
I have a comment or two, just because it's late and I'm struggling with a project, hoping a little distraction or two helps get the juices flowing.
On old computers, modern tools have helped a lot, but really I see them helping make better assembly language code and or adapt new hardware to old boxes more than I see them replacing Assembly Language. The older machines really are too lean in most cases, and on the 6502, it's *hard* to get higher level code compiled down to compete with what a good programmer can do with the chip.
I suspect that's why it's still popular and fun too. 6502 hacking is a great challenge. Always will be IMHO.
On some 8 bitters, C actually made sense. It did for the Apple, though it took a while. PASCAL was useful pretty early on too. My first C program was on an Apple computer and it was insane. Did it on an Apple setup with four disk drives. The school set that one up after somebody spent more time swapping disks to edit, compile, link, and build the executable than they did coding. Back then, it was a "gee whiz" moment as I got a chance to experience a little of what people were doing on more powerful machines at the time, but that's about it. Went back to PASCAL, where it actually worked much better and leaner.
CP/M got a C environment that was capable.
Tandy CoCo computers got FLEX and then OS/9, which included some pretty powerful OS / Development tools, which included C. A CoCo 3 can actually run a fairly sophisticated C program, due to it's CPU being a lot more capable, and a memory environment that delivered the room needed for it to actually be workable.
Assembly ruled the day for a ton of stuff though. Still does. Always will on smaller systems, though some pretty great projects are out there. Our own Batari Basic is impressive! It's a nice BASIC that compiles down to pretty damn solid 6502 code. Wish I had the skill to port that a few places. Love the idea of it. Really powerful macro assemblers are where it's at these days. I see way too many projects happening in assembly, particularly if they are graphics / sound related things. C just isn't there.
Maybe somebody can comment on the Z80. There is a C for the ColecoVision. That's kind of amazing, though it's not self-hosted, using a PC. C on the Apple is self-hosted, though it's tough compared to cross development using a PC.
If one is programming right on the machine, I would think C is just a PITA. It's way too thick to make a lot of sense on any machine besides the CoCo that I am aware of. Maybe Apple, but that's a stretch too, and really all about a very well equipped one, or CP/M, and there's the Z80 again.
Programming right on the machine means BASIC, Assembly Language, and some custom tools maybe. Probably.
Today?
C is still the serious systems language. Lots of stuff is out there, and it's getting used too, but C is the foundation. Very relevant and not going anywhere anytime soon.
Assembly language isn't going anywhere either. It's not like people are writing applications in it. Higher level stuff is how that's going to get done, and in some cases very high level stuff, which is another bloat discussion. .Net? Thick... but then again, kind of effective, so long as people don't care too much about resources, which a lot of them don't because hardware is just cheap and big these days.
12 GB on the laptop folks. 12 e-ffing GB!! Holy crap. Gotta not think too hard about that.
Assembly is where the real wizardry often happens. New hardware and lower level programming happens in Assembly Language a lot. It also happens when hardware gets pushed hard. Encapsulate some assembly code into a greater application and a big boost can be had. Anything that has a BIOS or similar thing probably got authored in assembly language, and there are always custom libraries for this and that authored in the same way.
No matter what, we always need people to boot strap new devices and that means Assembly, and shortly after it means C, then it usually means a lot of other stuff, if it makes sense to do that.
One common thing is to take the new device and use Assembly Language to build up GCC for it. Once you've got that, you can then go off and build lots of languages and software. But that's all today.
In retro land, I have to say NO. Assembly is king. For a lot of stuff, it needs to be. There are interesting projects still attempting to push the edge though. Most are academic, but the Short language for Apple ][ demonstrated this year at KFest is really intriguing. It's not C, more like BASIC, but it's built to compile down to Assembly Language, and it's built for development right on the machine too, and it allows inline Assembly. Kind of the Batari Basic for the Apple, with support for the extra things it does compared to a VCS.
Ok, I'm going back to my project now. Ignore the ramblings....