| ThinkDigit Home |
|
||||||||||||
|
|||||||||||||
|
|||||||||||||
|
||||||||||||
|
If future additions to CSS will be via modules, will there ever be a CSS4? What would necessitate such an increment? Could features be dropped / clarified?
Right, CSS3 is very different form the CSS 2 and CSS 1 were developed. They were single specifications. CSS3 being modular, it makes it hard to answer the question, when will CSS3 be done, because it will, never, really be done. Also with time, some of the stuff, like rounded borders, may be people would want to do more complex stuff with rounded borders. May be for that, there could be a CSS4. In some areas, for example selectors, the way we select elements, we've already started work on a CSS4 module. But that's mainly because the CSS3 module is done. It's working perfectly fine, and we don't want to touch it. When we want more functionality, we'll have to develop further and we'll need a version 4. We are going to see these things be developed in parallel. The big focus now, the buzzword is really CSS3, along with HTML5. Those two go hand in hand. HTML5 will make the web more smart and CSS3 will make it more beautiful. That's a fantastic combination: smart and beautiful. But there will be HTML6 and CSS4 as well.
While CSS continues to gain new features, its core syntax has remained pretty much the same. As such we now have SCSS and LESS. Is there any chance CSS will take a similar route in the future in terms of syntax? Or perhaps a syntax similar to JSON so that it can be parsed with greater ease.
Yes those are frameworks for writing CSS. I think they make sense for preprocessing. That is allowing authors to use more compact code on the server side, and then they parse that code to expand it into normal CSS. I think some of those ideas are very good. May be we should have even had them in CSS in the first place. But the focus in the beginning was to make it very simple. We had to make it very simple for browsers to support these things. We couldn't put in all the features we wanted. Like, for example, border radius was something where I said, no we can't do that! One thing was I didnt like the design, but the other thing was that it would have been expensive for browsers to implement it. Often we are then being asked, should we change the CSS syntax? Put these things to CSS itself. May be we should, I don't know. Sometimes it's hard to do that though, because if you change the language now, you could make incompatible additions. Old browsers such as IE 6,7,8 and Opera 11 and such browsers will not be able to understand the new code. So we tend to be a bit conservative there and not change the code too often.
So you plan to retain CSS the way it is?
I wouldn't say keep it the way it is, because we are adding things all the time. But we have to be sure that when we make the changes, it is really worth what we're doing. That the benefits far outweigh the costs. There is also a limit to how many things we can put in there. There's limit to what our developers can add support for. It's not just programming, we also have to do testing. We have to do education, and make sure these things are used correctly. I can show you an example. The page for the Acid test is rendered differently by different browsers. It doesnt really matter which browser is doing it right or wrong or best or worst. The point is that since they look different, the author is going to have problems. This is where we really need feedback from people who are reading the specifications, and writing test pages and early documentation to make sure that the browsers do it right. It's much cheaper for everyone, it's much better for everyone if we can fix those problems early on in the development instead of late. What we saw with IE4, 5 and 6 was that they didn't fix the bugs. They left the bugs in. That almost created two languages. One Microsoft dialect and one open and standardised.
So one of the things we challenged Microsoft when they announced IE7 was to fix the bugs in there and not just think of adding new features of changing the user interface. You really need to get your standard support better. That's when we launched this Acid 2 page where every pixel on the screen is a test. So it looks fine on other browsers, but in IE 6 it looks really red like a bloody face. We won't say we intentionally made it that way, but we probably just highlighted the red to scare people a bit (smiles). Then IE 7 came out and it looked a little better, but the magical thing happened. In IE 8 they fixed it! They somehow felt they had to support this test. This is an example of one web page changing how a giant behaves. This is due to the continued pressure from the web community. Microsoft was always asked when they presented their new browser when they would support Acid 2. They realised they had to deal with it. It was just too embarrassing not to do so. I believe really in the web community, as far as keeping browsers honest. I think we need a strong web community to make sure that browsers develop in the right direction at least in terms of standards.
CSS is now being used even outside of web applications, for example in GTK+. What are your thoughts on that? Is it a testament to the popularity of CSS, or its versatility?
Well, in order to make something a programming platform, you need a programming language as well, and CSS is not a programming language. You have a programming language for the web and it's called JavaScript. And along with HTML and CSS, those three are really the foundation of the web. That's what those who want to write web content will have to deal with. It's a little bit of a competition between CSS and JavaScript I would say, because we try to get some of the things people do in JavaScript into the CSS side. For example, animation and similar effects are now part of CSS. We make it easier to do things. But then we work together. We need JavaScript, we need a programming language to offer programmers what they would like to have. The biggest competition is probably native apps. We believe instead of getting into a contract with an Apple or a Google, it is better for developers to use the web as a platform. They can reach more people that way. But in order to make them come to the web, we need to offer them something that they want. For example on the iPhone they've been able to talk to the camera.
What do you feel are some of the most exciting features that might come to CSS?
Microsoft did something in 1995. They donated a bunch of fonts to the web. Anyone could use them. They didn't have to be using Windows. You could use Linux or Mac and still be able to use those fonts. So these fonts are typically installed on every computer. So a lot of the stuff we read using western languages use these fonts. But they've been used so much that we now want to see some change. So we've now added support for web fonts. So from within CSS, instead of pointing to a type font, you can link to a font URL. That means you can fetch a font from the web, download it and use it to display your page. Again it's all very simple, something like one and a half line of code. This would make the web more beautiful and a visually rich place. A lot of stuff that used to be done in JavaScript is now moving towards CSS. This is now evident in the way forms would be designed. A developer no longer needs to code the forms in place, but just use a couple of lines of code and the form is ready. Also, Wikipedia announced that it added 11 Indic languages using web fonts, so that's another encouraging development. Similarly, such innovations will change the way we experience content on the web. [Opera evangelist Shwetank adds] Even with languages such as Hindi, sometimes it gets difficult to read online. What these fonts can do is make it easier to read. CDAC has released some fonts that make it easier to read. So, it's not just about style, but also about readability when it comes to web fonts.


