A small social experiment. Take a look at this screenshot:
Look at the packages. The package "cz.word.service.api" has a small icon stuck on the top left of the package icon. The package "cz.word.service.backward" also has a small icon stuck on the top left of the package icon.
Clearly, the small icon top left of the first package icon is different to the small icon top left of the second package icon. Both are locks, but the first is open, while the second is closed.
The $1000,000 question: "Why are the two icons different?"
A: The second package is compiled, while the first isn't.
B: The first package is exported/published to the whole application, while the second isn't.
C: The first package has content that can be edited, while the content in the second is locked.
D: The first package has not yet been put into a version control system, while the second has been put into Mercurial/Subversion/Git/CVS.
E: The first package contains an interface or abstract class, while the second contains an extension class or an implementation class.
F: The second contains a processor or filter, while the first contains a general definition of a processor or filter.
G: There will definitely be javadoc for the first package and definitely none for the second package.
H: All of the above.
I: Some of the above.
J: None of the above.
What do you think the answer is? Only one of the above can be (most) true. [And I am aware of (and have intentionally undermined) the general principle that "in a multiple choice, if you don't know the answer, pick the answer that is longest, since that's the most likely to be correct, because the world is a complex place".] Interested to know your answers, leave them here in the comments to this blog!