The Term “Widget” Considered Harmful

One of the things about joining a new industry is needing to learn a new set of terminology.  Since joining the mobile industry earlier this year, I’ve been most puzzled by the word “widget”.  This is the story…


Last year, I did a bunch of JavaScript programming.  Widgets were the little graphical pieces, like dialog boxes and radio buttons, that I used to build my web app.  My understanding of “widget” pretty much matched what I find at wikipedia – “(short for windows gadget) is an element of a graphical user interface (GUI) that displays an information arrangement changeable by the user, such as a window or a text box.”  So I was quite surprised to come into the mobile industry to find that “widget” was interchangeable with web application.   In fact, there is even a W3C standard around “widgets”.  And it is fine to have a standard around pieces of small, single purpose desktop functionality.  However, when the term “widget” is used as a synonym for any web app, it trivializes the power of the web as an application development and deployment platform.

Web Development Trends

After spending its early days as a tool to wrap small scripts around html, JavaScript has evolved into a language for full-fledged app development.  Evidence includes the emergence of AJAX as a popular powerful mechanism to drive asynchronous page fragment updates and tools like jslint to improve the ability for JavaScript to scale up robustly.

While JavaScript is evolving into a more scalable programming, Google is attacking the problem of Web programming from the other end with GWT (Google Web Toolkit) which compiles Java into JavaScript, thus bringing the advantages of compiled languages to Web development including the ability to find more classes of errors at compile-time instead of run-time and enabling the usage of mature Java tooling.

While the programming languages for the web mature, there is also progress being made with the core markup language (assembly language) of the web browser.  Two important addtions of  html5 are the canvas tag which enables dynamic scriptable rendering of bitmap images and the ability to do offline storage to better enable web apps to deal with intermittent connections.


Check out bespin to get a sense of the growing power of the web application platform.  Bespin is on its way to becoming a fully functional development environment developed purely on the web.  In addition to typical IDE features like editing and building, it takes advantage of the web to innovate around developer collaboration.

On the mobile side, check out phonegap‘s or project page or Appcelerator Titanium’s sample page to see a wide range of apps developed using cross-platform web tools to run on multiple mobile devices.

Wrap Up

The word “widget” may be too entrenched to change, but whether they’re web apps or widgets, web applications are here to stay and will only get more important.   There are an order or two more web developers in the world than native developers.  The mobile platform is transforming into an innovation convergence and acceleration point for the web, embedded devices, and the cloud.  So the mobile eco-system providers that do the best to enable mobile apps with the right browsers, enabling APIs, powerful development tools and usable deployment tools will lead the way in attracting web developers to create a rich set of applications.


2 Responses

  1. Good post. I definitely agree that the mobile industry uses the term “widget” in a confusing way. If it was at least consistent then it would just be a jargon thing, but given that Nokia, Sony Ericsson, Vodafone, etc often seem to mean something a little different by the term it really does get difficult.

    If you start a movement to improve the industry’s terminology around web development I’ll definitely join!

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: