Businesses and Individuals–Not Standards–Drive Innovation in Software

Slalom Consultant Brett Hovenkotter

Slalom Consultant Brett Hovenkotter has extensive experience as a Development Team Lead across a broad range of methodologies, technologies and architectures.

It seems that the conventional wisdom regarding the future of connected applications is that native apps will eventually give way to web apps. We all know that native apps distributed through download stores are currently in vogue, but many believe that they are a stop-gap on the road to our HTML and JavaScript future.

Let me start by stating this: the fact that HTML and JavaScript are controlled by the W3C and ECMA, respectively, is a good thing. The Web is and should remain open and out of the exclusive hands of any single business or nation.

However, as someone who has experienced the evolution of Java and .NET over the past decade, I believe that standards bodies are terrible innovators relative to private organizations and individuals.

Java was originally developed and released by Sun Microsystems in 1995 when it immediately shook up the world of software. The ability to “write once, run anywhere” was seen as a revelation and a serious threat to the established order. However this dream did not come to pass as Java applications were typically too slow and resource hungry to compete with native client-side apps, although Java did take off as a server-side development platform.

In 1998 Sun yielded control of Java development to the Java Community Process (JCP) to reassure the community that Java would remain independent. J2EE (now referred to as Java EE) was a specification consisting of several server-side Java technologies to be deployed on application servers to drive enterprise web sites.

For several years in the early 2000s I developed web applications using these technologies and for a time most of my colleagues and I believed that this community driven platform was the Right Way to build server-side apps.

We were wrong.

It didn’t take long to realize that many of these technologies, particularly Enterprise JavaBeans (EJBs), were exceptionally complex and difficult to develop with. For example, in order to access data in a single table I had to create a corresponding bean class, plus two interfaces classes, and enter metadata in three separate XML files. Then in order to access this data transactionally I had to create a stateless session bean class, two interfaces for it, and edit two metadata files.

It was Gavin King who found a better way to do data access in Java with his Hibernate object-relational mapping framework. The amount of code and metadata needed to pull information from a database in Hibernate was so much smaller than with EJBs it was comical. Next Rod Johnson created an implementation of the Inversion of Control pattern called the Spring Framework which resulted in much lighter and more testable code than session beans.

Eventually the EJB specification was reworked to incorporate the design of Hibernate and Spring, but it was too little, too late. I left EJB behind so that I could use more quickly evolving frameworks instead.

In 2002 Microsoft released the .NET Framework and C# language, which were a major leap forward for Microsoft’s server-side development technologies. C# was clearly inspired by Java, however it had features such as annotations, auto-boxing, and collection iteration that Java would incorporate into version 5 two years later.

Even though C# is an ECMA standard, its development is driven exclusively by Microsoft. Subsequent releases have added many useful advances such as lambda expressions, which haven’t been scheduled to be added to Java by the JCP until late 2012 at the earliest. Clearly Microsoft is able to innovate with C# at a much faster rate than the JCP is with Java.

HTML has evolved at an even slower pace than Java. The current version is 12 years old, and HTML5 isn’t expected to be completed until 2014, although many of HTML5’s features are available in today’s browsers. In the interim we saw the rise of Flash, a capable platform for creating animated sites and delivering video. Flash delivered what HTML and client-side Java couldn’t. HTML5 may steal some of Flash’s thunder, but Flash was still a critical stepping stone in the evolution of the Internet that was pioneered by a business, not a committee.

We have a lot to be thankful for in HTML and JavaScript. They have created a development ecosystem which is free from the control of any one individual or company. However I expect future major advances in software to continue to be spearheaded by private companies and open source projects, while standards committees continue to work on catching up.

Slalom Consulting's Seattle Office
More about Slalom Consulting’s Seattle office.

subscribe by emailSubscribe to be emailed about new Software Development posts.

About Brett Hovenkotter
Slalom Consultant Brett Hovenkotter has extensive experience as a Development Team Lead across a broad range of methodologies, technologies and architectures.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: