Wednesday, November 20, 2013

Developing Useful Software and Everchanging Adoption of Standards

Yes, I realize it has been "four score and seven years ago" since I have added an entry to my blog.  I need to be more astute in getting these comments and such out - especially how I currently feel about software development technology standards, standard committees, and the way these standards are adopted by some of the biggest players in the industry.

I saw the following comments on a blog today:
  • Group: TPM / Techpost Media
  • Subject: RIP HTML 5 – let’s make sure HTML 6 does it right!
Not a week goes by where my software engineers don’t have to tear their hair out dealing with inconsistencies between the various HTML 5 compatible web browsers out on the market. Microsoft’s Internet Explorer idiosyncrasies often get my colleague’s blood boiling but it is by no means immune from issues. Just this week we found that Chrome was inexplicably throwing an odd header into HTTPS traffic to our web site that we had to compensate for.

The lack of HTML 5 compatibility between the various web browsers almost makes it feel as if things have gotten worse than they were before HTML 5 ever existed. It’s enough to make we wish we could just throw HTML 5 in the legacy bin and start over with HTML 6 (or whatever they end up calling the next version of HTML)!

I realize that the call for a new version of HTML is terribly naive, but dealing with this hellish morass of incompatible browsers is enough to make a person desperate.

Maybe a new version of HTML would be even worse. The same competing business objectives that created ambiguity and inconsistencies amongst HTML 5 implementations won’t just vanish as a new version is created. Worse, any new standard of the importance of HTML could easily take a decade to come to fruition.

My backup hope would be that the market forces hurry up and determine a knock out winner in the browser wars that FINALLY result in only a single survivor. If we can’t have harmony in the standards then a de-facto monopoly might be the next best thing.

How do you think we could improve compatibility amongst web browsers? Am I just blowing these problems into a bigger issue than it really is?

Cheers,
Michael Surkan

TPM Chief Evangelist


So this struck a chord in me that rattled the bones in my body!  I am just coming off a six-month contract with The Church of Jesus Christ of Latter Day Saints, or The LDS Church, or Mormon Church.  I was working a a unique project to assess the ability of an individual's second language.  For example, if your primary language is Spanish and you claim to be able to speak English as a second language this is great!  However, if you state, on a scale of 1-5, that you speak English at level 3, and then are actually tested on it and come to find out that you barely speak English (at say a level 1) this can be a problem, especially when the church wants to instruct you in that second language.

I worked with a team of software developers that created an online solution to automatically deal with this.  What we did was create a web-based assessment that presents 20 per-recorded prompts in the second language (English) to the one being tested.  They would repeat the prompt and it would be recorded and scored electronically, thereby assuring a consistent and pretty accurate score.

The problems that have been encountered during this development effort will not mean a whole awful lot to the casual reader, but suffice it to say that when you are playing back recorded audio on a website - and - recording audio, problems tend to creep into the picture.

One of many problems is browser incompatibility.  If we chose to use, say, Adobe Flash to record and playback audio, it may work well on Firefox, but have issues on Chrome and Internet Explorer.  We looked at using HTML5, which will give us built in ability to record/playback audio, but discovered what Michael, above, is discussing.  So what do we do?  There are a few options:
1. Focus on one browser only, like, say, Chrome and state that our application is only guaranteed to work on Chrome.
2. Implement HTML5 and hope that future updates of the major browsers will support it sooner rather than later.
3. Use Adobe Flash and make specific changes for the big browsers; Internet Explorer, Firefox, and Chrome.

So which option did we chose?  Which option would you chose?

We chose option 3!  The option that required much more development effort, but would allow the masses to use our website.

So how would standardization and compliance have made this story have a much better ending?  Simple.  If Microsoft, Google, and Mozilla would all implement new standards in a consistent manner (HTML5) then, at least theoretically, applications designed using HTML5 would all work on those browsers.

Till next time,

Bill