Member access using . even for pointers
Removal of multiple declaration syntax
Only a single declaration is allowed per statement in C3:
int i, j; // ERROR
int a; // Fine
In conditionals, a special form of multiple declarations are allowed but each must then provide its type:
for (int i = 0, int j = 1; i < 10; i++, j++) { ... }
Goto removed
goto is removed and replaced with labelled break and continue together with the nextcase statement that allows you to jump between cases in a switch statement.
Rationale: It is very difficult to make goto work well with defer and implicit unwrapping of optional results. It is not just making the compiler harder to write, but the code is harder to understand as well. The replacements together with defer cover many if not all usages of goto in regular code.

Stay close to C - only change where there is a significant need.
I hope that doesn't count as a double negative.struct something
{
f32 posx, posy;
char *name;
void *aux;
};
something::new(u32 id);
something::destroy();
something::recolour(u8 r, u8 g, u8 b);struct something;
something::new(u32 id);
something::destroy();
something::recolour(u8 r, u8 g, u8 b);I disagree with both you Kloonk AND the statements of the C3 authorsI hope that doesn't count as a double negative.
There is lots to C I like. Definitely lots I don't like either. I'm not sure if C3 really floats my boat.
I wonder what C3's use case and mindshare is? Narrowly in-operating-system programming mainly? Or broad inc micros? I can't find anything about that on the c3-lang.org site.
The C2 site mentions kernels & bootloaders.

C (for better and for worse) has been shaped by the desires of many diverse groups, so it's hard and dangerous to claim you have improved it without taking into account a lot of diverse people's opinions OR intentionally stating that your modified version is for a narrower use case than the original.

https://c3-lang.org/
https://strlen.com/lobster/
See for yourself: https://ziglang.org/
You guys are throwing me back to when I was (happily) subscribed to "Computer Language" magazine!
Thank you!
You guys are throwing me back to when I was (happily) subscribed to "Computer Language" magazine!
Thank you!
There are constant newlang discussions elsewhere. Checkout https://lobste.rs and https://news.ycombinator.com/
I don't like newlangs because I want to give my programs the best chance of still compiling and running in 10 or more years time. It's not perfect, stuff still breaks, but it's better than most.
You guys are throwing me back to when I was (happily) subscribed to "Computer Language" magazine!
Thank you!
I don't like newlangs because I want to give my programs the best chance of still compiling and running in 10 or more years time.

case ${EAPI} in
5) ;;
6) ;;
7) ;;
8) ;;
*) die "EAPI=${EAPI} is not supported" ;;
esac
----> forget your old Overlays, forget ***every*** single old portage: old stuff won't work on modern stuff.https://c3-lang.org/https://strlen.com/lobster/See for yourself: https://ziglang.org/
You guys are throwing me back to when I was (happily) subscribed to "Computer Language" magazine!
Thank you!

You guys are throwing me back to when I was (happily) subscribed to "Computer Language" magazine!
Thank you!
was/is it interesting?![]()
![]()
I find it hilarious they absolutely had to remove goto, but then creep in a feature of adding a new kind of goto which can arbitrarily jump around inside switch-case: something no one ever asked, switch-cases being quite confusing already as they are.
'nextcase' doesn't allow to jump around freely but only to the next 'case', as I've got it at least.
I'm ridiculing this feature.
Here we go again. Is there somebody who really believes C is going to be replaced?
I don't for various reasons. C has been here for a long time and it will stay here for even a longer time.

Here we go again. Is there somebody who really believes C is going to be replaced?
I don't for various reasons. C has been here for a long time and it will stay here for even a longer time.
there are only to kinds of people: those who are spending time wondering *** if *** { C/89 , C/99 } could be replaced ... (and with what?) and those who have actually already replaced (improved? just modified? just made it weirder? ... mumble, dunno what's the correct verb here) C and re-written a small uKernel as well as a b+tree filesystem, and are very happy that it took just 1/4 of the effort was taken with C/89![]()
![]()
No problems here, programming has never been easier using GNU/Linux, make and GCC.
Not saying here that everybody should do like me. Just telling what works best for me.
No problems here, programming has never been easier using GNU/Linux, make and GCC.
Not saying here that everybody should do like me. Just telling what works best for me.
frankly I feel really frustrated by answer like this.