SVG doesn’t need to compete and neither do I

The worst mistake I made in the recent discussions about open compared to proprietary technologies was to allow myself to be pulled in by sweeping statements such as, “the W3C has failed”. Not only be pulled in, but to get into some form of competition over which is the best: SVG/Ajax, Silverlight, or Flash.

The W3C has failed because Rich Internet Applications are the way of the future, or so goes the prescient among the pundits. Standards are dead, said others. Silverlight is the future. No, no, make that Flash. Silverlight! Flash! And on it goes, with poor SVG dragged along like the cousin who showed up at the dance without a date.

At the same time I waded into the battle of the—well, we really can’t call it vector graphics, as there is so much more involved— I also wrote about IE6 and the difficulty of ending the life of this seven-year-old browser. A seven-year-old browser that still dominates so much of the web. Person after person told me about this place or that with umpteen thousands of employees all using IE6. Someday, I’m told, we’ll signal the EOL of IE6, but not today. Not today.

These are two different views of the world, neither of which is compatible with the other. Either the world is ready to leave the W3C and other web standards organizations in the dust as we leap into the bright future where all the web is a box embedded in a single page with a big friggen cloud behind it, or we’re living on the edge just using transparent PNGs.

The Hard Rock Cafe website is fun, but it doesn’t work on my pre-Intel Mac, nor with Opera, and crashed my Safari on Windows XP and caused my not low-end laptop to spike at 80%…when idle. But it is pretty and is cool, and makes use of new JPEG compression techniques that are very cool, and we need pretty and cool, just to keep excited about all this stuff.

However, the world will still turn, every day and every night, to Google Maps, created with technologies in use today— standard and proprietary technologies, both—and now so much a part of our lives that we’ve forgotten when we considered it cool.

Years ago, one group of companies proposed one way of doing 2D vector graphics, and another proposed a different way and from the clash came SVG. However, Microsoft did its own thing, and implemented VML, and created what is probably the last battleground in the war of the browsers. I don’t know why Microsoft went with VML. I imagine one reason is that Microsoft was not willing, then and now, to commit to the necessity of XHTML. Either that or the company was being purblind, pig-headed stubborn. Either way, Microsoft went one way, everyone else went another, and now we’re left with no meeting ground between two positions. To say the situation is disappointing is to say that the Midwest got a touch wet this spring.

Maybe HTML5 will be the bridge that brings the sides together. I hope so, but that’s in the future and we have to think of the now. The now that celebrates the latest whizzy from Microsoft and Adobe, while having to continue to support IE6. The now that needs the standards, even when most of the people don’t realize how much they need them. And OK, the now that needs Silverlight, and Flash, and whatever else new comes along, because that’s what the web is, has been, and probably will always be.

I’ve always said we need more women in technology because I believe we women bring balance to technology. I like to think that we foster cooperation, rather than competition, but perhaps that’s my own bias, or even my own stereotype, shame on me. However, I didn’t bring any cooperation to this discussion. I was right in there with the boys: snorting, stomping, and digging my feet into the dirt, as I rolled up metaphorical sleeves and prepared to wade in with code. Of course, it was little bitty code, and all I managed to really do was look a little silly. Worse though, is I looked silly at the same time I was saying stuff that was anything but. I guess that makes me a real tech because I can be just as purblind, pig-headed stubborn as every other tech I’ve ever met. Stubborn and with code—that’s a dangerous combination.

I like SVG. I like SVG for itself. I like that you can add 2d graphics directly into a web page; that you can use JavaScript to manipulate the SVG after the page loads—not to mention the really fun declarative animations. I like that it is interactive. I like that it’s free, and that it’s open; that it belongs to all of us. Most importantly, I value that it’s built into the browser, not added via a plug-in, and I can depend on it being there. Well, mostly there. I have many more fun things I want to try with SVG (and the Canvas object and JavaScript and CSS)—even if it means I’ll be putting the results of my efforts on a four-legged stool with one leg missing.

I like SVG, but SVG is not Flash. SVG is not Silverlight. However, that doesn’t make SVG better or worse than Flash or Silverlight—it just makes SVG different. And that’s where my time should go: celebrating the difference, not trying to trip the other guy up, so I can kick dirt in his face when he’s on the ground.

Enough rambling, back to the book.

Then and now in standards: What’s different

