Tag Archives: coding

The Evolution of HTML5 (and the Browser)

The grandly-named “Global Developer Survey” was released recently, sponsored by Kendo UI (makers of an HTML5 framework). As you might imagine, it focuses entirely on HTML5, and presents a fairly rosy picture.

They surveyed 5,000 or so developers from around the world and asked them about their use of HTML5 — what kinds of apps they build with it, which parts they use the most, what kinds of platforms they target, etc. Given the sponsor, it’s no surprise that more than two-thirds of respondents believed that HTML5 is important for ALL developers. Color me a little skeptical at that, but we’ll move right along.

But one part of the results that stood out to me was the focus of app development efforts by the surveyed developers: 60% were targeting desktop apps, while 26% were targeting mobile and 14% tablets. When asked what kind of software specifically the devs were building this year with HTML5, a whopping 87% said desktop websites/web apps, while only about half said mobile websites.

This generally tracks web traffic by platform (as of May 2013, in North America, only about 12% of web traffic was from a mobile device), which may make this more ho-hum. But it’s that ho-humness that is surprising. It has only been in the last version or two of most major browsers that HTML5 support has gotten more robust. The majority browser on the desktop, IE, still doesn’t support over a third of the spec! Meanwhile, support on mobile platforms has been more robust for quite a while.

Perhaps this gives hope that with so many HTML5 developers working on the desktop, the desktop browsing environment will get better for HTML5 — and, one hopes, more nimble in general, with the pace of adopting newer standards (3D Canvas graphics with WebGL, anyone?). And there are some signs that this is happening, albeit glacially. Chrome is poised to be the biggest browser on the web in North America any minute now (it’s almost tied with IE as of May 2013′s statistics), although the recent jump in browser share has been so sudden that it’s hard to know if it’s an anomaly.

Kudos to Kendo UI for sponsoring such an extensive survey, even if the participant selection was skewed. It would be interesting to get a more generalizable swath and see if the same desktop/mobile dichotomy holds true in other technologies (e.g., Java, Objective-C) as well.

Getting a Plumber’s Crack

Before it became hip-hop fashion, it was uncommon to see someone walking around with their belts hanging down below their waists. And this is a good thing.

The only exception: the plumber. Weighted down with tools in his or her belt, the mental image of the plumber bent under the sink with their belts tugging down is inescapable (no matter how much you may want to scrub it from your brain). But when it comes to programming, it may not be a bad thing.

Virtually, that is. After all, the plumber’s belt is weighted down because of all the tools available. Shouldn’t the programmer be in the same situation?

Lots of programmers have a core comfort with a single language, or perhaps a couple of them. Outside of those, though, they may be more lost. But who needs ‘em, right? If you know one or two languages in depth that will do the job, why do you need more?

One reason goes to how we learn. When we learn new things, we attach it to a framework of whatever we already know. So the more we know about a topic, the easier it is for us to figure out how new information ‘fits in.’ If you already know how certain structures work in one functional programming language, you can probably figure out how they work in a different one. The difference, largely, is syntax. So adding more languages to the arsenal means the cost in adding another gets smaller.

Another reason for learning several languages is the hammer-nail problem: If all you have is a hammer, everything looks like a nail. If you are rock-solid in imperative languages like C or Pascal, you will tend to look at problems in a way that can be solved procedurally. But what if a problem can be solved more quickly using an object-oriented language like C++ or Java? It’s less likely you’ll be able to spot that (let alone do something about it).

Around here, we require our developers to be highly-proficient in at least two languages, and conversant in several more. We even have an internal programming competition, where each challenge is a different problem–in a different language. One time it might be C++; the next, it might be Python. It keeps everybody on their toes, learning and developing their skills and perspectives. A highly-recommended practice.

But we still out-source the sink repairs.