Skip to content

Are all standards inherently flawed?

In the world of software development when you come to implement something for real, using technologies that are supposed to conform to open standards, it is very often the case that those technologies  are not quite as rigidly standardised as you might have hoped.

To put this into a wider context most computer users would relate to – I’m willing to bet most have come across the odd device that somehow doesn’t seem to work when plugged into that fantastically universal and seemingly completely standardised connector called USB. The reason for this is some way down the line either the device manufacturer or the computer manufacturer have deviated from the standard. Naughty manufacturers, may be the initial response of a frustrated user, but we shouldn’t go around making assumptions that it is necessarily their fault. I say this because in reality, when a technology is implemented you have to deal with the complexities introduced by real world problems. I refer to the diagram in this post to give an illustration of what I’m getting at.

the sims model of standard decay in technologies!

A quick example in the Java world – The Enterprise JavaBeans technology in combination with Java Persistence Architecture is supposed to provide a layer of abstraction upon database interaction, known to developers as object relational mapping. The holy grail of object relational mapping is for the developer not to have to worry about issues relating to the particular relational database they are using and the application server on which their code should be running. The EJB technology is supposed to meet this goal. In reality there are inevitable implementation issues such as primary key generation options available differing depending on the database and entity relationship declarations working differently on different application servers.

Of course such a technology as EJBs shouldn’t be overlooked as a result of these flaws, because in fact the level of standardisation and generalisation involved is a great achievement in itself.

The inherent complexity of implementing technologies makes me wonder whether standards shouldn’t be defined up to a clear agreed point, beyond which vendors that implement a particular technology should define a layer which sits between the standard and the non-standard sections of the implementation which behaves according to… the vendors own standard (for an interface between standard and non-standard features!).

A simplified version of the circuitous argument above: standards should perhaps be more rigid and less ambitious, and any non-standard shenanigans should be extensions to the standard implemented, rather than modifications.

Leave a Reply