Why is address defined as *? It doesn’t make anything clearer and just adds a lot of line noise. That’s just ugly for things like char address address x; and the like.
And defining a string as a char *? That’s a great way to have someone who doesn’t know what they’re doing write a whole lot of bad code assuming that c “strings” work the same way strings work in other languages. C strings must be understood at a low level.
Those capitalized function names are making me cringe too.
Ugg, and I still don’t get the point of auto’s in C. I use them in C++ to get around using disgustingly long iterator types, but that’s more because the language sucks. I see no reason to use them in C except to add to the confusion of what’s going on.
I’m not against shorter type names, but I agree with FRIGN, that s8 is clearer than i8.
D at least unifies both as “There is only one language, D which is like a friendlier and more powerful C, but if you want to evaluate this chunk of D at compile time, and everything is known at compile time, you can”.
And oh yes, since the compiler already knows a huge amount about your code, it at least provides a way of querying and acting on that information. And it just looks like an accessor on the type.
This unification is a massive simplification compared to say C++.
Regarding
I hope we won’t still be using both gcc and compiler-specific pragmas in the 22nd century. Also,
is in my opinion a better way to denote signed and unsigned integers, as
is in my opinion unclear.
Why is
address
defined as*
? It doesn’t make anything clearer and just adds a lot of line noise. That’s just ugly for things likechar address address x;
and the like.And defining a
string
as achar *
? That’s a great way to have someone who doesn’t know what they’re doing write a whole lot of bad code assuming that c “strings” work the same way strings work in other languages. C strings must be understood at a low level.Those capitalized function names are making me cringe too.
Ugg, and I still don’t get the point of auto’s in C. I use them in C++ to get around using disgustingly long iterator types, but that’s more because the language sucks. I see no reason to use them in C except to add to the confusion of what’s going on.
I’m not against shorter type names, but I agree with FRIGN, that
s8
is clearer thani8
.int x = 4 address 6;
There is no way C will get to 2100 and be 2 spaces instead of an 8 character tab.
Oh gawd! MORTRAN rides again.
Please don’t.
Seriously, if you think C needs a bit of refresh, you right.
It’s call D, and it really quite nice.
But layers of macro lipstick on old pigs? Ja. Been there, done that. MORTRAN was a prime example.
Just don’t.
Please.
I never got the hang of D. C has as its greatest advantage (to me, at least) that I can fit the whole language in my head at once. D seems…big.
C is two languages C and C preprocessor.
D at least unifies both as “There is only one language, D which is like a friendlier and more powerful C, but if you want to evaluate this chunk of D at compile time, and everything is known at compile time, you can”.
And oh yes, since the compiler already knows a huge amount about your code, it at least provides a way of querying and acting on that information. And it just looks like an accessor on the type.
This unification is a massive simplification compared to say C++.