Bert Bos is a computer scientist, and he is also one of the founders of CSS. During the development of CSS, Bos was one of the first people to work with Håkon Wium Lie (the father of CSS). In 1996, he joined the world Wide Web Consortium, responsible for the development of CSS. He has served as chairman of the CSS Working Group and is now a representative of the Working Group.
Prior to that, Bert developed the Argo browser independently during the University of Groningen study, a test application developed for his style sheet proposal. Argo Browser can handle its own SSP stylesheet language, and with this new browser language, he creates a CSS standard. Then lie and BOS together to develop CSS into a recommendation.
Interview: Gaobo | Finishing: Li Hope
Q: Mr. Bert, you have been to China many times. How do you feel about the recent changes occurring in Chinese web developers?
I have been to Beijing for 2008 years and I have been to Hong Kong and Shenzhen before. Although China started later, more and more companies are now joining the web, including browser companies and search companies. Although China is starting late compared to the United States, Europe, and Australia, developers now looking at China are no different from the rest of the world's developers, who do the same patching, asking similar questions and having the same layout problems.
Q: Do you think China's developers are late, but now they have caught up?
Yes. Judging from the companies, although Chinese developers have been lagging behind for some time, they have now caught up and are technically in sync.
Q: Now CSS has become an integral part of web development, but in fact, the concept of CSS is not necessarily in the beginning (already has the HTML description content, with JavaScript description behavior and interaction), it can be said to have been invented from scratch, Do you, as one of the founders of CSS, tell us how to generate the idea of a style sheet in the early stages of development? What was the story of the early development process?
Håkon Wium Lie and I invented CSS, but we didn't invent the concept of style sheets, a concept that existed long ago. What we invented is just a language that makes Web pages more simple to develop. However, the concept of documenting and structuring content with style sheets is much earlier than this. In a book, what kind of font you want, what kind of picture, how big the edge, is the style sheet to do, these concepts have existed for a long time. The electronic style sheet, which is expressed in computer language, has appeared in the middle of the 80 century.
Let's just say that the ML came before HTML, and HTML was built on XML, and XML had a style sheet long ago. We studied the concept of the early XML stylesheet, and also studied the concept of a style sheet that was still evolving, and drew a lot of good ideas from it. In addition, we met the inventor of HTML at a conference where we heard a lot of people's needs for stylesheets. Although we have never dealt with these people before, we have gained a lot of key ideas from them.
It can be said that, for us, this is not an invented concept, but for many other people, everything starts with HTML and CSS. But I know that they are only part of evolution.
Q: The full name of CSS is cascading style sheet (cascading style sheets), why is cascading (cascade), not other words, such as combining (combination)?
Håkon Wium Lie There is a claim that the view consists of two parts, part of what the provider thinks people should see, and part of the document that the receiver actually reads on the screen. From the very beginning, our design philosophy is that the recipient also needs to have an impact on the results of the view. After you get the content, you can turn it into the way you want it. Content and style from the provider, the provider can specify the specific color and size. However, the recipient can use different fonts or colors depending on the particular screen. This is our philosophy: multiple effects, multi-style sheets are integrated, which is the basis for cascading style sheet concepts. Stacking means that one thing superimposed on the other, cascading like a waterfall, superimposed on each other, is a metaphor for the final result.
Q: Your background is mathematics, is this background helpful and influential when you create CSS?
I studied grammar in computer science, and I also learned some artificial intelligence, and grammar analysis helped me a lot. In language design, we try to make it easy to read and parse the grammar. So, computer learning is more helpful to me than maths.
Q: You have created a browser called Argo and tested CSS on it, is that so?
Not so, Argo is not meant to test stylesheets, but to make it possible for faculty and students (such as art colleges, history schools) in the University of Central Africa to be free to surf the web, to allow them to exchange documents online, to read collections, to send and receive mails, and so on. So my goal is to create a very useful browser that supports HTML while supporting XML, because XML is used more in some colleges. For example, some people are studying the Bible, they need a different version of the Bible, these files are presented through XML. They also need stylesheets, so there's a stylesheet language in my browser. There are some interesting concepts in the stylesheet, but at the time they didn't pay attention to the syntax, and not everyone wanted to write code. Håkon Wium Lie This time also published his own ideas, I think our ideas can be combined together.
Q: As one of the creators of CSS, you may be the best person to answer this question, what is the ultimate goal of CSS? What is the purpose that can span time? How will this impact the development of the future?
There are several goals, and they evolve over time. The first major reason is to protect the HTML. We saw some companies, including Mozilla, starting to add something to the HTML in order to make the rendering work better. We think the content and style should be different, because on different devices and screens, you want to see the same content, but the same style. In order to protect the stability of HTML, there are many people, not just Håkon wium lie and I, are trying to do the same thing. We know we need another language to protect HTML, which is the direct reason we create CSS.
Another reason is that once you have a professional language for layout, you can do more. These things are hard to do with HTML, and for specialized languages it's a piece of cake. In addition, if you have completed a style, you can reuse it, which is more efficient. At the same time, it's more compact because it's a language that specializes in style sheets. Using HTML+CSS is less and more concise than simply working with HTML code. These are the reasons for our early creation of CSS. But over time, other reasons have surfaced. For example, a team writes a document, some people can write documents specifically, others can focus on styles. This is the concept of traditional publishing, the book is published in this way. Some people write books, but they are not responsible for typesetting, a concept that is traditional and equally applicable on the web.
Later, there are some concepts, such as execution efficiency. From a moment onwards, we can animate, and you can do it in other languages like JavaScript or plugins, but we've noticed that it's easier to do this with CSS. CSS is declarative, so you don't need to write a special program to achieve it. You can state where the action from an object begins, where it ends, and what path is used in the middle. If you need to perform a loop with JavaScript, your computer may not be able to predict how it should be executed. But if you do it in a browser with CSS, they can see how things are going and where they should end up. So you can do optimizations that can predict animations. This also makes the animation more efficient, and it works better on the screen. Execution efficiency is also the most important reason for CSS to do more with HTML.
Q: Now that the traffic on your PC has been eroded by the mobile side, how do you think CSS will help this Web application and local application battle?
I don't think it's a war, both have room to live. But we do want the Web platform to become as powerful as the local platform. Because Web applications can run on any device anywhere, it's more efficient and cheaper. So we do want the Web platform to be able to perform those functions on the local platform. CSS has been trying to find boundaries: What is CSS, what is SVG, some of which are difficult to define. But we think there is more room for CSS and we want to do more in CSS. Because people find it easier to do something in SVG than it does in CSS, there's a lot of work they'd like to do in parallel with SVG and CSS. I also work with the JavaScript API's workgroup, which is an interface to GPs and motion sensing, which also connects the API interfaces of different devices.
Most of the time we also change styles based on people interacting with the device, so we think that there are more things to be seen in CSS. It is often suggested that there should be something in CSS, but we think something should be done somewhere else. So we need to make a concrete analysis of what people need and what we can provide.
Q: You can see that CSS is a good answer, but not the answer to all the questions. Many people are interested in the topic of preprocessor, and they have some concerns about using these preprocessor, what do you have in view of this?
I was surprised that the preprocessor was so late, I thought sass,less would appear earlier. Because CSS is a simple text-based language, it is not difficult to write a preprocessor. People do use the preprocessor to do a more professional design, but not everyone needs a preprocessor, you have to be a programmer to use it first. But if you are a programmer, then sass tools like this are very helpful to you. The advent of tools is also a good thing for our workgroup, and the preprocessor eases the stress of CSS. We can focus on features, fonts, and layouts, without having to think about what programmers like to do with variables, because it's done in the preprocessor. In addition, people can choose their preferred preprocessor, if we preset the preprocessor in CSS, then there is only one way. But now everyone can choose, sass,less, even you can choose to use PHP. I think the preprocessor is very important for professional designers.
Q: What is the reason for adding a custom attribute to a CSS?
Variables are important to programmers, and if you're writing a lot of stylesheets, all of this can be done in sass and less. I don't think the group should be defining how to get the job done, we are only responsible for creating the core language, attributes and values, while others can decide how to write CSS. But now that we have variables, the reason for adding variables is that we find that we can make CSS more routine with custom attributes and values. In terms of custom attributes, we use CSS's own mechanism to cascading (cascade), which means that you can attach variables to elements so that you can attach not only style attributes, but also arbitrary attributes on the file. This is handy for apps, like you have files and structures, you need to evolve something into a high-level element, you can attach these values with CSS, you can do this in HTML, but it's easier to use CSS. This is why we now have custom attributes and values.
If you want to use a variable, then you can use SASS. But more and more people will start using custom properties, and there are many possibilities for custom properties in the future, and there are many interesting features that may be expected to happen.
Q: Modularity seems to contradict the idea of CSS, can you talk about the reasons for introducing such a design?
There are two types of modularity. In the Working Group, we split up to develop more detailed specifications, which is a modular one. The reason we do this is that the process of making the specification is simpler and can be tested on a smaller scale. But this has little to do with the modular structure of CSS, and in this sense we are not in modular CSS but in our internal process of modularity. Because we can't do everything at the same time, we need to focus on a property and then look at the next one.
Another kind of modularity is the way people write stylesheets, you can write a lot of stylesheets, and then blend them together, and multiple inputs can help you turn your work into your own style sheet.
There is even a third meaning, although it has not yet started, but it has already begun to be discussed in the Working Group. We started talking about letting other people add features to CSS, and we need to have another way to modularize CSS, so we need some kind of syntax, JavaScript, or other language interfaces that allow people to add features to CSS and also conform to CSS syntax. You can use your own style sheet, or you can insert an extension. Although the matter does not exist yet, it is already under discussion. Although there are two types of modules, there is a third possibility of modularity in the future.
Q: CSS is trying to catch up to XSL, and is that the day that XSL becomes superfluous?
It's hard to predict the future. XSL is still widely used in the publishing industry, and the people who publish books still use XSL. But as I said, we are no longer developing XSL because we can't find enough people to form a workgroup. Although we would like to have a new version of XSL (which is still version 1), we do not currently have a plan to develop the next version. Maybe we'll soon be able to component a working group, and maybe we'll never, these things are not to say.
Now that we're focused on CSS, people want to be able to do the work that XSL can do with CSS. The functionality of XSL is designed for publishing, generating indexes, catalogs, and so on. We will implement these features in the future, but there is no definite date.
Besides, we have a whole lot of work to do. Before we stopped the XSL workgroup, there were a number of requirements that were submitted for XSL version 2, which the user presented to the team with the functionality they wanted the XSL to implement. These requirements still exist, and we may be able to implement them in CSS, but that's the next thing to do.
Q: CSS is almost 20 years old, you have been involved in the development work from the beginning, so many years to look back, which features are your favorite? Which is the least you like?
One of my favorite CSS is that almost everyone can write CSS. Anyone can find examples of how other people do it on the internet and then write their own style sheets. This is not so strong now, because the language is getting bigger and the style sheet becomes more and more complex. But I still think it's not hard to write CSS. You don't need to be a professional to write some Web files, some HTML, and a little bit of CSS. But of course, in order to achieve a more advanced and more complete display, we also need professionals. In contrast, XSL does not have this quality, and XSL is designed for professionals.
The most dissatisfied ... It could be something we didn't do well, like positioning. This feature allows you to place an element in the CSS on a specific point on the screen through a horizontal ordinate. At the beginning of the 1996 CSS, we wanted to do this function. A document at the time explained how we would lay out, modify the screen, and how to write it in any location. We call it frame, which is earlier than the time of the HTML frame appearing. We now call this concept regions, the concept of browsers and workgroups is the same, but 96 is too early for this concept. The browser at that time was unable to do the work that could be done today. At that time, HTML was only two years old, recording only a sequence, starting from the first letter to the end of the last letter. So the concept of "making an event on the screen" is too advanced. But another concept came into being, the extra frame, which evolved from a very small concept to a very flexible concept, which is why Flex box now appears. This is what we can do to the best of our ability now.
Q: Do you still do other projects besides the Working Group? Have you ever considered writing a framework yourself?
I wanted to write a framework, but I never had time to do it. In addition to the Working Group, I have a MathML working group, but the work is almost over, we have completed the MathML 3rd edition, and have not yet created the next version of the plan.
The rest of the time I am also doing some projects, but it is completely unrelated to CSS, is about network security. In Europe, the EU will subsidize the research, and everyone can declare a research project, but the project must be done in a cooperative manner and cannot be applied by individuals or individual institutions. Together with the University of Leuven in Belgium, the University of Dublin, and SAP Germany, the company joined forces to apply for research on cyber security. Our research covers a wide range of well-known network issues, but it also contains some little-known issues, which is a very interesting project. A lot of research work is done in universities, and implementation is carried out in the company, and the work on both sides needs to be coordinated, and standardized work is done in the group and in other organizations. This project takes up a lot of my time, but I learned a lot from it.
Q: Thank you very much for your valuable time in the interview, and I hope you will bring more exciting content when you come to China next time.
CSS is just part of evolution.