News

Widgets Revolutionizing App Development

They're small and easy to create. They multiply like rabbits. The best become immensely popular very quickly and are forgotten just as fast. And they are changing the face of application development.

A sea change is now occurring in the world of software, with the number of small disposable applications, or widgets, being developed by casual users.

"The application development model is changing. It is opening up to a broader audience. Exponentially more people will be building applications," said Todd Fast, a chief Java architect for Sun Microsystems. Fast spoke last week at the JavaOne conference, in San Francisco.

As a result of this sea change, software engineers in the future may spend less time writing end user applications themselves and focus more of their efforts on building platforms that can be used by less experienced programmers, or even non-programmers, to build their own widgets, Fast predicted.

For enterprises such as government agencies, such a shift may change the way they use applications as well, with end users taking a more active role in creating the programs they need.

Traditionally, most software developers have thought of developing an application as a time-intensive project usually done for another party. However, social sites like Facebook have been breeding a new generation of programmers, most of whom do not write code for a living. Rather, they create small programs to address some specific need. The programs tend to be small, built quickly, easily deployed and not designed for long-term use, Fast said.

The Web has experienced an "explosive growth" of these new types of applications. In particular, social networking sites such as Facebook and MySpace have set up frameworks that allow users to write, share and use third-party widgets, resulting in thousands of small, simple applications, the best of which are used by millions.

"You interact with your friends through technologies, rather than go to see them -- this creates a pull for new applications," Fast said.

One example Fast gave was a simple game on Facebook called Zombie, created by a single programmer. The program allows Facebook users to "bite" their friends, turning them into zombies. At its height, it had over 250,000 users, though now its popularity has waned to only 67,000 users.

Fast called such applications disposable or situational applications. They may only have brief lifespans, though they are fairly easy to create. "Unless they are enduringly useful, they wither. When something new comes along, [people] throw those away," he said. But this is no big deal, he argued, since such applications tend to be easy to create in the first place.

And yet, even in their brief lifespan, such widgets tend to have a profound impact. Another Facebook program, a slideshow application Slide, has been installed 95 million times, and now has over 5 million active users. It has an annual monthly viewership of over 134 million users, an audience larger than most television shows enjoy these days, Fast noted.

In total, Facebook alone has 24,000 third-party applications, which have been installed 864 million times.

"Facebook and other social platforms are major drivers in application development," Fast said.

Fast argues that this changes the very field of application development. "Nothing I ever wrote has ever had 5 million users," he said.

He noted the marked contrast between the styles of development: Whereas enterprise software developments tend to be highly organized, relying on complicated integrated developer environments, formal code review, versioning control software and well-thought out architectures, these disposable applications tend to be built off the cuff using scripting languages like JavaScript and PHP, and graphical user interfaces supplied by companies like Yahoo and Google.

Fast noted that crucial to the success of these widgets are platforms, such as the Web, as well as more specific platforms built on top of the Web like Facebook, Wiki software and Yahoo Pipes. Such platforms take care of many of the basic low-level implementation details, freeing up their users to concentrate more on the unique features of their own programs. "The more tools casual users can use, the more programs they will produce," Fast said.

And this is where more seasoned engineers may be spending their efforts in the future -- building more effective platforms for non-programmers. "We will build the platforms that will enable everyone else to build to increase the richness of the Web, to do far more than what has been done before," he said.

About the Author

Joab Jackson is the chief technology editor of Government Computing News.