CSS is Not Broken by Keith J. Grant

Keith J. Grant:

You cannot be proficient in JavaScript until you understand coercion, prototypal inheritance, and asyncronous(sic) flow control. Likewise, in CSS, you have to understand the cascade, inheritance, and the box model.

CSS is hard. But this is not because the language is faulty. Rather, the difficulty lies in what the language seeks to accomplish.

This article is one of the first fair pieces on the topic. These days, the fights going on around JavaScript and CSS can get pretty heated, with some going to some low places. If you feel CSS is broken, you are not stupid. CSS has a lot of quirks, and that’s why it can be difficult for those who don’t know it well yet.

Hell, I’ve been writing CSS for ten years, and I have many moments of frustration with it. Often, it’s because I didn’t plan my project correctly. CSS can be very unforgiving in that way.

Still, CSS is not broken. I couldn’t agree more with Keith’s last paragraph:

CSS isn’t broken. But it does require study and skill. It does require careful thought. As with anything in programming, you can make a mess of the code. Sure, blaming the language is the easy way out. But when your JavaScript is confusing and buggy, you know it’s not the language’s fault.

If you don’t want to learn CSS and its quirks, that’s fine! Let those of us who love CSS and don’t want to learn JavaScript’s quirks write it. In the meantime, we’ve got to stop calling each other idiots (or worse) for disliking a computer language. It’s not constructive and hinders all the amazing things we could be doing together.