Skip navigation.

Posts tagged with "web 2.1"

Minimal Markup

, , ,

I have earlier proclaimed markup an [necessary] evil. A more constructive way of putting it is to say that markup should always be minimal. You should use as much markup as you need, and no more. Markup is something we add to aid machines. Too much or wrong markup can do more damage as too little or too vague.

This design principle determines how to standardize markup. Unless the author knows something the user doesn't, the markup should not be there.

This principle obviously caters to the author's laziness, the admirable human trait not to do more than necessary. It is less obvious, but no less important, that it also empowers the user. More minimal markup means more flexible and accessible markup, assuming that the user agents do their job and actually act on their users' behalf.

Read more...

SVG 2.1: Foreshadow support

, , , ...

Well over four years ago Opera made the first native SVG implementation, with the first useful implementation the following year, and Safari and Mozilla got into the game. By 2007 SVG became a browser business and earlier limited use of SVG faded into the background. Roughly at the same time Safari came up with Canvas. Then as now SVG was commonly seen as the more conscientious but awkward elder brother of Canvas.

Read more...

What is the use for ODF?

, , , ...

This post is a reaction to xErath's comment to an earlier rambling.

Originally posted by xErath:

There's enough info online about the deficiencies of ooxml. I don't need to quote them here.

Just to have it over with, we agree. I may be a Microsoft groupie at heart, but I don't have time for OOXML. People who want to discuss OOXML should feel free to do so, elsewhere. More interesting is this part:

HTML5 is a big patch over HTML4, made to be backwards compatible with the complete mess that is the web.

ODF on the other hand is a clean approach to define an abstract model of document formats. Then ODF has many features that html5 will never have nor will make any sense. I doubt html5 will ever include native spreadsheets support, slide transitions, page footers and headers... you name it. ODF will not support local databases nor globalStorage.

First, I have come to realise that the phrase "it is a complete mess" is a shorthand for "it works very well, and I don't think it should". In fact the Web is a remarkably sane place. We have millions of monkeys making Web code every day, and it works. The Web is more like an ecosystem than an engine, you don't stop and "repair" it, it is survival of the fittest. If you look at Web code written today and ten years ago the old code was worse and still achieved less. The Web has evolved and it keeps evolving.

Read more...

En svensk tiger

, , , ...

Opera 9.0 Beta is now available for download. For those of you who have regularly tested the 9.0 previews and weeklies the difference from those isn't that great (except in stability), but from 8.5 it is huge. There are new features and advances in standards. One that has truly progressed since 8.5 is SVG. While we don't have complete SVG Basic support yet, with full styling and scripting, we are close. Getting here has been a long journey.

The first version of SVG, SVG 1.0, became a W3C Recommendation in September 2001. We had an interest in SVG even earlier, but the sheer size of the specification made us decide against it, it was hard to justify putting so much effort into a format that was going to need years to get a foothold in the market. We had done it with PNG before, but that was easy. The arrival of the Adobe plug-in decided the matter, why should we spend our remaining resources on SVG when there was a viable alternative?

We weren't looking for a Flash competitor, which seemed to be Adobe's main drive until they bought Flash several years later. It definitely wasn't to make a Purity of Essence markup language not sullied by the real world like the HTML harlot – many working group members at that time were deeply hostile to the Web. The mobile companies were the next to turn on to SVG, and while there are clear benefits with SVG on phones, the gains can be even larger on a larger screen.

We saw a vector graphics markup language as an adjunct to HTML, together they would become more than they were separately. Each language could provide what the other one could not. HTML augmented with CSS could do both text, layout, hypertext, semantics and more. But it couldn't do the simplest illustrations (except through brutal hacks), or graphs, or fancy boxes or headlines. As HTML was a W3C language and SVG was a W3C language you would have expected that these two were well integrated, that you could easily use one to enhance the other.

That certainly isn't the case and this is a tremendous unfulfilled promise. It isn't all bad, the two languages do integrate with each other after a fashion. They can be looked at as feuding siblings, having them in the same room will cause torment, but they are family. Hopefully some years from now they will both grow up.

How did it get to this state? One reason was attitude, another was timing, a third the participants. The way W3C works may also have had an influence. Many at the time believed that the Web was fundamentally broken, that it was better to have a fresh start. If the Web was broken, what was the point in integrating with it? Whenever SVG integrated with other specs, it was always to other new and still largely unused specifications. SVG wasn't to enhance the Web, it was to replace it. This was less ridiculous than it might seem now. The Web was war-torn and not in a very presentable state. To this day our Open the Web team is working on, or rather against, the Web of 1999.

The timing was unlucky too. HTML 4 was done when SVG started, and in the following years that group was preoccupied on reengineering HTML to be on top of XML instead of (ostensibly) on SGML. In any case the climate for HTML, W3C's greatest hit, was chilly. There also seemed to be an implicit W3C assumption that XML made document integration automatic, and then that XML Namespaces would do so.

For one reason or another the browser makers were not involved. Microsoft, that had an SVG precursor in the VML format, has just won the Browser Wars and could go back to sleep for another half decade. Netscape was busy changing its skin to Mozilla. We were turning our CSS browser into a DOM and CSS browser and, more hidden from view, a browser that could thrive in the most cramped devices. The actual SVG implementors didn't have any great interest in Web integration, for them this was just extra complexity with no direct benefit.

