Programs should be portable. Languages standards are technical specifications describing a programming language in detail. Compiler writers check their compilers against the standard, and so ensure that a program that compiled correctly on one standard conforming compiler will compile correctly on another such compiler. However, if you use language extensions, your program might not compile on other machines without some rewriting, and so might be less useful. TO EDIT as possible.
Readable programs are easier to maintain and validate.
Make your program check user's input and key computation results, if wrong, try to recover - go back to the last trusted point, or just give a detailed message and abort the program. It is very important to carefully select appropriate algorithms.