I agree and don't agree. This is what I think too if you look at libs like Cello, this is almost an attempt to write a new language on top of C, in some way. It is an interesting experiment, but it can only end writing a compiler IMHO, turning what is sugar here into a real grammar emitting efficient code and so forth.
But, C can be improved a lot without violating its nature with better libs. Libc is very unreasonable on what it offers. It should have data structures, dynamic strings, a few buffers that are easy to consume both sides, and so forth. This is what people keep reimplementing again and again and again.
I agree with your argument that C has some bad parts which are desperately in need to be made better, but IMHO it should just stop there. Question of course then is: where is the line where it ends being updating bad parts of C and beginning to become a layer on top of C :) History has taught us that's sadly in the eye of the beholder .
Comments
I agree and don't agree. This is what I think too if you look at libs like Cello, this is almost an attempt to write a new language on top of C, in some way. It is an interesting experiment, but it can only end writing a compiler IMHO, turning what is sugar here into a real grammar emitting efficient code and so forth.
But, C can be improved a lot without violating its nature with better libs. Libc is very unreasonable on what it offers. It should have data structures, dynamic strings, a few buffers that are easy to consume both sides, and so forth. This is what people keep reimplementing again and again and again.
I agree with your argument that C has some bad parts which are desperately in need to be made better, but IMHO it should just stop there. Question of course then is: where is the line where it ends being updating bad parts of C and beginning to become a layer on top of C :) History has taught us that's sadly in the eye of the beholder .