Path: csiph.com!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.lang.c Subject: Re: technology discussion =?utf-8?Q?=E2=86=92?= does the world need a "new" C ? Date: Thu, 11 Jul 2024 11:27:21 -0700 Organization: None to speak of Lines: 58 Message-ID: <87r0bzu6ly.fsf@nosuchdomain.example.com> References: <877cdur1z9.fsf@bsb.me.uk> <871q42qy33.fsf@bsb.me.uk> <87ed82p28y.fsf@bsb.me.uk> <87r0c1nzjj.fsf@bsb.me.uk> <87ikxconq4.fsf@bsb.me.uk> <20240711115418.00001cdf@yahoo.com> MIME-Version: 1.0 Content-Type: text/plain Injection-Date: Thu, 11 Jul 2024 20:27:25 +0200 (CEST) Injection-Info: dont-email.me; posting-host="c51c7f9518f437252e8df6d7af482dc8"; logging-data="2723276"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+rUY7Ov6XRkk+0MsI49q+A" User-Agent: Gnus/5.13 (Gnus v5.13) Cancel-Lock: sha1:K7H7H6cqpjyroDuC+egSn2ymjpQ= sha1:NGKNMiFys1yq3QRFB/oV/l+qCEk= Xref: csiph.com comp.lang.c:387065 bart writes: [...] > I've stated several times now that the type system on my systems > language is simple, consistent and orthogonal. Parameter passing is > consistent from the language POV (despite the efforts of the ABI). Your personal language might be the best thing since sliced bread, but I fail to see how it's relevant here. > C's on the other hand, especially combined with its parameter passing, > is a fucking mess. Everyone here secretly knows that; I don't know > what they're trying to gain from pretending otherwise, and trying to > put the blame on people who are calling it out. Nobody is keeping any secrets. I agree that the way C treats arrays and pointers is a mess. But it's a *consistent* mess, and once you understand it, it's not as difficult to work with as you pretend it is. Nobody is blaming you for pointing out that C's type model has problems, or that there could be better ways to do it. Most of us agree with you on that. You're being blamed for spreading misinformation, and for describing C in the most confusing and insulting terms possible. I have repeatedly *described* how C works. I rarely *defend* it other than to correct inaccurate statements. You insist on describing it incorrectly, pretending that "arrays are passed by-reference", even in the face of repeated demonstrations that they are not. And the frustrating thing is that I'm sure you understand all this. Someone who tries to learn C from your posts would think that arrays can be passed as parameters, and that they are passed by reference, unlike all other data types which are passed by value -- ah, but passing by reference loses bounds information, and applying sizeof to an array parameter doesn't do the obvious thing for some vague reason that's the fault of C being a poorly designed language, and yours is so much better. None of that is true (though the "poorly designed" part is arguable and I have no opinion on your language). Isn't it better to understand the language as it's actually defined? Have you ever tried to describe it accurately in its own terms? Ada (a non-C language I happen to be familiar with) treats arrays very differently. Indexing is not defined in terms of pointers. Array parameters are really arrays, and implicitly carry bounds information. Arrays can be assigned, with a run-time exception being raised if the bounds don't match. None of this is true of C. And I'll ask you again, have you read section 6 of the comp.lang.c FAQ? It probably won't tell you anything you don't already know, but it's correct, well written, and inconsistent with what you've been saying here. -- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com void Void(void) { Void(); } /* The recursive call of the void */