The field of software has the worst record of shipping standards compliant products.
No company today is shipping a browser 100% compliant with the W3 recommendations for HTML 4 and CSS2. Neither Microsoft nor Borland ship compilers 100% compliant to the ANSI/ISO C++ standard. The ANSI/ISO C++ standard was ratified September 28, 1998, the W3 recommendation for HTML 4 was released December 18, 1997 and the W3 recommendation for CSS2 was released in May of 1998. All of these standards are over 3 years old and none of the major vendors ships standard compliant products.
The blame for this lack of standards compliance is traditionally aimed at the vendors themselves. They control the products. They participated in the standards committees. They ultimately control how their product conforms to any standards. The vendors themselves appear to care about standards conformance. Microsoft and Borland have compiler marketing literature that repeatedly refers to the ANSI/ISO C++ standard. Opera states on their web pages:
Opera supports the World Wide Web Consortium (W3C) recommendations. The W3C develops common protocols, specifications, and guidelines, and has earned international recognition for its contributions to the growth of the Web.
This statement is on the same page that provides a link to Opera's actual support for W3 standards, which is a long list of exceptions to 100% conformance. Netscape and Microsoft embrace the standards also but are less detailed about their actual lack of adherence to them.
The companies themselves are not really at fault. They are reacting to market demands, providing the features that they believe their customers want the most. The real blame for lack of standards compliant software falls on the users of that software and the standards committees.
In the case of compilers the vast majority of C++ programmers aren't proficient enough in the language to spot deficiencies in their compiler's standards conformance. Many C++ programmers use classes but far fewer use templates, and only a tiny portion of C++ programmers are involved in creating new template code. The situation with browsers is worse. The vast majority browser users know absolutely nothing about HTML or CSS, nor do they care to know about them. The users of both C++ compilers and web browsers do not demand standards compliance from the vendors. If there isn't demand for standards compliant products the vendors have little incentive to invest the time and money to bring their products to 100% compliance.
The standards committees bear the brunt of the responsibility for the current situation. None of the committees for HTML 4, CSS2, or the ANSI/ISO C++ standard produced standardized test suites that vendors could compare their products against. The standards bodies also failed to establish a certification process for products.
Opera doesn't even know definitively when it is has achieved 100% conformance to the W3 recommendation for HTML 4. Opera has to rely on their own interpretation of the specification. No standardized test suite was produced by the W3 that they can run their browser against to prove that they are 100% compliant. The reward for achieving 100% compliance is nothing. Since there is no "W3" certificate for 100% compliance to the standards Opera, Microsoft and Netscape have no idea when they are done chasing a standard, and users have no way to gauge when they are done either. Lacking a certification process for web browsers and C++ compilers users have no metric by which to judge competing products. The end users of these products, the ones to really benefit from the acceptance and adoption of the standards, are completely abandoned by the standards committees when it comes to the one act that can make a difference: choosing which product to use. If certification processes existed for the web and C++ standards we, the end users, could easily discern compliant products from non-compliant products, we would choose the compliant products and in the end no vendor would consider producing a product that didn't conform to the standards.
The standards committees are responsible for the situation we are in today. No company today is shipping a browser 100% compliant with the W3 recommendations for HTML 4 and CSS2. Neither Microsoft nor Borland ship compilers 100% compliant to the ANSI/ISO C++ standard. Standards need to come with test suites against which products can be verified and certifications need to be setup so we, the end users, can easily evaluate competing products. With out test-suites and certifications the standards are useless and do not serve the interests of the group they were designed to benefit the most, we the end user.
Posted by prathap on 2005-08-26