Update I am aware that Hard Rock is using Deep Zoom, based on Microsoft’s HD Photo technology. The equivalent open source version of the same functionality is JPEG 2000, which, hopefully, someday will have a wider implementation. My tiny test was not a challenge to Hard Rock, but to the statements made about open source technologies being incapable of smooth animations—not without causing the CPU to spike badly. My test was focused specifically on these two qualities. I would hope that people would grant me a few more hours if I were to attempt to re-create the Hard Rock, which is based on proprietary technologies, and took the team a month, I believe it was, to create.

I did want to address something else that Mr. Ellis wrote:

They seem pretty sophisticated right? In short AJAX is a kludge of various technologies that were never intended to work together in this manner. It can work, but AJAX development is a pain. It gets even more complicated when you start to mix in other aspects of the “free and open” Web like SVG or CSS. It is anything but a cohesive set of technologies.

The real weak spot is in the development tools for “free and open” technologies. There are no AJAX development environments that can compare to the tools available for Flash and Silverlight, and the latter has only been out for one year. It is so bad that people made a big deal over a framework to make AJAX development a little easier.

Actually, the technology behind Silverlight began several years ago. The underlying markup, XAML, was first released in 2003 (or sooner). Yes, while IE6 lay dormant, Microsoft was building Silverlight, except that the infrastructure was called Avalon and Chrome and probably a host of other names. In fact, you could say it took Microsoft close to seven years to create Silverlight. And if you think I was the first person to write about the similarity between XAML and SVG, on the contrary. Check out the following:

And one last clarification: I don’t care that Microsoft built Silverlight. I do care that the company spent time building this proprietary infrastructure while leaving the rest of us to deal with broken browsers and broken promises.


Luckily the article I wrote for NetscapeWorld in August 1997, was still preserved at the Wayback Machine. In the article, titled A Web Developer’s Guide to the new Cross-Browser Issues, I wrote:

Developers are more likely to have compatibility across vendor implementations of an application if one vendor dominates the market and their implementation becomes the de facto standard, rather than being derived from a specification released by a non-profit standards organization. The only exception to this is for standards that are machine-specific, such as the DVD format, and even then the implementation of one vendor probably acted as a seed to the standard. Microsoft has what is the dominant user interface operating system, Windows, with the Mac being a secondary standard. Based on this, you have a plethora of products compatible with one or the other or both. A GUI derived from a standards committee would never have this same impact.

This would seem to contradict what I wrote yesterday about the importance of open standards and the W3C. However, what’s different between then and now is the concept of symbiosis.

Twelve years ago, Netscape and IE were neck and neck when it came to quality and what each offered. As each browser version was released, the companies would implement their own innovations, and the world would either flock to the new browser release or run for the hills. The browser companies would then submit their innovations to the standards organizations, and based on the reactions of both users and developers, these organizations would either incorporate the innovation or not. Though the ride was bumpy at times, the innovation-standard-innovation cycle ensured a consistency across browsers (standards) without costing progress (innovation). There was a symbiotic relationship between the innovative and the standard in those early days, and the end result of the symbiosis was that best browser became the de facto browser, at least at the time, and both standards and innovation marched in tune.

The same cannot be said of today’s browser environment. Microsoft’s Internet Explorer is still the most used browser for most sites today, but its prominence is not based on it being the best; it’s based on inertia. Microsoft includes IE6 as the default browser within its operating systems, and many individuals and companies just went with the default and stayed, stuck like bugs in amber. No one, not even Microsoft can say that IE6 the best browser today. However, even Microsoft would be hard-pressed to say that IE8 is the best browser if you measure its conformance to existing standards as a component of its overall worth.

The days when the best browser winning, “best” being measured based on both innovation and standards support, are gone; leaving behind not a race to the bottom, so much, but a disinterest, especially in corporate America, in rising to the top. This is not a healthy state to be in. This is actually a far worse state to be in then when I wrote that article for NetscapeWorld in 1997.

What Microsoft has done is broken faith with the standards community. It’s fractured that delicate symbioses between standards and innovations. It did so by implementing those standards it finds useful and ignoring everything else. The company is taking a gamble that people have become indifferent to standards enough that it can do an end run around the standards organizations, like the W3C, but still maintain top billing.

