The author is confused. The points they make are not about x86 vs. non-x86, they're instead about mixing different architectures. Yes, if you write a program and deploy it on three machines, and they all have different pointer sizes, endianness, and executable formats (PE, ELF, etc.) then, yes that can suck. If this article was written 10 years ago, more people would probably agree. But nowadays, its perfectly possib…
Challenge: specify a mainstream architecture (e.g. targeted by Debian stable) which doesn't have char=1, short=2, int=4, long long=8 bytes with GCC or Clang.
Also floating point formats can vary a bit even with the size being the same. So a piece of code written for one might be subtly wrong for another.