Some standards are made to be ignored

Let’s begin with the definition of standardization from wikipedia :

Standardization is the process of developing and implementing technical standards. Standardization can help to maximize compatibilityinteroperability,safetyrepeatability, or quality.

On software development, the use of standards has huge benefits in protecting your projects from changing frameworks and tools. Some standards are widely used and adopted, others are used with moderation, a few or sometimes just a subset of them are simply ignored.

 UDDI

The UDDI registry’s functional purpose is the representation of data and metadata about Web services. A registry, either for use on a public network or within an organization’s internal infrastructure, offers a standards-based mechanism to classify, catalog, and manage Web services, so that they can be discovered and consumed by other applications.

Even if big buzz of UDDI was done by Microsoft and IBM between 2000 and 2005, this standard was not widely adopted, and as it is shown by its Google trend, there’s no more interest in this standard.

uddi

MDA

When MDA was introduced by OMG in 2001, many architects and developers thought that this approach was the missing  brick in software engineering.  And here’s the MDA slogan from the OMG website

MDA – The Architecture Of Choice For A Changing World

It sounded very good and many companies invested to create tools around MDA. But almost all of these tools were not adopted and used by developers.

In 2004, Martin Fowler gave his opinion about the future of MDA:

Some people think that Model Driven Architecture (MDA) will be biggest shift in software development since the move from assembler to the first high level languages. Others think that it’s nothing more than Night of the Living Case Tools. I’m in the latter camp but feel the need for more than a slick saying.

As he expect, the MDA was not the biggest shift, maybe it will be in the near future, but currently few architects are aware about the MDA related standards.

 C++ Attributes

C++11 includes several additions to the core language and extends the C++ standard library.  C++ attributes is an interesting new feature that provide standardized syntax for compiler extensions

Microsoft introduced the C++/CX extensions in 2012, but why the attributes specification was ignored even though Microsoft used another syntax. For instance,Let’s take the Ref class which is defined as follow:

public ref class CTest

Using C++11 attributes could be defined like this:

public class CTest  [[ ref ]]

Why adding new standards if they will not be used. It’s true that the c++ compiler in VS2012 didn’t implement Many C++11 features, but the attributes features is not the most complicated to be managed by the compiler, and used for the C++/CX extensions.

Summary:

Standards have many benefits. Currently, it’s very complicated to define a standard,the process is too long and the decisions taken become more political. Indeed, each software actor wants to adopt its choices. And in the final no guaranties will be adopted even if big companies promote its use, like what happened to UDDI whereMicrosoft, IBM and SAP have done big efforts to promote it, but without success!

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *