what is the difference between them
print, unlike echo is a function and thus has a return value. printf, AFAIK, is just there for the convenience of C programmers who like it. It includes some formatting options too (for justification and the like).