Categories
Web

Future of the Web

Recovered from the Wayback Machine

When people say something I want to respond to, I respond to it. And other people are, hopefully, responding to me if I say something interesting. When I respond to what others write, it is a compliment. It means that what was said definitely got my interest, regardless of whether I agree with what was said or not. When people respond to me, I take it as a compliment, even when they call me nasty things. (Go ahead! Call me a bitch! I live for this!)

Having carefully said all this, I find I do want to respond to something Dave said on Scripting News. I have to respond — to hold it in will cause me an injury.

I was a developer before the Web was even a twinkle in Berners-Lee’s eyes. I love to program, and have worked — worked mind you — with 18 different programming languages, including C, C++, Java, Perl, Snobol (any of you recognize this one?), Smalltalk, Ada, Pascal, Modula II, FORTRAN, LISP, and so on. And I still love to program, though I spend most of my time designing technology architectures and writing now.

When the web came along, it was love at first byte. I thought that this was great stuff — a universal front end to any application. I was so sold that I focused as much of my professional life on the web as I could, and still pay the bills.

I wrote books and articles on CGI and DHTML and JavaScript and XML and CSS and ASP and a host of other web technologies. Even today I find I am as fascinated by the web as I was waaaaaaaaaay back in the beginning. I’ve never seen that the web is low-tech. If anything, I find myself being stretched more by the web than by traditional programming.

In all this time, I just don’t remember there ever being a battle between C developers (I’m assuming by this Dave meant people who don’t want to use the web as an environment for their applications) and web developers. Not all applications fit the web, and not all companies have chosen the web for their environment — but that’s not developers, that’s just business. Most companies today use applications from both environments, something that will probably continue to be the norm into the future. (We don’t want to use Word over the Internet as a service, no matter what Microsoft says. Same for PhotoShop)

There’s discussions — constantly — between server-side folks and the designers. I know that I’ve had a lively chat or two with the WSP people who are, primarily, web designers. But most developers I know of, such as myself, are thrilled to play with the new technologies the web has provided. There might be a few who don’t want to play web, but most of us are as happy (or more) working with web development as we are with traditional development.

The whole thing is really about services isn’t it? Providing services to people who need them. Most computer-based functionality is nothing more than services wrapped in a front end — doesn’t matter if the front end is a VB application or a web page. All that matters is that the services are prompt, efficient, secure, accurate, and effective. If some people prefer to create the front end in VB and put both service and front end on one machine, that’s cool. If they prefer a web page, that’s cool. Where’s the battle? Apples and oranges.

As for Netscape and Microsoft and the W3C not having a vision for the future of the web, oh they most certainly do and did. Microsoft’s whole vision is .NET and owning the internet. In fact, the company’s vision scares me most of the time. Netscape also had strong designs on the web before they became the underdog. As for the W3C, we wouldn’t have the web without this organization’s efforts. I may preach chaos, but I practice chaos on top of a specific development platform, and I have that platform thanks to the W3C.

The key is that there are a lot of groups and people who have their own visions for what is the future of the web. If we continue to work towards a common interface, then we can each practice our own vision and our own chaos behind that interface. But we must have this interface, and I’d rather it be provided by an organization that doesn’t profit, then one that does. The interface cannot be owned by any one company, any one organization, or any one person.

Categories
Specs

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?

The WSP

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, CNET.com 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.