4 ms·
That is the entire point, yes. Reasoning about layers of completely imaginary entities is what demotivates me about C++ and Rust. Meanwhile, hardware bits are v
by gritzko 5mo ago
That is the entire point, yes. Reasoning about layers of completely imaginary entities is what demotivates me about C++ and Rust. Meanwhile, hardware bits are very real (and getting more expensive recently). Having implemented slices and generics in C, now C++ feels like Vietnam flashbacks.
https://replicated.wiki/blog/abc https://replicated.wiki/blog/abc
- pjmlp 5mo agoYet C23 isn't K&R C any longer, nor is the hardware a PDP 11. Also when we eventually start talking to agents that perform the whole execution steps by themselves, that is kind of irrelevant. Except for the lucky ones that still code to keep the infrastructure going, which is mostly C++.
- uecker 5mo agoThe "nor is the hardware a PDP 11". Byte access was the main new feature of the PDP 11 that C adopted. Are you saying being able to access individual bytes is not relevant on modern hardware?
- shakna 5mo agoMight more mean that we've standardised on a few things like what a byte even is. The PDP-11 had both 8 and 9-bit bytes. Thats a complexity that few programmers have to touch on, today.
- elch 5mo agoIIRC PDP-11 was a 16 bit word machine with an 8-bit byte. Maybe you remember PDP-10 with 4x9=36 bit words?
- uecker 5mo agoAnyway, I do not see how this affects the design of C in a way that makes no sense anymore today (except that one could require CHAR_BIT to be eight, but there are still DSPs where this is not the case). I think people repeat the "the C design reflects the out-dated PDP-11 hardware" meme because it sounds smart while in reality it is just nonsense.
- pjmlp 5mo agoSo when is WG14 standardising modern hardware into the C standard? Basic stuff like SIMD, SIMT, without requiring users to go beyond language extensions, something that any programming language can offer in similar capacity?
- uecker 5mo agoAh, the "what is not standardized does not exist" argument again.
- 1718627440 5mo agoWhy does the language standard need to prescribe everything. It is a standardization of between existing compilers, they are allowed and intended to invent things. If anything the experience from C++ has shown, that writing too much behaviour into the standard accidentally has consequences on the possible performance. The C standard is descriptive, not prescriptive. > something that any programming language can offer in similar capacity? By your measure a lot of other languages don't offer anything to begin with, because they do not have a standard at all, only a reference implementation.
- shakna 5mo agoOn the 11, the UNIBUS was 18 bit, the program space was 16 bit, and addressing was 22 bit. So it depended if you were using I-space or D-space.
- zabzonk 5mo agoActually, if you were mad enough to use the feature, the Dec10 had 6-bit "bytes" - 6 to a word.
- pjmlp 5mo agoIt is, however hardly something unique to C, as the C crowd pretends it to be.
- flohofwoe 5mo agoThe PDP-11 myth is getting a bit tired by now ;) If C would be so hardwired to the PDP-11 architecture it would have died with it. In reality C works just fine on all sorts of hardware (like GPUs) with only minor extensions.
- pjmlp 5mo agoJust like plenty of other programming languages. I am also tired that language extensions in C to work around ISO defencies is considered an advantage when argued by C folks, while at the same time it is considered a language design fault when the same crowd points to other programming languages.
- 1718627440 5mo agoYeah, a continuous memory model is used, because it is convenient, not because some old hardware happen to use it.