Tech: A Welcome Respite

It’s long past time for me to return to technical writing, if only because I need a respite from the battle against Trump and his evil minions.

It helps that there is a lot to be excited about—in a good way—in the tech world. The Node community seems to be moving beyond its early growing pains and is starting to stabilize. There’s still occasional drama, but not enough to make you scream in horror and run away.

My beloved SVG is really coming into its own with widespread support. I’ve been waiting years for this. There are great libraries to make it easier to build applications, but for me, the holdup has always been browser support. Now, I can party.

CSS! Can you believe what you can do with CSS now?  Not to mention that the W3C has really its act together when it comes to documenting what’s happening with specs.

Speaking of specs…HTML is no longer held hostage by a tin-plated dictator.  I’m sorry, did I say that out loud? I did notice that the working group mailing list is extremely quiet nowadays. This is because all the action has moved to GitHub. Probably more efficient. Not as fun.

Excellent news about the W3C and IDPF merging their efforts.

The vision to align Publishing and Web technologies and create a new roadmap for the future of publishing became official today with the announcement that the World Wide Web Consortium (W3C) and the International Digital Publishing Forum (IDPF) have combined organizations.



Then and now in standards: What’s different

Recovered from the Wayback Machine.

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.


The Tyranny of Standards

Originally published at O’Reilly

Before proceeding into the core of this article, I want to say one thing to you: challenge your assumptions.

Challenge your assumption that all Internet services are provided by a Web server and consumed by a browser Challenge your assumption that chaos within a development environment is a bad thing. And challenge your assumption that standards must take precedence over innovation.

Several years ago, when the concepts of Web server and browser were first implemented, the Internet was introduced to a new state of chaos and, as the explosive growth of technologies that are “Web-enabled” demonstrates, innovation was not only the rule, it was the norm.

Over time, people decided that standards were a necessary adjunct to the growth of the Web, something with which I completely agree. Enter the W3C, the World Wide Web Consortium.

As the W3C organization will attest, they are not a standards body. As such, they don’t issue “standards” per se. Instead, the W3C issues recommended specifications. The only enforcement of these specifications has been through voluntary compliance on the part of the technology providers, and demand for said compliance on the part of technology consumers.

Thanks to the efforts of the W3C, we have specifications for HTML, XML, CSS, HTTP, and a host of other Web-enabling technologies. Thanks to those following the specifications, we have Web pages that can be viewed by different browsers and served by different servers.

Somewhere along the way, however, standards became less of a means for providing stability and more a means of containment. In some cases, standards have become a weapon used to bludgeon organizations for practicing the very thing that started the growth of Web applications in the first place: innovation.

The Importance of Innovation

Innovation is the act of improving what exists and creating something new. Though innovation does not always lead to something better (Remember push technology?), it is the thing that keeps us moving forward, always searching for a better way of doing things.

Innovation can work comfortably with standards; new XML-based specifications, such as MathML, are a case in point. There are also times when innovation actually bucks the standards.

For instance, Microsoft has been long criticized for adding its own “innovations” to a specification, particularly with its popular Web browser, Internet Explorer. One innovation was the support of a property called innerHTML that is used to access or easily replace the contents of a specific HTML element. Though innerHTML is not part of any of the W3C specifications, its use is so popular that Mozilla, the open source effort behind the new Netscape 6.0 browser, has adopted the use of innerHTML within its own layout engine.

Should Microsoft and Mozilla be bashed for lack of standards compliance because innerHTML is not a property supported by the W3C? Or should both organizations be commended for providing a useful tool that has become very popular with Web developers?

This leads to an additional question: How does one measure standards compliance? For example, if Internet Explorer and Mozilla both supported CSS attributes such as font size and color, and they also supported new attributes and properties like innerHTML, would both browsers be compliant? Or are they noncompliant because they’ve added new features to the underlying CSS/DOM/XML/HTML specifications? How exactly do we define “standards compliance,” especially when there are groups like the WSP (Web Standards Project) enforcing this compliance?


I’ve long been a fan of the W3C, and I think that the Web and the Internet would be a much more chaotic environment without this organization. However, my fondness for the W3C does not necessarily extend itself to the WSP.

If you haven’t heard of the WSP, it is an example of what happens when standards enforcement is left to the masses. This organization’s intentions are pure: It’s a nonprofit organization of Web developers, designers, and artists who encourage browsers to support standards equally and completely. However, somewhere along the way, the WSP took on the aspect of a holy war, a Web jihad.

The WSP’s behavior is tantamount to lynch mob justice. After all, there are no gray areas of justice: only black and white, right or wrong. The same can be said of support for the enforcement of standards: A company supports standards 100 percent, or the company is noncompliantand, therefore, evil.

Note that I agree with the WSP in spirit: Our lives would be much easier if Microsoft and Mozilla and Netscapewould support the W3C specifications fully and equally. I’m more than aware of the cost of having to write different Web pages for different browsers because each has implemented technologies in a different way. I’ve been doing this for years.

However, I’ve also benefited when an organization has expressed an innovation that exists outside of a specification, such as the aforementioned innerHTML, or Mozilla’s support for XUL (Extensible User Interface Language). If having all browsers be 100 percent standards compliant means not having access to these innovations, then I’ll take noncompliance even if it does mean extra effort to compensate for differences.

I encourage Microsoft and Mozilla and Netscape to support the W3C specifications and other standards, but I also encourage these same organizations to continue their innovative efforts, even if the result is a bit of chaos in a world that would otherwise run smoothly, and without a wrinkle.

And who’s to say that a little chaos is such a bad thing?

The Chaos of Innovation or the Sameness of Compliance

In August 2000, featured an article titled Why Open Standards are a Myth. The author of the article, Paul Festa, wrote that open standards only work when a company has a lead in a technology and then uses the standard as a means of ensuring that its competition doesn’t exceed its own ability. The support for standards, then, becomes a means of disabling a competitor’s innovation.

In this context, the sameness of compliance to standards becomes less a tool to help developers and businesses and more a weapon against competition. The sameness of compliance also becomes a measure of ensuring that all participants reach one level, are kept on this level, and that there are no bumps in the road of compatibility.

Is this smooth path of total compliance the Internet of the past? And is this the Internet we want in the future?

In the End

Standards are essential to doing business between companies. They are necessary to ensure that, for example, CD players can play all CDs, and elevators don’t crash to the first floor from the tenth. Our lives are protected by standards and our laws are based on them.

However, standards were never meant to be a weapon against innovation, as a tool for beating a company into submission, particularly within the free-spirited environment of the Internet.

Should we encourage the adoption of standards? A resounding yes! But not at the expense of what makes working on the Internet so challenging and exciting: The promise of something new coming through the router. Something different. Something interesting. Something innovative.