Do you need Sass?

Draft Episode 15: Why Sass? raises a very interesting question. "Do you really have to use Sass?"

by Dale Sande

For the most part, no you don't need Sass to get work done. The internet has been around for a long time and CSS was here WAY before Sass and people were able to get work done. But is this really a valid argument?

You can say the same for any new development language, innovation or advancement. Do we need Python, Ruby, C#, Clojure, Node or Dart? After all we have C, Perl, PHP, Java and Javascript. Do we need new languages to do the same things? But are we really doing the same things?

Innovation pushes us all forward

In the internet age, computer languages have evolved at a pace unparalleled by any other time in computing history. Why? It's an easy assumption to say that more people are involved in solving the problem. You could also say that there are more people pooling together with amazing talents to solve unique issues. And then there is the old proverb, "Necessity is the mother of invention."

There are times I think back to the early 90s when I started designing/developing web sites. I think of the primitive tools we used, the code patterns we clung too and the languages we coded with (I'm looking at you ASP/VBScript). We aspired to make things better and become more efficient at our jobs. We began to crate processes, identify shortcomings and engineer newer and better solutions. We quickly moved past vanilla HTML. In short, we innovated.

Who really writes HTML?

Browsers still require basically the same HTML and CSS that we were given in the early 90s. These core languages to the web have seen little in in the way of major revisions. Short of making a quick demo, who really writes HTML anymore? As soon as the shit gets real, it's not HTML. Sure there is HTML'ish syntax in the presentation, but it's not strictly HTML.

HTML has given way to templating languages and HTML preprocessors. Every primary development language has it's own flavor of templating HTML. And yet, there was never the issue raised if we needed these or not. No one spoke out and said, "What's wrong with HTML?" It was simply excepted as a necessary extension of the language. Hell do you even know what PHP stands for? Yup, it's PHP: Hypertext Preprocessor. It's true.

Forbidden territory

Why is CSS perceived as special? After all, there is nothing special about the language that precludes itself from the HTML templating argument. While we are required to produce static CSS, there is no law that states that we must write all our code this way. And I would argue that the requirement for static CSS is a moving target as well.

I decree this notion that CSS is off limits is false.

Do we need Sass?

Yes! I profoundly say that we as a community of modern web developers need Sass. We need Sass from the perspective that it is pushing the conversation forward for writing better code. Sure there is the W3C for maintaining standards (to keep browsers in line) and then Webkit pushing the boundaries on features. But the way CSS is written, edited and managed, is not really being rethought. Sass challenges that thought.

We need a modern CSS

Today's web sites and apps have come a long way in the internet's short lifespan. While engineering HTML has been minimized by it's grand number of templating languages, before Sass there was nothing to help us with CSS. Stylesheet documents continue to grow in size, increasing their complexity and reducing the opportunity for maintainable and scaleable code. CSS in it's current spec does not provide any solutions for manipulating, modularizing or maintaining code.

Sass is part of a family of languages that innovate and push for evolution. Sass is written not by spec creators or boards that 'discuss' what needs to happen. Sass is written by talented developers that use CSS and understand it's limitations. Sass is given to us as a gift by people who don't intend to replace CSS, but to address shortcomings in today's development environment.

And with the W3C watching, you can be sure if you aren't writing Sass today, you will be tomorrow.