[...] In fact, in most cases, the things we considered best practices were leading to the bad outcomes we sought to avoid. I realized (unpopular though it might be), that we couldn’t make it work out well by trying harder. Each time we start a new project, we think “this time, I’m going to keep the code clean. This time the project will be a shining example of what can be done with CSS.” And without fail, over time, as more content and features are added to the site, the code becomes a spaghetti tangle of duplication and unpredictability.
I was linked to this in the comments of my previous post and a lot of the points in this article rang true to me.
Web (front-end) developers are constantly trying to walk a tight-rope between semantic purity, standards compliance, writing flexible, maintainable code and just getting the job done in time.