Rogue also has built in mitigation with uncanny dodge.
Let's use a monster as a reference, let's go with a fire elemental. It has a +6 attack, rogue will have an AC of about 17. That gives the fire elemental a 50/50 hit rate.
Dealing an average of of 10 damage a turn.
Rogue has uncanny dodge, which will only be 1 attack.
But notably here that is usually sufficient for this attack line, 2 attacks with a 50/50, the majority of the time it will be one hit. So the break down is something like 0-25%, 5-50%, 15 -25%. 6.25 is the average being taken a turn.
This will get worse if we are fighting multiple of these, which we probably are by 8th level, but this is just a snapshot.
For barbarian, I am being mean and picked an enemy that does fire damage, so unless bear that will be 10 or 15 (5-7.5 if we are a bear) received dpr depending if they are using reckless.
Steady aim does have the cost of possition, but not AC, Uncanny dodge is also weaker, but I would also note more reliable as it doesn't have issues with damage types, doesn't use a resource, and the caviot that it needs to be an attack is pretty easy to make.