Is there any value in people who cannot write JavaScript?
Mandy Michael
17.1K132

Is a drummer a musician? There are no scales! How about a singer? There are no instruments!

I disagree strongly with commenters who claim that HTML/CSS is not “programming”. I’ve heard that assertion throughout my career as a full-stack developer, and frankly, while I think it was true 20 years ago, it’s not true now. (And yes, I’ve written and shipped actual real code for all of those 20+ years, from PHP and JavaScript to C++ to ObjectiveC to Ruby, and various other flavors of the week.) If you make the claim that you “know” HTML/CSS and it isn’t “programming”, I challenge you to explain, without looking it up, how you’d calculate the position of an element in a keyframe animation. And then tell me it’s not “programming”.

What’s the bar for being a “real” programming language? Turing completeness? HTML5/CSS3 are Turing complete. What else? Conditionals? You’ll recognize that there are plenty of conditionals if you understand responsive development. Variables? Selectors and pseudo-classes already have the properties of variables, or constants, depending on how you use them. Functions? We’ve got calc(), we’ve got attr()…and a bunch more. Regex? Write ’em in my sleep, use ’em in my CSS. Math? Yup, got plenty of that, too. The skills of applying complex logic by way of a circumscribed computer language is “computer programming”, and that is what good HTML/CSS engineers do.

Anyone can write “Hello world” in Go. Anyone can do basic fonts and colors with CSS. Creating animations and shapes and conditional layouts in CSS is as real a “programming” task as it was to do in Postscript — perhaps more challenging, since there is not a single standard implementation of the language (different modern browsers interpret CSS differently, and as a professional, one must understand and be able to write around those differences). Also, HTML/CSS developers don’t have the luxury of compilers or interpreters that throw errors when they write bugs. Sometimes, you’ll see the error. Sometimes you won’t, until it’s too late. Just like any software development project.

CSS is a big language, and it’s hard to do well — don’t mistake something that looks “simple” for something that’s “easy” (although I’d make the case that CSS and HTML are no longer “simple”, either). There are tools that will write basic bad HTML and CSS that looks…OK. There are no tools that will write complex good HTML and CSS that does any meaningful work. That’s done by programmers. It’s not OK to have bad HTML and CSS in a professional project. And if you have simple needs, perhaps an entry-level “coder” can write your CSS for you. But it’s critically important than any web project of real scale and value have professional, fluent HTML and CSS developers working as equal development partners with backend developers.

Like what you read? Give Kerri Hicks a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.