| | Rick Pasotto wrote: "Coding for standards compliance is coding for the future. "
I don't think it is as simple as that.
On paper this is a great idea. But the problem is this: you can't develop practical standards without having some experience. For that you need something, say a primitive language, to work on. By the time standards are established, there would be far too many applications that use pre-standard features incompatible with the standards. So you need backward compatibility. Compromises are often made, because most often standards are written by committees formed by different organizations with conflicting requirements. The result? Messy or too hard to implement standards.
A classic example is the ANSI C++ standard. Even though the standard has been around for the last three years or so, none of the compilers is fully standard compliant. As a result, porting a product from one OS to another is a nightmare. Hundreds of millions of dollars are spent in 'fixing' porting issues.
In addition, very often technological innovations cannot wait for the standards to evolve. Standard compliance can, in such situations, stiffle innovation.
On the other hand, there are situations when standards are a necessity. A few years ago, I was developing a distributed memory algorithm to solve a class of electromagnetic problems. One of our objectives was to write it in such a way that the code would run from 'single workstations to heterogeneous clusters to massively parallel supercomputers,' to quote something that I wrote in a paper. The project was a great success, but the most difficult part was not in constructing the algorithm, but in making the code portable!! The solution was to use a minimalist approach: avoid anything that was even remotely inconsistent across platforms.
Standards would have helped me there. In fact there was one, MPI, that made it a lot easier. But if there were better standards, I could have spent a lot more time perfecting the algorithm instead of chasing platform dependent bugs!
So my point is that the project and its objectives should dictate the design, not a blind standard compliance.
coaltontrail
PS: FYI, Mozilla/Firefox has an extension (prefbar, I think) that lets you change the user agent string. Try mozdev.org.
|
|