ahefner
Joined 14 years ago
Joined 14 years ago
(sorry)
Deliberate efforts to surface this deeper layer back to the programmer-facing ISA (VLIW, notably Itanium) failed spectacularly outside of niche applications. C and its contenders can't simply hop over the CPU abstraction presented to them without having to map backward from some lower-level model to the surface ISA it's forced to target then having the rug pulled every few years due to microarchitectural changes. It has managed to evolve surprisingly gracefully over decades from tiny 16 and 18-bit machines, sometimes segmented, to 32 and 64 bit machines, and even accommodating SIMD reasonably gracefully via intrinsics (which is about the best we can do at present, as CPUs continue to diverge wildly in this area, though I'm begrudgingly impressed by what modern compilers can do via autovectorization to optimize simple loops).
Day of the Tentacle (which coincidentally I've replayed in the past week) executed the multiple characters mechanic the best I've seen, since each character was confined to their own area (past/present/future) and you could instantly pass items between them.
Is the latter something that was/is actively exploited?
You make a fair point about smart pointers, and median "modern C++" practices with STL data structures are unimpressive performance-wise compared to tuned custom data structures, but I can't imagine that idiomatic Java with GC overhead on top is any better.
Nevertheless, it is quite sad - however, it's difficult for me to relate to the experiences of someone who lived through that first wave of personal computing and played a notable part in it - perhaps through that lens, anything was possible.