What is the difference between Yarn & NPM

What is the difference between Yarn @ NPM and which is more preferable and recommended to use?