Arduino makes the understanding of microcontrollers easier. But it hides the #define statement, and one can see digitalWrites and other Arduino functions throughout the programs. Silly! they should appear only within an initial define block that describes the hardware. Portability is not using digitalWrites, it is setting clear initial definitions.