One of the first things I learned [the hard way] when I started writing software was the real difference between the public API (objects, methods and functions documented in the SDK), private API (undocumented but accessible objects, methods, and functions) and implementation details. Of the three, only...