We might have been one of those implementors. In the summer of 2002, mere months after SVG 1.0 was published, our lead SVG developer held an internal demo of a prototype SVG implementation that included the iconic SVG image of the time, the SVG tiger, looking the same way then as it does now. A bare-bones SVG feature set, much smaller than the extended SVG 1.1 Tiny we released in Opera 8, could have been a part of Opera 7. It would have been scalable vector graphics later to be animated, styleable, and scriptable, but not much more. But the great migration towards Presto had started, SVG had to wait. Further on there was a repeat of the Adobe plug-in story, as Ikivo made a great SVG Tiny implementation that covered our phone needs if not our cross-platform needs.

Had it made any difference if we had given higher priority to SVG? For the standards, probably not. The odds were against it at the time, and we had little time to spare for W3C work. It might have increased the browser attention to SVG, but none would likely have come up with an actual implementation faster anyway.

Web developers might have caught on to SVG a little earlier, but they would have been even more frustrated with SVG than they were with HTML+CSS. Today Opera 8 (but not Opera 9) suffers from what I see as a mistake in the specification: If there is anything in SVG a browser doesn't recognize, it is not allowed to show anything at all. For a hardcore graphics SVG implementation, like the one we were contemplating, that would in practice mean that unless the SVG was specifically made for Opera, we would not have been able to show it.

Another and much larger problem is that even with this rule, which was made with the intent to make different implementations interoperable, the existing SVG products today aren't really compatible. We will eventually get this right, but it will take years of slog (déjà vu for any CSS enthusiast).

When the SVG world and the Web world eventually did collide, that meeting was often acrimonious. It probably was unavoidable. While there was ideology on both sides to be dealt with, SVG as a standard needed some years on its own to find its standing. HTML, CSS, and DOM is today a fairly harmonious trinity, but that was not the case at the beginning.

Early on Netscape had annexed HTML, CSS came from W3C and got its first real implementation in Opera, and while Netscape came up with JavaScript, Microsoft trumped it with a superior and more popular DOM. Neutral ground W3C DOM (which is more similar to the MS DOM), while formally the standard DOM created by Microsoft and Netscape together, wasn't really supported by either browser. Mozilla was the first browser to support W3C DOM, followed a few years later by Opera, Konqueror, and most recently iCab. Standards are the first casualty in browser wars, and it took a decade to mend them. But during all this hammering something else happened, the three specs began to fit.

Fitting HTML and SVG the same way should hopefully mean less banging, and the signs are that they are slowly melding, and people from both camps are seing the mutual benefits (and, as many of us are commercial, the business cases). What is more intimidating is that this is going to be the easy part. Uniting HTML and SVG is a bit like uniting magnetism and electicity, there are other forces less mallable to the theory of the Grand Unified W3C.

Web 2.1: Making it whole again

, , , ...

Attended the W3C Technical Plenary, in Cannes, France. W3C has played the United Nations of Web standards for a decade now. In that period they have created 85 recommendations (finished specifications). In the works are 2 proposed recommendations, 28 candidate recommendations, and 111 working drafts, 25 of which are in last call (actually a few more, but I dropped some of the more process-oriented documents from the list).

The World Wide Web comprised three standards initially, URL, HTTP, and HTML. The URL, the location of a resource, was the crucial one. It created one standardised way of describing an address. The HTTP transport protocol allowed any machine to pick up or send to that resource, and HTML like this included the URLs as hypertext links. WWW built upon existing Internet standards as well as predecessors like Gopher, FTP, and Enriched Text.

Even so going from just three to a couple hundred standards, not including programming languages and frameworks that are standardised elsewhere, has made the web undertaking less seamless. Every standard has been created to solve a particular problem, or in some cases to cause a particular problem, but often with less interest in making it a well-functioning whole. W3C rules states that new standards should build upon existing ones. This is good in that you can reuse what you have already got and bad in that each new specification will be on top of a huge stack of existing ones, so new specs are going from baroque to rococco before they even get started.

One of the terms that cropped up last year was Web 2.0 (for which we can blame O'Reilly). If there is a Web 2.0 it certainly is in first working draft. However the interesting, in fact the necessary, project is to make all these standards work with each other. Not only "Make it work" but "Make it work well".

This will be slow, methodical work with little hype attached to it and it will take time. Realistically it will take another decade. Most, if not all, of the hundred-some recommendations and recommendation-wannabes will have to be reworked. This process, analogous to the development of CSS 2.0 and CSS 2.1, will not add much features to speak of but it will add quality and ease. Call it Web 2.1, the interoperable web. The process has started, and it is causing friction of the good kind. For instance SVG has been used for specific purposes in the past, now that it is getting used for the broader web audience issues that didn't matter matter before matter now. One of the integration tools is the Compound Document Framework that actually tries to integrate different formats into one. This will not solve the problems but will show where most of them are.

In the five years I have been involved with standards I have seen hundreds of demos on how well a particular method solves a particular problem. Now what remains is the problem of how to solve that particular method.