Concrete every time. Think about slippy / non-slip surfaces (generally some roughness is best for livestock), and what fall and / or drainage channels you want so that water - dirty and clean - drains away as you want it to.
(If you go rammed earth or stone, you'll struggle to get the drainage to work.)
If you are worried about the hardness of the surface for stock to stand / lie on, either use plenty of straw (deep littering usually works best) or get rubber mats / mattresses.