Microsoft didn’t stop with ignoring what we now consider to be “standard”. The company made sure that the symbiotic relationship between standards and innovation was irretrievably damaged with its release of Silverlight. Microsoft seemingly made a business decision that the competitive threat it faced was not coming from a browser or browser company. No, the threat Microsoft perceived was coming from Adobe. It needed a Flash clone, and it created one or is trying to create one, with Silverlight.

Silverlight isn’t just a Flash clone, though. It is a policy statement about standards. Silverlight is innovative, true, but it is an innovation that can never be shared as a standard because it is a destructive innovation. By using a XML-based vector graphics language that is not the same XML-based vector graphics language that forms the standard, SVG, Microsoft has ensured that the innovative elements incorporated into Silverlight can never be added back to SVG. More importantly, by not implementing SVG, the company has made a statement that it will never “share” its innovations with the standards community. Oh we may if we’re willing to accept the company’s licensing, use Silverlight, but it will never be a part of the community, it will always be Microsoft’s.

Make no mistake, there is nothing in SVG that would be counter to the innovations necessary to create Silverlight. Microsoft could have chosen a different path, to innovate on SVG with the risk that its innovations would be rejected by both the community and W3C. However, those aspects of SVG that are basic to both the standard and Microsoft’s implementation of Silverlight would at least be compatible across browsers. Now what we, who are promoting a standard vector-based graphics system in browsers, are left with, is a four-legged stool, with one leg missing.

To add salt to the wound, Microsoft also used its own version of a Canvas element in which to create its displays and animations, but it is not the same Canvas element implemented in the other browsers and currently being incorporated into HTML5. That’s two specifications that Microsoft has subsumed into its own proprietary functionality. Two specifications that, unless something drastic happens, will never be compatible across browsers.

Yesterday, Paul Ellis decided to educate all of us on how Silverlight is a superior product, and how it’s the W3C’s fault the web is going proprietary because the W3C is slow. The W3C, like any standards organization, is cautious, true, but the SVG specification has been out for years, and as far as I know, nothing has held Microsoft back from not only implementing SVG but innovating on SVG if the company so desired. As one person commented, why create new standards if the existing ones aren’t implemented?

Mr. Ellis also pointed out the superiority of the animation demonstrated in the Hard Rock Cafe’s Memorabilia page, implemented in Silverlight 2. Nothing like this, he proclaims, could be done with open standards.

Mr. Ellis is incorrect. True, JavaScript animation can be a bit jerky at times, and if not managed properly, can cause one’s CPU to spike. However, I think if he were to see the Hard Rock’s zooming animation separate from the other elements of the application, he might not find it to be as smooth as he thinks it is, or as friendly to the CPU. The perception of how good that application is is dependent on operating system, machine, graphics card and so on. I found that the Silverlight animation caused my Windows XP machine to spike when I opened the animation using Firefox; it barely worked with Opera. At the same time, my own (admittedly quickly coded and not performance tweaked) zooming example implemented with JavaScript did not cause any CPU spikes at all, even on my pre-Intel Mac, which can’t run a Silverlight 2 application. Of course, Mr. Ellis would say that my JavaScript animation isn’t as smooth and it is true that JavaScript-based animation can have jerky movements based on the timer and the action and so on; at the same time, if the animation was incorporated with other events, such as an end zoom artificial bounce, as well as sideways motion, we might find that the zooming action is more than acceptable. Additionally, Opera, Firefox, and Safari are always working to improve their JavaScript engines, not only for animations but for all processes.

However, if we never find a JS-based animation to be as “smooth” as an animation based on Silverlight, we can use SVG and SMIL, which is a declarative form of animation, to create the same zooming effect, at least for Opera and Safari, and eventually Firefox. In fact, if we were to look at the functionality to zoom in Silverlight, compared to the same in SVG, we would find some remarkable similarities. Enough so, that I believe that we could completely emulate Mr. Ellis’ Hard Rock Cafe application in SVG and have it perform the same as the Silverlight effect, or close enough to make differences difficult to perceive. Naturally, the Hard Rock effect wasn’t done in an hour, so Mr. Ellis will have to forgive me if my own example isn’t identical.

