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…

Introduction

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.

Examples

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.

Advertisements

Symbian Tools Update

Hello, I’m Paul Beusterien and I joined the Symbian Foundation in June to lead the developer tools strategy and implementation.   After three months of diving into the Symbian and the mobile world, I’d like to use this blog to share my evolving thoughts about mobile developer tools.

Symbian Developer Tools Mission

Provide good, usable tools to foster application development community
In the last few years, it has become clear that a vibrant application community dramatically enhances the value of a mobile platform.  Providing developers with good tools is key to unleashing the creativity and innovation of application developers.

In addition to platform tools for handset manufacturers, also provide compelling tools for app developers

Symbian has historically focused its tooling on helping manufacturers ship phones more efficiently.   We need to keep doing that, but we also need to insure that application developers have the necessary features and usability.

Use open source to foster community for tools development (as well as tools usage)
We have limited resources, there is excellent open source technology, and users are often familiar with open source tools.  We need to ensure that open source tooling has the necessary customization to work well for Symbian vibrant application community development.

Priorities

Cross-platform open source tooling for app developers
We’ve developed a plan to provide an open source compile/debug/simulate application environment using gcc, gdb, and QEMU.  We’ll host this environment on Mac and Linux as well as Windows.   The target for beta availability is the end of 2009.   We’ll follow up with IDE integration via Eclipse/Carbide in early 2010.

Reach out to Web developers with open source tooling
There is an order or two of magnitude more Web developers than C++ developers.  We need to provide the tooling to make it easy for them to develop for Symbian.   There are a variety of non-open source solutions today for Symbian development.  We will leverage the Eclipse Web Tools project to create a generic Eclipse plug-in available from the Symbian developer site.   Also, we will work with cross-platform mobile Web developer tooling and API providers to provide Symbian access.

Work with package owners to lead a vibrant open source tools community
There are 30 Symbian tools packages. The packages include debugging, IDE, dynamic analysis, static analysis, testing tools, and user interface tools.  We will help these package owners find additional contributors and build community around their technology.  We will also work with them to provide a unified Symbian tools vision and a well-integrated set of tools products.

Thanks for reading this far. Please send me your thoughts and feedback.   Another venue is the Symbian tools forum at http://developer.symbian.org/forum/forumdisplay.php?f=42 Let’s work together to create a great set of mobile development tools!

And stay tuned for my next blog entry on web development tools and why “widget” is a bad word.