T
tonytech08
You have the problem of standardizing hardware that was already
designed before your programming language. Some of these "odder"
platforms are really important, like this one:
http://www-03.ibm.com/systems/z/
Do you think they will abandon 40+ years of backward compatibility to
support a new programming language? That's one reason why C++ says
that some operations depend on the underlying hardware.
I think in terms of "a new language going forward" rather than
backward compatibility. C++ can maintain the old platforms then. It
can be like reproduction vintage parts manufacturing for vintage cars.
Yes, that suggests that some platforms will be relegated to the
"muscle car enthusiast" crowd and museums.
Because the hardware was there already. If you want the language
implementable on the widest range of platforms, you have to allow for
some variations of the hardware.
There is a tradeoff: the more "general purpose" a language is, the
more unwieldly it is to use.
Besides, as long as you stay within your own platform, the struct
layout doesn't have to be portable, just consistent.
That's what I'm currently relying on: a narrowly-defined deployment
platform. But I shouldn't have to rely on that to the degree that I
have to. Losing "guarantees" (say with layout of a struct within
memory) within a given platform is real bitch though.