←back to thread

76 points mpweiher | 1 comments | | HN request time: 0.218s | source
Show context
stevefan1999 ◴[] No.43116899[source]
C is undeniably a legendary programming language, but it's time to move beyond the constraints of the C abstract machine, which was heavily shaped by the PDP-11 due to Unix's origins on that architecture. C feels outdated for modern computing needs.

It lacks features like lambda calculus, closures, and coroutines—powerful and proven paradigms that are essential in modern programming languages. These limitations make it harder to fully embrace contemporary programming practices.

The dominance of C and its descendants has forced our systems to remain tied to its design, holding back progress. Intel tried to introduce hardware assisted garbage collection, which unfortunately failed miserably because C doesn't need it, and we are still having to cope with garbage collection entirely in software.

While I’m not suggesting we abandon C entirely (I still use it, like when writing C FFI for some projects), we need to explore new possibilities and move beyond C to better align with modern architectures and programming needs.

replies(4): >>43117623 #>>43117644 #>>43120821 #>>43123545 #
1. flohofwoe ◴[] No.43117644[source]
Newly created programming languages specifically tailored to GPUs (e.g. all the shading language dialects like MSL, GLSL, WGSL, HLSL, ...) are not limited by backward compatibility restrictions to C - and the execution model of GPUs is very different from traditional CPUs, yet all those languages turned out not much different from C extended with a handful new types and attributes.

Intels iAPX 432 had failed because it couldn't beat the much simpler, faster and cheaper, 'stop-gap' x86 design, not because of some C or PDP-11 conspiracy (and the Motorola 68k was much closer in spirit to the PDP ISA and a 'better fit' for C, yet it also lost against the rather crude x86 design).