>>1
namespaces
Are an ugly hack. Stop giving your identifiers nondescript names, and you won't need them.
>>2
Optional GC
http://www.hpl.hp.com/personal/Hans_Boehm/gc/
Personally I'd like to see some native coroutine support, or at least yield(). At the moment I'm using some library for this, but it's quite clumsy and involves a lot of extra code on both the generator-function and the calling function.
int coroutine() range(int lo, int hi) {
for (int n = lo; n <= hi; n++) {
yield(n);
}
return EOF;
}
void something() {
int coroutine() gen = range(1, 10);
int value;
while ((value = gen()) != EOF)
printf("generated %d\n", value);
}
The sentinel value is the responsibility of the program, which might make some kinds of functions slightly more complicated, but would greatly simplify the implementation and would introduce minimal changes in the language. One could also conceivably make a coroutine(int), coroutine(char *), etc., much like Python, wherein the yield() returns the value passed via gen().