In computer programming, a widget (or control) is an interface element that a computer user interacts with, such as a window or a text box. Widgets are sometimes qualified as virtual to distinguish them from their physical counterparts, e.g. virtual buttons that can be clicked with a mouse cursor, vs. physical buttons that can be pressed with a finger. Widgets are often packaged together in widget toolkits. Programmers use widgets to build graphical user interfaces (GUIs).

Web 2.0 brought a new emphasis on the user experience. Part of that experience is the development novel ways to interact with and present information to users.

Often, these new interfaces are called widgets and use Asynchronous JavaScript + XML (Ajax) to communicate with the server.

The ecosystem is brimming with companies that create applications, or "widgets," to live on blogs or social networking profiles.

A lot of developers have realized that widgets are the key to viral growth.

For widgets to succeed they have to serve a need.

Examples of widgets include:
Selection: Button, Check box, List box, Drop-down list, Radio button, Menu, Toolbar, Ribbon, Combo box, Icon, Tree view, Grid view
Navigation: Tab, Scrollbar
Text input: Text box, Combo box 
Output: Label, Tooltip, Balloon help, Status bar

Enterprise 2.0 includes cutting edge topics like mashup creation tools to build a visual "face" of service-oriented architectures (SOA). Web 2.0 applications aimed at the enterprise can deal well with formal services integration, enterprise search, information security, single sign-on, Sarbanes-Oxley compliance, and a laundry list of other enterprise issues.

New Web applications have continued to adapt and evolve out on the Internet quite quickly in comparison to traditional IT, essentially ushering in the Web 2.0 era itself.

In the past, the new ideas in computing originated in the enterprise world and trickled down to the consumer world (things like databases, computer networks, file servers, and so on).  In the Web 2.0 era new ideas and approaches are germinating more on the consumer Web than from the enterprise space.

Mashups are an example of hacker-style creation that emerges from the laboratory of the Web. New high-value applications created out of the raw pieces of other high-value apps.  The technique of using the browser itself as the location for rapid, on-the-fly integration of functionality (widgets) and services showed how easy integration could be done on at the point of consumption with simple Web technologies like XML, Ajax, and Javascript snippets.

Big Enterprise Web 2.0consists of the integration scenarios made possible by Web 2.0 ways of doing things (like collaboration, WOA, mashups, and integration on the edge).

Little Enterprise Web 2.0 involves more of a software as a service concept of the Google variety (mailing, chat, calendaring, office automation, etc.) that are specifically directed at business use cases.

Self-service IT can be done with either SaaS or Web 2.0.  SaaS represents online, hosted software that can be obtained on-demand while Web 2.0 is essentially about enabling collectively built online collections of shared information.  SaaS and Web 2.0 can both be delivered on the Web, but the former tends to provide more function than data, and the latter tends to provide more data than function.