This document discusses portability in programming. It recommends sticking to standard languages and libraries, using isolation and abstraction to hide system dependencies, exchanging data in text format, agreeing on byte order for binary data exchange, maintaining compatibility during upgrades, and using Unicode and internationalization. The goal of portability is to minimize maintenance efforts and maximize utility as environments change over time. The intersection approach of only using features available on all target systems is preferable to the union approach of conditional compilation.