A consistent theme on tech Twitter is dogmatism and for some, the incessant need to be “right”. With that as a basis, opinions on programming languages, frameworks and methodologies are unsurprisingly fraught and often, unproductive.
I thought I’d just jot down some thoughts and advice around this because the cycles of “hot drama” events on Twitter are fairly common. I hope by the end of this article, you might approach these events with more a pragmatic outlook, if you don’t already. I also hope that if you’re getting into tech, you’ll see that often the loudest voices are not necessarily the most representative.
Dogmatic statementspermalink
“Best practices” don’t actually work.
This is a key heading on the homepage of Tailwind CSS, at the time of writing. It’s completely and almost hilariously wrong, but I get the provocative angle they are going for. When I first read this heading when they launched the site last year, it was also followed by some extremely creepy supporting copy which thankfully is gone.
Let’s cut right into phrases like this though. When I see a heading like the quoted one, above: it reads like inexperience and naivety, rather than respectful authority. There’s clearly money to be made for the creators of Tailwind—sure, we’ve all gotta make money—but personally, I prefer to do so in a more honest way.
Why is this heading completely inaccurate?
CSS best practices are called such for a reason: they work for the vast majority of cases and are backed by years of research and development by lots of very smart people. For contrast: Tailwind CSS is created by a couple of dudes.
What I recommend you always remember is that the hot tech of the day is very often totally non-representative of the wider web industry. I wrote about this, in the context of React, last year. Where that particular family of frameworks are concerned: they probably make up at best, a single digit percentage of the web as a whole.
With this context in mind: when someone says “best practices don’t work”, or similar—without a caveat of “in our particular situation”—then remember: this is likely a statement of naivety and I would strongly recommend dismissing it.
My approach is right and your approach is wrongpermalink
I’ve been working in the web, professionally, for around 12 years now and I can tell you—even with that reasonably modest amount of experience—both of these are wrong because to paraphrase the great Rachel Andrew: if it works, it is right.
I get tired of seeing the sort of dogmatism and gatekeeping that surrounds “this is wrong”. Again, these statements—which I have no doubt I made myself in my early career—are statements of naivety and inexperience. I know I was certainly naive and inexperienced when I made statements like this.
CSS frameworks and methodologies tend to find themselves in the battlefield in this context and gosh don’t I just know that, being the creator of CUBE CSS. My Twitter mentions are filled with “CUBE CSS is the right way to do things, not X”, as a reply to the same ol’ sort of thread.
Let me tell you right now, as the creator of CUBE CSS, that it is categorically not the right way to do things. I even mention in the documentation that CUBE CSS is a collection of principles that can be individually used and you certainly don’t have to conform to a particular technology choice. CUBE CSS very much works for me in my projects and heck, I’ve been blown away at the hundreds, or even thousands of people that it also helps, but again, this does not mean it is the right way to do things. It just means that it’s helpful for certain people, in certain contexts.
Wrapping uppermalink
This post is written in response to a wave of “hot drama” that started 2021 Tech Twitter off, around Tailwind and this article. I thought the article covered some interesting ground and certainly found myself nodding along in places.
For the record: I think Tailwind is a great framework. I’ve used it very successfully as a complement to existing CSS—specifically maintaining design token output. For proper client work, though, I personally prefer to lean into Sass and actual CSS best practices.
Remember, that’s my preference.