CSS is criticized for not moving fast enough, or not moving in directions that web developers would like to see.
I am one of the new working group members, and I really want it to be relevant. I actually believe it is, and it is about as relevant as it can be…
Standard is as good as its implementations
What surprises me in the attacks on CSS are two things:
- People talk about CSS standards being slow to appear, but not about browsers not having the desired features
- Microsoft is not blamed often enough
What is CSS after all? It is a language and a set of properties. It is easy to add a property. It is about as easy to describe a property for italics ("font-style:italic") as it is for float ("float:left") but there is a world of difference in what it takes to implement them.
The reason CSS1 developed so fast in the beginning is that it was a new way to express the features that already existed. CSS2 was a step ahead, adding features that were highly desirable, existed in other applications, but not all were in browsers of that time. It took longer to become a reality, because the features had to be implemented. Same applies to CSS3 – everything there involves new development work.
Now, is it reasonable that CSS2 was introduced in 1998, but it took until 2007 for CSS2.1 to become a Candidate Recommendation and to the date it has zero fully compliant implementations?
No, it is not reasonable. How did it happen? Well, the last decade had pretty dark times for browser world and we are still recovering. Right about the time CSS2 showed up, Netscape has left the scene. It took a few years for Firefox to pick up the speed. Then IE has checked out for a few years (I am not going to explain or defend the latter, but it did happen)…
It turns out on the web, standards only matter if they are implemented completely and everywhere. As much as Firefox supporters may wish IE would disappear, or as much some people may think Microsoft would desire same for Firefox, neither would be good and neither is going to happen. For any new feature for the web we have to all work together implementing it. If one wheel is turning slower the others have to wait. Here is where I expect Microsoft (as the last one to be checked out) to be blamed for lack of new exciting developments in CSS for years. We've changed but it is part of why we are where we are.
The CSS working group could have designed CSS3, CSS4 or CSS5 in these years, but it is not implementing any of the new features. It can recommend a feature, then wait for implementers to pick it up. It can describe something that is already implemented and document it so that others can implement it the same way. Both approaches work, but neither is a guarantee the feature is adopted. Remember, it only matters if everybody has it.
Now, dark times are over (at least the dark times I am talking about). What is going to happen to CSS? Will anything coming from CSS be relevant? Will it happen soon enough? Is it time to forget it and look elsewhere?
CSS working group is relevant
I actually think CSS working group is productive. It is about efficient as it can be. Overall progress is still limited by implementations, a lot of it is limited by IE (blame Microsoft again). I can't say anything at this point about what it will unblock first (sorry), but trust me, there is an infinitely huge difference between what we do now and doing absolutely nothing as of 5 years ago.
That is not to say CSS WG is perfect. There is criticism, from outside and from inside. Here is my take on some of its issues:
CSS WG works in secret? (it doesn't)
Here the criticism is heard, and the group has changed. In the half a year since I've joined the working group it has become more open. All technical discussions are held in a public mailing list, anything that happens in working group is reported there promptly. I'll admit I was one of the people who were reluctant to move to a more open forum. I think it was more of inertia than principle. Current public forum works pretty well.
CSS3 has too much to make sense? (yes and no)
CSS3 is in fact easy to get lost in. The latest approach from the WG is to create profiles that group together relevant specs (see "CSS snapshot 2007", a.k.a. "Beijing profile". The definition of "relevant" is not precise yet (as can be seen from Fantasai's note here). Is it most stable specs? Most popular? Most implemented? Should there be profiles for all of the above? I don't think we've sorted that out so far.
One of the issues David Baron points at is the appearance of WG endorsement for specs on TR page. I agree there should be an obvious difference between a working draft and a recommendation. As much as I like to see my own grid positioning module there I do want readers to have a way to find its importance relative to other documents. I am not sure what is the best way to achieve that. Not publishing working drafts is against the desire of being public. Creating more folders for different levels of consensus doesn't make sense. Prioritizing drafts by who plans to implement them is problematic for a number of reasons (not all companies would make such promises, and if they do they can't be trusted until implementation is complete). We can use some new ideas here…
CSS3 doesn't have enough? (it never will)
Certainly, CSS3 doesn't include every feature imaginable, and there are many demands for one feature or another. Not all features will or should be in CSS though. The art of good design is to achieve the most with doing the least.
For example inheritance is a great feature but it is unlikely to ever make it to CSS because it already use a different way of combining styles. Adding inheritance would greatly multiply complexity without making possible something that is not possible now. (BTW I like inheritance, it is the main reason WPF has its own style system which I helped design; inheritance has advantages over cascading in terms of toolability, but having both inheritance and cascading is just very scary).
But at the same time CSS3 space can be seen as a collection of ideas, as subset of which is gradually transformed into implementable specifications. It can always take more ideas, and it does grow. The real issue here is on how fast it is can evolve, and I've talked about that already…
WG is working on wrong issues? (I disagree)
Perhaps the only thing I disagree with in David Baron's post is that we are not focusing on right concepts. I do have interest in printing and features that bring the web and paper closer, but I don't think it is has to happen at the cost of user interface. As long as somebody is motivated enough to promote UI features in CSS it will get equal attention (it certainly will have mine).
Did I say implementations matter?
That's what makes a difference in where standards go. Unfortunately not all browsers will always say in advance what they are doing. Pretty much only Mozilla can do that. But as far as I can tell from news, blogs, betas and generally reading between the lines, exciting stuff is being developed. That means good news for future of CSS…