Why is it so hard to make a replacement for C?
I imagine the part of it is simply due to the sheer amount of time that has gone into the development of C over the years.
Well, I feel like it would do the software industry some good if there was a low-level language that was still very high level (in that it has high-level abstractions) with C speed (or faster) and C portability. I dunno. I'm also fascinated by how nothing's managed to come along after all this time and pushed C off its throne. Aren't building and using new abstractions what programming is all about? Why not have new abstractions in a low-level setting?
Someday I'd like to delve into Forth for an embedded project, for exactly these reasons.
I've only read a little about it but it seems very object oriented, and a bit like Lisp for hardware. A different approach but a big learning curve.
Yes, exactly. As I said I only know a little about it, but it seems like you use Forth to design a language which matches (and controls) your machine. As you sometimes use Lisp to build other languages.
Now that you mention it, I think I've gotten my wires cross about the object-orientation angle; I think i was thinking of Smalltalk. It's another language that I've also thought would be interesting to learn, sometime. I really don't know a lot about either of them, though.
There's nothing wrong with using the right tool for the right job. C will live a long long time, because you don't need more than C to do whatever you need to do, on an embedded processor. For other work, PC and browser apps, whatever, other languages do better. Personally, I like what I've seen of python; but C is my bread and butter, because it does all I need it to do, and very well.
C is old enough and simple enough to be, pretty much, well-defined. That helps compiler makers a lot.