Why I'm (Still) Against SASS & LESS
I started off a Twitter debate yesterday (I always seem to stir up trouble) about how I would never use LESS or SASS, and how I’m becoming a minority in the development world. I’ve done a lot of research into both systems, and have read several blog posts from people who were also cautious and then made the jump and were happy about it.
I’ve also seen that a bunch of “developer celebrities” have chosen to use one or the other. And I think that’s honestly why preprocessors have taken off. It seems one celebrity likes or does something and all of a sudden it’s an internet sensation. I guess that’s how the world works though – and that’s another subject for another day.
I refuse to use any preprocessors.
I’ve been creating sites since before CSS was in existence, so I’ve seen a lot of new trends, frameworks and the like come and go in that time. Not all of them have been bad, but a lot of them, mainly frameworks, have only made HTML or CSS even more complicated.
Let me tell you a secret: CSS is NOT a programming language. The beauty of CSS is that it’s so easy for almost any to pick up quickly and read (though it’s very difficult to actually use it properly for the big stuff). Adding a preprocessor on top just needlessly complicates and adds yet another piece of bloat to an already over bloated workflow.
My thoughts are a bit jumbled, so let me just break down my misgivings here:
- Code bloat: nesting, unneeded vendor prefixes, etc etc. Giving up control of the final output means you give up control on cleanliness. Queue Photoshop sliced HTML.
- If I create the site using a preprocessor, then hand it to the client or another contractor who doesn’t use preprocessors, and they changed the regular CSS file – I risk a) overwriting it when updating the preprocessor file or b) having to manually move crap over.
- Code bloat: Worth a second mention. Code cleanliness is next to godliness.
- Preprocessors attempt to twist CSS into something it’s not: a logic based programming language. I see future headaches when CSS is updated – as well as more bloat issues when the preprocessor isn’t updated quick enough to remove unnecessary elements.
Including my actual misgivings, I just honestly don’t see the need to use a preprocessor. In fact – I think it’s lazy. Variables are kinda cool, but can be accomplished by just creating a class for that repeated style on it’s own, or stringing like styles together so you don’t have to repeat yourself. I think if using a preprocessor has “totally changed the way you code” then you probably needed to change the way you coded anyways – if you’re already great at coding clean and semantic CSS and hardly ever have layout issues, I don’t see the benefit. Every time I ask someone what the benefit is, they either give some vague answer or they reply with something I already do myself. I’m told it makes your coding more efficient – how exactly? HOW GODDAMNIT?? I just don’t see it. I already code complete sites in well under 10 hours. Any quicker and I’d have to start charging a whole lot less. (that’s sarcasm).
Keep CSS simple. That’s what makes it a beautiful language that allows us to do beautiful things. There once was a time, not too long ago, that we attempted to remove intrusive layers of junk in our coding. But we’ve reversed that for some reason – now we like to have framework upon framework, and now JS framework upon JS framework – all that attempt to twist our languages into something they’re not supposed to do.
What happens when it breaks?