DEV Community

Discussion on: 8 SCSS Best Practices to Keep in Mind

 
gilfewster profile image
Gil Fewster

Why is CSS not a programming language?

Thread Thread
 
joelbonetr profile image
JoelBonetR πŸ₯‡ • Edited

HTML and CSS are not programming languages because HTML and CSS are not generally β€œexecuted” by a computer. They are parsed by an engine, and then algorithms stored in a renderer determine execution tasks.

When you write <h1>foo</h1> , you’re not programming that element. You are denoting a piece of data. You haven’t β€œinstructed” the browser to execute a task.

Likewise with CSS, anyone who’s written it for longer than 5 minutes knows that even something as simple as float: left; may not do that just because you asked. The browser will parse your instruction, and follow a set of algorithms over which you have no control to determine if and how something floats.

By the way you can't do anything different from a static webpage with HTML and CSS only, so that's not too different to what you can achieve using photoshop or microsoft word (you'll get a static content as result).

*Static meaning you can not interact with this view for store, modify or delete anything; no login, no user profile, no custom theme, no personal data... You can only read (view) the result "as is".

Thread Thread
 
gilfewster profile image
Gil Fewster

CSS may not be executed directly, but it directly affects those algorithmically determined execution tasks. CSS is used to instruct, direct or modify the application's output.

You can certainly modify content with just HTML and CSS. CSS also has functions, variables, mathematical functions and boolean logic.

We can get pedantic about strict definitions of execution, runtime interpreters and the like if you wish, but why quibble?

Thread Thread
 
joelbonetr profile image
JoelBonetR πŸ₯‡ • Edited

That's not a matter of discussion usually. You can not code an application using plain CSS, you cannot add functionality, only describe how the information is painted and styled πŸ€·πŸ»β€β™€οΈ
If you add enough features on CSS (server calls and handling of responses for example) it can become a programming language but you already have JavaScript for that tasks, which is a programming language.