> "<i>unless you strive for that concept of machine independence [..] you'll never really make great progress in the art of programming</i>"<p>Well, if I then have a look at the Oberon language and the Oberon system I see an abundance of constructs like SYSTEM.VAL(LONGINT,pointer), SYSTEM.ADR(designator) etc. which assume that and address is compatible with the LONGINT 32 bit signed integer type; and there is the trick that you can pass any type to an ARRAY OF BYTE VAR-parameter; and there are a lot of adventurous type casts of all sorts using SYSTEM.VAL and code which is not only non-portable to another architecture, but even incompatible with code generated by another compiler (assuming specific headers of records or arrays, etc.). There are even modules in the Oberon System using such non-portable and compiler cheating tricks where there is actually no need since all could be represented in plain Oberon (with no SYSTEM module etc.).<p>> "<i>C++ the worst disease ever created</i>"<p>But it let's me implement very efficient and portable code without the nasty tricks mentioned above, because I can take references or pointers of things which can be type-checked by the compiler. Of couse I can also do nasty things in C or C++, but as demonstrated Oberon is no different in that respect (even worse because there is no way to do low-level programming with at least some type-checking support at all). All in all an unnecessary and unworthy claim for a man of his stature.