I'm quite new to Oracle's ADF and wonder what is the difference between ADF and Sun's reference implementation of JSF?
As a user of ADF Faces on several enterprise projects, I have a slight disagreement with the approved answer-- ADF Faces can be used as your JSF implementation or as a component library. If used as your JSF implementation there are differences from the JSF spec such as a longer lifecycle (ADFFaces adds two steps to the original JSF lifecycle) and an additional scope for storing variables longer than request but shorter than session (i.e. in "process scope").
If you end up using ADF Faces as your JSF implementation, you need to be aware that you are doing things the Oracle JSF implementation way (so you often can only find answers for what you are trying to do in the Oracle documentation, which can be lacking).