What is a Widget?
One of the things building Snipperoo has forced us to do is to think a lot about what a widget is. It's fairly clear that there is no accepted definition of a widget. This is probably because the word itself has quite a long history and can mean different things in different situations.
The phrase 'Acme Widget Co.' has long been used as a standin for a generic company that produces, well, anything. In this case, a widget is a sort of mysterious manufactured item, the sort of thing that made America a great manufacturing power. Wikipedia references the first usage of the word widget, when an artist must choose between making music, or making 'a living by accepting a soul-deadening job in a factory that makes
"widgets". The text of the play intentionally refrains from revealing
what "widgets" are; clearly, they represent any purely mercantile
commodity that has no artistic or spiritual value.'
Moved to the computer world, widget has long had its own meaning(s):
Pronounced wih-jit. (1) A generic term for the part of a GUI that allows the user to interface with the application and operating system. Widgets display information and invite the user to act in a number of ways. Typical widgets include buttons, dialog boxes, pop-up windows, pull-down menus, icons, scroll bars, resizable window edges, progress indicators, selection boxes, windows, tear-off menus, menu bars, toggle switches and forms.
(2) The term also refers to the program that is written in order to make the graphic widget in the GUI look and perform in a specified way, depending on what action the user takes while interfacing with the GUI.
The term widget is used to refer to either the graphic component or its controlling program or to refer to the combination of both.
More recently , with the coming of the ubiquitous web, the word has moved on again, and has been used to describe small applications that are designed to exist within an environment such as an OS based desktop, again from Wikipedia:
' ...a widget is a small specialised desktop application that provides easy access to frequently used functions or provides some visual information. Early examples of widgets were desk accessories on Mac OS. Typical widgets include News aggregators, clocks, calculators, calendars, desktop notes and weather forecasts.
Originally, desk accessories were developed to provide a small degree of multitasking, but when real multitasking OSes became available, these were replaced by normal applications. However, the widget model is attractive because of ease of development. Most widgets can be created with a few images and from less than ten to several hundred lines of XML/JavaScript/VBScript, depending on their complexity.
On Windows, support for widgets is mainly provided by Yahoo! Widgets (formerly Konfabulator), Samurize, DesktopX, Kapsules, AveDesk, and similar widget engines.Native support for widgets is included in Mac OS X v10.4 (via Dashboard).Also, as previously mentioned, Microsoft will support Gadgets natively in Windows Vista via the Windows Sidebar.'
However, even more recently the word widget has been swept up to describe a pseudo-application or any functionality that can be embedded or plugged in to a web based application such as a blog or a social network, though anything that is html based can allow embeds of one sort or another.
So what is a widget to Snipperoo? Well, we're happy to accept anything as a widget that will embed in a page of html. We don't have any technical requirements for 'our' widgets, because they are never actually our widgets. They pass through our storage and distribution system and on to our users' web pages, hopefully without any change. Snipperoo provides a module system for storing your own widgets. As far as we are concerned, that's your own private storage system, and we don't mind what you put in it. You can put any kind of code - or you can write your own. If you know a little html, you can create your own widgets, maybe combining them with images or other widgets. If you want to get creative, you can make a full set of sidebar furniture - headings, dividers, subheadings, bits of information. We will provide some tools to help you do this, but I'm hoping that some of you will create your own widgetisation tools. For example, a simple web interface could convert existing images and text of any size in to a widget to the users' design. That widget could then be automatically inserted into your account and, hey presto, you have your own widget. Or a widget for your band or your business, to distribute. To go even further, why not write an application to make interactive web widgets? Something like ning could be harnessed to create widget interfaces to full scale applications.
What I'm looking for is a new attitude to widgets. An understanding that anything can be widgetised, and probably will be. Because to us, anything can be a widget.
Comments