The rise of the engineers, the grunt hammer and artisanal analogue CSS

March 01, 2016

Lately a lot of people have been talking about the unnecessarily increasing complexity of building websites. There’s been a very understandable reaction to overuse of JavaScript frameworks, and it is true that build tools can be overwhelming and/or lead to a whole lot of yak shaving.

It’s no coincidence that this is happening at the same time that more people who write code for the web are calling themselves engineers; to some people it may feel like some of the artistry is being engineered out of the web.

Something else that feels related to me is the rise in popularity of static site generators like Jekyll. We’re seeing some of the downsides of the monolithic CMS, and the idea of being able to put a site on cheap or free hosting, and have it serve large audiences without the need for sysadmins or database tuning, is enormously appealing.

Pardon the pun, but it feels analogous to the way some people feel about digital photography or music. In this information-saturated world, I think that there’s a connection between ideas like digital detox and this apparent pendulum swing back towards simplicity and older technology.

I’m slightly conflicted about it all. I think there is a certain indefinable warmth in analogue technology. I understand people preferring vinyl to MP3, but the cassette revival makes no sense at all to me.

ProTools and Photoshop have had an enormous influence on music and photography. Being able to digitally manipulate sound and images on a relatively inexpensive, portable device is an enormously powerful democratising force. Having said that, a lot of the people using them are churning out cookie-cutter rubbish. Besides, sometimes having limitations does help you to be more creative.

Similarly, there’s a lot to be said for the slow food movement, but it’s expensive and takes a long time for your food to arrive.

But don’t forget the frustrations we felt when we lived in the good old analogue days. There’s a certain amount of nostalgia that fails to recognise the reasons why people wanted to go digital in the first place.

It was a pain to wait a week for your photos to come back from the lab. It was a pain that you’d have to spend a lot of money on film and developing. It was a pain that you were limited to 24 or 36 shots before having to reload your camera.

We’ve reached a point where a lot of us are noticing some of the downsides of digital, but how many people would go back to analogue?

Similarly, when I’ve gone back to writing vanilla CSS, I’ve remembered why I was so eager to embrace preprocessing.

Having colours defined in a million places in the styles is a pain. Not being able to use mixins is a pain. Dealing with vendor prefixes is a pain. Repeating selectors when you could (judiciously) nest them is a pain.

It’s easy to mock the idea of people getting hipsterish about artisanal CSS, but it’s true that “technology doesn’t necessarily make it better”. Sometimes fancy new toys can suck you down all kinds of unnecessary rabbit holes and get in the way of getting stuff done.

But for me, the point is that we shouldn’t obsess over Grunt and Gulp and all the other new shiny things. They’re just tools - don’t get hung up on them, but be aware of how useful they can be when used appropriately. But similarly, you shouldn’t just reach for your hammer without checking that the problem is a nail.