The status of ion beam data analysis codes dedicated to Rutherford backscattering, elastic recoil detection analysis and non-resonant nuclear reaction analysis, is reviewed. The most important methods and approaches employed are discussed. The stopping power and scattering cross-section databases used, the ion-target interaction physics, the experimental and detection system characteristics and the structure of samples all have a strong impact on the analytical results. The models and algorithms used by different codes are reviewed and discussed in detail. Limitations in existing codes and perspectives for further developments are presented. The importance of ascertaining the correctness and accuracy of different methods and codes used in ion beam data analysis is stressed.