> You really should be able to express the required cleanup semantics with "defer" I'm perfectly able to do that, I just don't want it, because the result is terrible. The syntax no longer shows what happens when and…
> you are in the minority here Yes, I am.
> Does C really need this? No. > Do languages need to grow in this way? No. > The overriding virtue of C is simplicity. It's no longer simple, especially not with the C11 memory model (which got retrofitted from C++11,…
Indeed!
> cleanup in every single failure case you're only tempted to clean up [fully] in every single failure case if you don't know how to implement cascading gotos or the arrow pattern.
> Invisible jumps are very bad Agreed; they're terrible. Implicit sucks, explicit rules.
> number 1 issue I find myself having when switching from C++ to C is missing RAII That's because you've become complacent; you've gotten used to the false comfort of destructors. C++ destructors promise that you can…
When constructing an object in C, we may need some permanent sub-objects, and some temporary objects. If we only need permanent sub-objects, then we set those up gradually, and build an error path in reverse order (with…
> The whole point of syntactic sugar is for the machinery to be hidden And when the machinery fails, you'll not only have the machinery to debug, but the syntactic sugar too.
> Not right there, some other place in the function. Exactly. Both C++ RAII (constructors/destructors) and C23 defer are awful. They make the behavior implicit; in effect they tie an indefinitely large (and growing)…
> You don't owe [...] you might want to What's the difference? If you don't boost them with all your might, you effectively condemn them to a life of struggle and misery, in today's world. Knowing this, it's gonna be…
> 20% less, maybe 15% net income less ain't that huge of a deal - if it is, something ain't right in your finances anyway or else, something maybe horribly broken in your country. I'm happy for you, that you can easily…
Yes, but it matters how much it intrudes on your personal life. Paying social security (and saving for retirement) when you are young, and getting (some) coverage when you are old, is one thing. It's "only" money.…
What you describe as reciprocation is actually transgenerational exploitation. Be forcefully taken-from when you are young, and then forcefully take (from the young) when you are old. It should be unidirectional giving.…
Exactly. What sane grandparent would want to live at the cost of cannibalizing their grandchildren? What the sandwich generation received as kids, they need to pay that forward, not back. For one, I don't want a long…
> I’m more frustrated that Debian has such a stranglehold on packaging decisions and it effectively refuses to experiment or innovate on that in any way. What Debian has is not a "stranglehold" but an ideology, and…
C++23 is a godawful mess; especially the functional paradigms (which look beautiful in e.g. OCaml) that got shoehorned kicking and screaming into the morass that C++ had already been. If you read function specs in the…
> define the base via union of all bases in the chain [...] just checks 3 things in order Can you please show a concrete example? Thanks.
> You really should be able to express the required cleanup semantics with "defer" I'm perfectly able to do that, I just don't want it, because the result is terrible. The syntax no longer shows what happens when and…
> you are in the minority here Yes, I am.
> Does C really need this? No. > Do languages need to grow in this way? No. > The overriding virtue of C is simplicity. It's no longer simple, especially not with the C11 memory model (which got retrofitted from C++11,…
Indeed!
> cleanup in every single failure case you're only tempted to clean up [fully] in every single failure case if you don't know how to implement cascading gotos or the arrow pattern.
> Invisible jumps are very bad Agreed; they're terrible. Implicit sucks, explicit rules.
> number 1 issue I find myself having when switching from C++ to C is missing RAII That's because you've become complacent; you've gotten used to the false comfort of destructors. C++ destructors promise that you can…
When constructing an object in C, we may need some permanent sub-objects, and some temporary objects. If we only need permanent sub-objects, then we set those up gradually, and build an error path in reverse order (with…
> The whole point of syntactic sugar is for the machinery to be hidden And when the machinery fails, you'll not only have the machinery to debug, but the syntactic sugar too.
> Not right there, some other place in the function. Exactly. Both C++ RAII (constructors/destructors) and C23 defer are awful. They make the behavior implicit; in effect they tie an indefinitely large (and growing)…
> You don't owe [...] you might want to What's the difference? If you don't boost them with all your might, you effectively condemn them to a life of struggle and misery, in today's world. Knowing this, it's gonna be…
> 20% less, maybe 15% net income less ain't that huge of a deal - if it is, something ain't right in your finances anyway or else, something maybe horribly broken in your country. I'm happy for you, that you can easily…
Yes, but it matters how much it intrudes on your personal life. Paying social security (and saving for retirement) when you are young, and getting (some) coverage when you are old, is one thing. It's "only" money.…
What you describe as reciprocation is actually transgenerational exploitation. Be forcefully taken-from when you are young, and then forcefully take (from the young) when you are old. It should be unidirectional giving.…
Exactly. What sane grandparent would want to live at the cost of cannibalizing their grandchildren? What the sandwich generation received as kids, they need to pay that forward, not back. For one, I don't want a long…
> I’m more frustrated that Debian has such a stranglehold on packaging decisions and it effectively refuses to experiment or innovate on that in any way. What Debian has is not a "stranglehold" but an ideology, and…
C++23 is a godawful mess; especially the functional paradigms (which look beautiful in e.g. OCaml) that got shoehorned kicking and screaming into the morass that C++ had already been. If you read function specs in the…
> define the base via union of all bases in the chain [...] just checks 3 things in order Can you please show a concrete example? Thanks.