The real issue, though, isn’t that Adobe has Flash, and Microsoft has Silverlight, or that JavaScript can’t create World of Warcraft; there’s nothing wrong with having additional tools based on plug-in architectures, and more power to the companies that provide them. In fact, if Microsoft wanted to implement SVG as a plug-in architecture, I think most of us would have found this choice to be acceptable. Where the failure lies with Microsoft is that the company shattered the symbiosis that existed between standards and innovation, and created a schism between the community that values standards, and the community that values innovation. It has generated a gap between people like myself and Mr. Ellis and forced each of us to choose “sides” at a time when we should have a common goal—a better browser, a better web experience. Even if someone were to create an SVG wrapper using Silverlight, the fracture between standards and innovation will only be bandaged, not healed. It’s not the standards implementation we’re missing; it’s the missing commitment to standards that is causing the harm.

Microsoft has forgotten that nothing stands alone on the web. The only way the company will remember this important lesson is for us to succeed in those areas where the company has tried to generate failure; for all of us to continue to celebrate standards, which form a stable platform for change, in addition to innovation, which ensures that standards remain a living work.

Blaming the W3C for a proprietary web

I hope my last post on the W3C processes does not come off sounding like I’m jumping on to the “Down with the W3C” bandwagon advocated by others in the web development community. That couldn’t be further from the truth. If anything, I would not be as frustrated if I wasn’t such a big supporter of the W3C and its work. I certainly find the W3C’s effort to be more open than anything put out by Microsoft or Adobe.

In particular, I found Paul Ellis’ A Propriety Web? Blame the W3C to be disingenuous, at best.

He writes:

This may seem like a forgone conclusion to many of you after seeing the W3C’s development timetables, but the real reason Flash and Silverlight exist is because the “open web” people dropped the ball. HTML simply can handle what Flash and Silverlight can do. It has become increasingly stale for modern web development needs.

Here is some perspective, HTML5 has finally added a tag for handling video. Flash 6 came out with video support in 2002! Where is the HTML version of Line Rider? It is in Flash and Silverlight now. If you want to see something really interesting check out Hard Rock Cafe’s memorabilia page (Silverlight 2 required) and tell me if you’ve ever seen something like that with HTML.

The best response to this bit of criticism came in comments to the post, by a person named Paul, who wrote:

SVG had a video tag since at least 2004. But SVG is stalled in its development in large part because a major plugin developer (Adobe) and a major browser developer (Microsoft) are uninterested in it. So the slow evolution of web standards is a result, not a cause, of the big company’s wish to dominate the web.

In fact, there is no chapter in the Bible that says that the only two options are W3C and totally proprietary. If Microsoft were truly frustrated with the W3Cs pace (and not its openness) it could just call up Adobe, Mozilla et. al. and start another standards body. But Microsoft and Adobe do not want to co-operate on Web technologies. They want to compete, and use their dominance of certain other industries as levers that will allow them to define the platform unilaterally.

The man got it in one. The slow progress of the web can be laid exactly at the doorstep of a company like Microsoft, which refuses to implement most standards we’ve had for years in the interest of developing its own proprietary crap. Proprietary crap, I might add, which is competitive with the other proprietary crap being developed by Adobe. Why do something like Silverlight, which is based on XML, when there is something like SVG, also based on XML and implemented in the other browsers? The W3C did not “force” Microsoft to take this route—this is Microsoft doing what it does best: trying to own the technology.

In the meanwhile, the W3C has released specifications such as SVG, CSS, RDF, XHTML, and so on, in addition to ECMA’s work on JavaScript 2.0, all of which could provide all of the functionality we need, and more, and all of it free to use by everyone for everything. Oh, no, how evil. Instead, let’s praise companies for re-implementing all of this functionality in their own little plug-ins and browsers, leaving the rest of us web developers to scramble to learn how to implement their adorable, playful, and proprietary “enhancements” so that the applications work on all browsers and all operating systems.

Blame a proprietary web on the W3C!? In what universe?

I do think the W3C needs to change. I think the recent issue with the SVG interest group shows that the organization is too fixed in a bureaucracy no longer compatible with today’s way of doing business. However, we don’t have to wait on the W3C passing new specs in order to have the web of the future. If all the browser companies implemented all of the specifications that have been released, or are under final consideration, combined with the JavaScript we have today, we could do all that Flash and Silverlight and any of these proprietary technologies do…and more. If Microsoft were to implement these specifications in IE8, and encourage companies to move on from IE6 and IE7. If we didn’t have to depend on Adobe’s plug-in. If tools that generate content actually generate content correctly. If the WaSP returned to actually demanding tool makers adhere to standards, rather than become apologists for companies like Microsoft, and it’s cute little meta tags of the week.

