Specializing yourself into a corner

I'm a Sass addict. I will be the first to admit it and I can't imagine myself designing anything web related without Sass and Compass. These tools are awesome and make my life easy but they fragment the once blissfully uniform front end development landscape. Before, we had just HTML, CSS, and JavaScript but now those languages are fragmented into Sass, Stylus, LESS, CoffeeScript as well as various code management tools like Compass and Bower.

Diversity is fantastic but in the end, we are all just trying to share HTML, CSS, and JavaScript. It is frustrating writing a Compass plugin to solve a common Style issue only to lock out a large portion of your audience that not only doesn't use Sass, but doesn't use Compass either. I have been working on Compass extensions so long that I keep locking myself into the tech down the stack. Porting some of the Compass extensions that I work on to regular Sass and variations of Sass would be extremely difficult because I have taken advantage of Ruby to achieve tasks that the performance of Sass alone would have prevented.

I'm not saying these tools aren't valuable because they absolutely are. They are just introducing fragmentation into our community and I am noticing how much of a part of it I have become. I want to share my code with everyone who writes CSS, not a subset of that group. On top of that I wonder what I am missing out on from other subsets of the community. How are other developers managing their front end tools? What techniques are they using to solve their problems? How do I tap into new audiences when I am writing a tool? These are hard issues and the back-end community has struggled with language diversity for a while. It is a new problem for the front end community and it's a bigger problem for us. It's a bigger problem because not just our community but the languages we use are built on the shoulders of web standards giants like Jeffrey Zeldman and Eric Meyer who talked, shared, and fought hard to get one unified community around front-end languages. Lets work to hold this community together.


Update: This post is getting a lot of traction and I should have been more clear on how I feel about preprocessing in general. I still use and highly recommend Sass and Compass. I have found writing Compass specific plugins has prevented people from using my code. The benefits of using preprocessors is still high but sharing that code back into the community becomes more difficult the further away from the core language you write. For me, I am two degrees away from CSS as I go through Sass with some additional Ruby. I am looking for ways to retool my plugins so they just require Sass and this is proving to be difficult in some cases.