There have long been multiple implementations of Sass. Most notably, the canonical Ruby version, now at 3.5.6. Then there is LibSass, the C++ version, which is at version 3.4 and…
Current LibSass 3.4 should be compatible with Sass 3.4.
LibSass is notable because it powers the majority of Sass ports. Over 30 of them, apparently, including the most popular one: node-sass, which provides Sass for the bajillion projects out there that wanna run an npm-y JavaScript-based dev environment and avoid the Ruby dependency.
It’s a little unfortunate LibSass isn’t up-to-date with current canonical Sass, but I think it’s on freeze as it’s been stated that LibSass will never be canonical Sass. Update: it’s not on freeze. It was actually Ruby Sass that was once on freeze with the intention of allowing LibSass to catch up. As I write, LibSass is at 3.5.2, so it’s close.
Dart Sass just went 1.0.0, and is now 100% compatible with Ruby Sass 3.5.6. They announced that Ruby Sass has now begun deprecation and—after March 26th, 2019—will no longer be maintained.
The future of Dart Sass looks pretty good:
Another big announcement: as of today, I'm working full-time on @SassCSS. This has been a goal for my entire career and I'm thrilled that it's finally happening
— Blue Gay Carmen San Diego (@nex3) April 3, 2018
The Dart Sass compatibility is also great, because node-sass can now switch to Dart Sass bindings and become entirely up to date. Will it? I have no idea. The maintainer of LibSass and node-sass is the same person (Michael Mifsud), and with 30+ bindings to LibSass, I can’t imagine LibSass just going away. I guess we’ll just have to wait and see a while. I gotta imagine someone will jump on making a node version of Dart Sass one way or another.
I, for one, would love to see a Web Worker version.
I guess it is early stages, but Dart Sass is not quite as easy to get up and running for beginners to front-end web development as Ruby Sass is.
The new Sass install page no longer lists the Ruby way to install, it just lists the various ways to install Dart Sass (Not including GUI tools). Dart Sass in its current form can not even watch files via a simple command line command like Ruby Sass can.
I am sure over the next 12 months the Sass people will iron out the bugs, I just wished that they had waited until using Dart Sass was as easy to use as using Ruby Sass before they changed there install instructions.
I teach beginners how to use Sass, and the easier it is get up and running the better. I realize for experienced Devs this is not an issue as they will use some kind of build tool with watch capabilities anyways, but for beginners new to development just wanting to get a web page up with minimal setup and installation it can be a challenge. With Ruby Sass they could just “gem install sass” (at least on a Mac) and “sass –watch input:output” and away they go.
Good Bye Ruby Sass I will miss you!
LibSass and Node Sass maintainer here. A few notable amendments:
LibSass has been at 3.5 compatibility for a while now, and those features are in the latest Node Sass releases for everyone to enjoy.
Ruby Sass, not LibSass, was previously on feature freeze in order to allow LibSass to catch up.
We actively working on upcoming 3.6 features, some of which have already landed. We’re also investigating a pure web assembly implementation because we’re huge fans of the web :D
And this is why I think focusing on the fundamentals of a technology instead of wrappers is the best long term solution. Consider how many things Google has shutdown that we relied on over the years, yet the core website technologies from 20 years ago almost all still work.
I can’t figure out how to set it up. I downloaded & extracted the zip file and edited my path variable, but neither
sass
nordart-sass
are recognized in the console. I thought maybe I needed to run the batch file, but that didn’t change a thing, ran the commands from inside the folder, still nothing.I had the same problem. What you want to make sure is that your path leads to just the “dart-sass” folder and NOT the “src” file located inside that folder. That was the mistake I made. Once I made sure the path lead just to the “dart-sass” folder it worked fine.
Thanks Michael, it works now.
Yea, I can’t figure out how to get it to “watch”/compile my scss to my css file. Ruby was so easy. If someone knows how to do it, please let me know!
Yeah according to this post ( http://sass.logdown.com/posts/7081811 ) on the Sass blog, as of now the –watch command is not supported with Dart Sass, but they say it is a high priority to add it.
This is why I do not understand why they currently (today – April 18, 2018) list Dart Sass as the official way to install Sass on the sass-lang web site (when you click the install link in the main navigation it tells you to use Dart Sass), when Dart Sass does not even have a simple –watch command. This will throw off people new to Sass. Why did they not wait until they had built a –watch command before changing the web site to list Dart Sass as the official way to install Sass.
To be clear you can of course compile Sass files to CSS files from the command line using Dart Sass, you just have to manually enter the compile command each time you want to compile, which is usually not a very productive way to work. Also according to the docs I don’t think their is a way to compile an entire folder of Sass files, you have to compile each Sass file one by one if you have more than one main Sass file (not including partial files imported into a main Sass file).
SO frustrating! So how do I get it to compile?