One of the biggest pain points in working with WordPress templates – or, really, any PHP and HTML in general – is how we end up jumping from language to language within the context of a single file.
Obviously, this is unavoidable. I mean, the same thing even happens in other frameworks like .NET and Rails, but one of the things that I’ve seen that continually sets WordPress apart (and I don’t mean that in a good way) is that developers often don’t bother to spend time separating their concerns as it relates to the work being done in any given template.

A Vanilla Template File
For those who have been working in WordPress for several years likely know this, and know the frustration this causes.
For those who have recently hopped into WordPress development, there’s a strong chance you’ve likely been overwhelmed with some of what you’ve seen.
It’s a bummer, I know.
But it doesn’t have to be that way.