Widgets Revolutionizing App Development
- By Joab Jackson
- May 13, 2008
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
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,"