I hope someone reads this and decides to Google 'css preprocessors' and saves 1,000,000 minutes of their life using plain jane css.
Because preprocessors suck ass and only idiots who are too stupid to write real code use them
I know a lot of people thinks that preprocessors take a lot of time consuming but you're missing a lot of points.
First of all, if you're some type of decent developer you're going to minify your CSS so you'll have to install Gulp or Grunt anyway.
Second, you just need to configure it just once it might take an hour to configure it if you haven't used any preprocessors before but thats it.
And Third, some preprocessors take longer to configure like SASS or SCSS but if you use Stylus you just literally have to install Node, and NPM stylus and you can run a watcher that already comes with stylus and that's it. Like 15min tops and is only once that you have to install it (globally in your computer).
It saves a lot of time, could be hours or days at the end of a project, so saying that it is a waste of time to configure it is just stupid. And if you're still thinking that you can download PREPROS that does all of that and you can use prefixer, minify, etc without installing anything extra.
Heya ruffled feathers... So on Tools that make our lives a bit simpler: It is good to learn new things and add them to a portfolio of skills - especially if they are in demand. The more style sheets are added to a website, the more difficult it may become to manage. There are various tools (libraries) included with pre processors that may allow you to manage CSS files and track errors that occur at runtime because of incorrect selectors, etc (like GRUNT and GULP). Some environments include easy access to these tools. I agree that it may be better to try and learn and understand CSS without a preprocessor - mainly because the same rules will still apply (whether or not you use a preprocessor), and the parsing occurs when your project compiles... So a developer may not gain much input or insight by using a preprocessor, although this may just have been my experience with it?
Simple answer. Preprocessors don't fit within every development process. We experimented with SASS in our office and found that it added more time to our dev process. Not to mention our projects change weekly and typically are completely rebuilt for that particular campaign.
When the new CSS spec is released into the wild, we'll be able to use vars and such allowing us to forego the need for preprocessors altogether.
Same reason there are still websites that heavily rely on unstructured code heavily using jQuery.
Every little thing you add to a project increases its complexity. That can be worth it when the project will otherwise become less maintainable or harder to reason about in the abstract, but sometimes it's not worth it.
Cheng Lou gave a brilliant talk on this problem at React Europe this year: https://www.youtube.com/watch?v=mVVNJKv9esE
The talk is very abstract (he even jokes about that observation in the talk itself) but I think it's very applicable to this and similar questions.
The other obvious factor is that not every person writing CSS (or JS or anything) is a professional designer/developer doing that every day as part of their full-time job. To those people tools are something that gets in the way. If you understand just enough to know how to make changes to a few files and shove them to the server over FTP it's a huge step to add even the most basic tooling. To clarify, in order to use proper tooling the way most people expect it you need:
Switching from "just edit this file and throw it on the server" to THAT can be daunting and it requires actually taking the time to learn and understand all the moving parts you are adding (and why they have to be there and how they still make your life better despite seemingly providing no direct benefit right now).
I'm not saying people shouldn't switch, but with real humans working under real restrictions like deadlines and having a life outside work... I think it's at least understandable that some stick to the devil they know.
EDIT: But really, just use Webpack and CSS modules. The future is here and it's brilliant.
I use preprocessors in pretty much all of my projects, however, there are two important reasons not to use a preprocessor:
When you're learning CSS - This is the most important. If you don't know CSS, don't use a preprocessor. Period. Move on. This falls into the same category as learning JQuery instead of learning JavaScript. I love CSS preprocessors, but they can obfuscate some very important aspects of CSS in favor of speed and ease of use.
I used to have the same problem with colleagues and friends talking about CoffeeScript like it was the second coming and then realizing that they didn't actually know what it was doing in the background and how to write the equivalent functions in Vanilla JS.
If you know CSS, by all means LESS and SASS it up; if not, crack a book :)
Sometimes you just don't need one - There are plenty of times when I'm working on a simple site or just stubbing out something really quick that it'd actually take more time to get your environment up and running than just writing some CSS in notepad. Sometimes simplest is best.
The thing with projects is that you have to deliver it in time and the client doesn't really care what you did behind the scenes as long as you have the product ready and working on the release date. Sometimes, adding new tools to the project might seem a bad idea, especially when the team is not up to speed with the latest trends.
Not everyone works in a team which has the time and resources to spend on trying out new stuff on each project.
Some people are not really motivated, don't have the passion or the burning desire to learn it or work with yet another tool. Saying "I want to do this" and actually doing it (or at least start somewhere) is different
Me personally, I want to experiment with a lot of tools and technologies for projects and even promote stuff for usage / giving ideas but it's not as simple as "OK let's do it right away", it takes time.
Remember that you add a lot more complexity for each tool or technology you use. While it helps you solve a problem easier, it takes your energy faster. The same can be said with architecting applications like they are huge like Amazon but it ends up being a mainly CRUD app.
There are probably a lot more reasons for it but these are the ones that come to my mind first.
Because I don't have time to refactor my CSS to make them preprocessor ready. Yes, I've looked into it. But just when I was about to start, I got about two-years' worth of new feature requests to implement. Someday, maybe...
It depends.. I've worked with LESS, but now I'm back to vanilla. The ongoing project I'm working isn't that complex, so a preprocessor isn't that necessary.
I'm hoping that variables and mixins will come to CSS nativel! :)
Probably because a lot of developers get stuck in time... don't evolve...
I'm not sure what I should answer here, but I'm invited. I always use SCSS. Can't say why some don't, maybe it's not complex solutions, why add complexity then. If you use BEM a pre processor isn't that necessary.
dsfsdf
Why are there humans who still use preprocessors? Preprocessors are for morons.