I'm quite new to Oracle's ADF and wonder what is the difference between ADF and Sun's reference implementation of JSF?
ADF is a complete framework. It consists of ADF Faces and ADF Business Components making it a complete framework, model to controller to view. Using ADF, along with JDeveloper, developers can develop applications without ever having to touch any java code (theoretically). I still find myself using some java, however I try to limit it to as little as possible since this a migration project where incoming non-java developers will be working. (And yes, they will have to learn java eventually).