Håkon Wium Lie - CSS, WebM & Opera's Need For Speed
He was first one to propose the concept of Cascading Style Sheets (CSS) - that power almost every web page on the Internet. He is obsessed with speed and works on making the fastest web browser on Earth even faster. He is also working on Web Fonts & WebM project. He is none other than - Håkon Wium Lie - The Chief Technology Officer, Opera Software. We are proud & honored to have Mr. Håkon Wium Lie on CE to talk about his awesome work till date and share experiences. Have a look -
CE: In 1994, you proposed the concept of CSS. Tell us what made you think about CSS?
Håkon: There was one big problem. In 1994, authors started to discover the web. They typically came from a world of desktop publishing where they had full control over fonts and typography. In HTML they found a language that expressed structure and semantics, but not presentation. However, authors soon discovered that they could control the presentation of their content by making images of text — just like fax machines do. This would get authors the fonts and colors they wanted, but it would greatly reduce the usefulness of the the web; a web of images could look good, but we would not have had search-able, printable and machine-readable documents.
CSS was proposed to stop this downwards slide. By offering authors a way to express the presentational preferences for the various HTML elements, CSS encourages authors to use HTML. As such, the main purpose of CSS was to save HTML.
Also, I proposed CSS because I like beautiful typography. Aesthetics must not be disregarded. In my youth, Steven Levy's Hackers was a source of inspiration. It famously includes the hacker ethic which states: «You can create art and beauty on a computer». CSS has become a tool for creating art and beauty on many computers.
CE: Could you tell us more about your work at CERN & working with Tim Berners-Lee & Robert Cailliau?
Håkon: CERN was a truly amazing place for me. I shared office with Tim (and Henrik Frystyk Nielsen), and had long lunch discussions with Robert. Both of them impacted the early design of CSS. You can find Robert's minimalism in there, as well as Tim's sense of syntax. When Tim left CERN for MIT, he also created a new home for CSS: namely the World Wide Web Consortium.
CE: What brought you to Opera?
Håkon: CSS. Before I came to CERN, I worked for Norwegian Telecom Research. I worked in a group that stumbled across the web in 1992. We were very exited when Mosaic came along in 1993, but some of us thought we could do better. I was not among them; I argued that only Americans could do software. Fortunately, Jon and Geir — the founders of Opera — didn't listen to me and started developing a better browser as I was leaving for CERN in 1994. In 1998, when Netscape and Microsoft had struggled for years to implement CSS correctly, Opera came along with a superior implementation. I said «wow» and returned to Opera and my native Norway.
CE: Opera is smaller & faster than its competitors. What makes this possible?
Håkon: When joined Opera we were 10 people. We didn't have the money to hire hundreds of programmers. We had to be very smart and resource-conscious in order to compete with Netscape and Microsoft. This reality was reflected in our code, which remains lean and clean to this day. Therefore, we have been able to port Opera to just about anything with and on/off switch. In the history of computing, I don't think you can find another application that has been ported to more operating systems than the Opera browser.
CE: Could you give us technical insights on how do you make opera the fastest browser on the planet?
CE: How is Opera different from FF & Chrome at core?
Håkon: The rendering engine is the core of the browser. Opera develops its own rendering engine (called Presto) which is different from the one used in FireFox (called Gecko) and Chrome (called WebKit). Also, Microsoft have their own rendering engine in Internet Explorer. These are the four rendering engines that are used in modern browsers. I wish there were more. Different rendering engines have different characteristics, and competition between different rendering engines ensure that one vendor cannot control the web.
CE: How does Opera offer more support to modern standards than competitors?
Håkon: Web standards has always been core to Opera. Without web standards, it would not have been possible to create a browser in Norway, and web standards ensure that the web remains free and open to all. At Opera, we are investing huge efforts into both developing the web standards and to develop code to support the web standards. HTML5, CSS3, W3C Widgets, and SVG are among the specifications we focus on at the moment.
We're not alone, though. We collaborate with other browser vendors to <em>develop</em> the standards, and we compete with them to <em>implement</em> the standards. There is much more competition in the standards space now than some years back. Gecko and WebKit are also focused on standards and even Microsoft is coming around.
Opera can still offer something unique in this space. We are not tied to any specific operating system, and we offer Opera — and therefore support for standards — on more platforms than anyone else.
CE: Could you give us a brief overview of the web fonts project you're working on?
Håkon: Giving designers access to fonts was one of the motivations for creating CSS. CSS has many properties for fonts and in 1998 CSS2 offered authors a way to link to font files. Alas, webfonts were implemented differently by Microsoft and Netscape and the millenium passed without webfonts in use.
In 2005 I thought it was time to try again, and launched a campaign to make use of the untapped resource for web-based publishing; there were thousands of free TrueType fonts on the web, but they could not be used in web pages. An article in A List Apart opened the eyes of many people.
Webfonts are now widely available. All browsers, bar IE, now support linking to TrueType/OpenType files. Also, W3C has launched a working group to develop a compressed encoding of TrueType/OpenType fonts called WOFF; compression is good and commercial vendors are open to releasing their designs in this format.
Also, webfonts are supported by Prince, a HTML-to-PDF-via-CSS converter. Prince is able to create some truly stunning PDF files by fetching fonts, content, and style sheets from various places. I discovered Prince when Bert Bos and I wanted to write a book in HTML and CSS. (I also joined the board of YesLogic to ensure they fix my favorite bugs ?
CE: Could you give us a brief overview of WebM <video> project, its status and future?
Håkon: Video is, like fonts, an important media type which hasn't had its rightful place on the web. We all have video cameras in our pockets, but we can't publish video in our home pages without resorting to markup voodoo. Therefore, in 2007, Opera proposed a simpler solution: the <video> element. Getting consensus around the <video> was quite easy. Getting consensus around the codec is much harder. The Theora project showed us how important it is to have an open codec, and Google came forward with VP8 which, along with Ogg Vorbis, forms the basis for the WebM format.
WebM is currently making its way into browsers and video authoring applications. I have high hopes for its future. Google is converting the YouTube catalog into WebM, and I think the greater Web community will embrace the openness of WebM.
CE: Opera has released the browser update implementing support for WebM, VP8 & HTML5. It's a golden feather in the Opera's hat. We would like to hear more about it from the man himself.
Håkon: I'm proud that Opera 10.60, with WebM support, has been released today. But must admit to not doing it all by myself. In fact, I haven't written a single line of C++ code while working for Opera — Opera has some fantastic programmers that are much better coders than me. I'm a thankful colleague.
CE: What will be your message to CEans?
Håkon: I'd like to challenge all crazy engineers out there to create some leading edge content. Start writing W3C Widgets, HTML5 applications, CSS3 backgrounds and borders, and WebM video. Here's my attempt — I'm sure you can do better ?