Another commenter to the Ellis post wrote what good does it do for the W3C to push out more specifications when browser companies aren’t implementing the ones that already exist. That’s the key to this issue: the W3C can’t force implementation. Only we can force implementation, by using these specifications and leaving other browsers out in the cold. We’re certainly not going to get an open web if instead of punishing companies who are holding all of us back, we give in, lay on our backs, and think of Silverlight.

47 Million. And One.

The pain was sudden and intense, a band across my chest, taking away my breath. I had been bent over, lifting several books from a lower shelf, and the pain hit as soon as I straightened up. I dropped the books and fell back into my chair, clutching my hand to my chest, just like they do on TV. Heart attack. I was having a heart attack. I was home, alone, having a heart attack.

I grabbed my phone to dial 9-1-1 but then stopped. If this was a heart attack, I should go to the hospital. However, if this was not a heart attack, the paramedics would still want me to go to the hospital. The hospital would want to do tests, and tests cost money. In my mind, I started adding up charges…probably 250.00 for an ambulance, a couple of thousand just for entering through the emergency door, EKG, saline drip, that test with the paper and squiggly lines

Let’s just stop for a moment, and re-evaluate the situation. Consider the circumstances. I had been bent over in an awkward position, and the books I was lifting were heavy. I imagine heavy lifting could cause a heart attack, but heavy lifting can cause other things, too, like a muscle strain. I felt the pain, trying to gauge its location. Yes, yes, the pain was focused in the right side, not the left. That’s good. I mean, that’s good.

The pain was still intense, though, making it hard to breathe. I grabbed the phone, but instead of calling 9-1-1, I called my roommate. I told him what happened, how I felt. Are you going to the hospital, he asked? I’m not sure, I replied.

Is the pain on your left or right? Right, I answered. Is it persistent? I thought about it, doing a mental check, and responded affirmatively. Are you having a hard time breathing? Y-e-e-s, I replied, though hesitantly, because by this time the band seemed looser, less urgent. Breath in. Hurt? Breath deeper. Hurt more?

Of course, I said to him, if I were having a heart attack, we probably wouldn’t be having this conversation. True, he said. What were you doing, anyway? I told him I was lifting books from a bottom shelf. Well, does it feel like you pulled a muscle? I don’t know. It just hurts, hard to breath. Try lifting something, he said.

I picked up Zoë, and felt a twinge, in my right shoulder and chest. I put Zoë down, and it seemed like the pain was less. I picked Zoë up again. Yes, the pain was more intense. Zoë was happy, though.

I think I’ll live this time, I told my roommate. That’s good, he said. That’s good you’ll live, this time.

Zoë just purred.

Invited Expert

I put in an application to be considered as an invited expert by the W3C in response to Jeff Schiller’s work to encourage participation in the SVG Interest Group. I do like SVG and am interested in promoting SVG, but the whole process of having to submit an application to be considered to be an invited expert just to participate in an interest group was uncomfortable. I’ve never been one to call myself an “expert”, and I don’t classify myself with other “invited experts” I’ve seen in other interest groups.

The W3C has to change how it does business. Consider the process just to join this group to promote SVG—something you would think the W3C would welcome with open arms:

  1. First you have to identify whether you work for an organization already in the W3C. I assume if you’re an individual who wants to participate without joining as part of your company’s effort, you’re out of luck.
  2. If you’re not part of a W3C organization, you’re asked to consider whether the company you work for might be interested in joining the W3C, before joining as an individual.
  3. If you stubbornly persist in being an individual to this point, you’re then greeted with the Policy for Approval of Invited Experts, where we’re told that normally the committee Chair and Contact would meet with us, first, before submitting the application. Then the application is reviewed, and if the “invited expert” would need to have access to W3C members-only area, another internal approval process must be conducted.
  4. At some point in time, within ten business days, my application may, or may not, be approved. If it is approved, though, anything I do associated with this effort immediately becomes property of the W3C.

In addition, I can only remain a member of good standing if I don’t miss any more than one face-to-face meeting in three, even if I have to pay my own way to Boston, where one assumes such meetings take place. Of course, if the Chair is feeling generous, I may be excused this requirement. However, I must refrain from “offending” any other member of the W3C; criteria I’m sure to have already failed, just by writing this post.

No, I’m not invited expert material. I’m just a tech who likes SVG and wants to see its popularity grow.