60. A method comprising: rendering, on a mobile device, a declaratory markup language component of a widget application; executing, on the mobile device, a compiled programming language component of the widget application; automatically crawling, by the mobile device, one or more remote network resources accessible via a network for widget applications and determining one or more of the widget applications for download based on a user profile associated with the mobile device, without user interaction with the mobile device; and automatically downloading and installing, by the mobile device, the one or more widget applications to constitute a set of downloaded widget applications from a remote network location to the mobile device, without user interaction with the mobile device; wherein the set of downloaded widget applications corresponds to a first set of widget applications; and automatically uninstalling, by the mobile device, one or both of the first set of widget applications and a second set of widget applications on the mobile device based at least in part on user preferences, without user interaction with the mobile device; and wherein executing the compiled programming language component comprises making available to the widget application an API to access a device service of the mobile device.
60. A method comprising: rendering, on a mobile device, a declaratory markup language component of a widget application; executing, on the mobile device, a compiled programming language component of the widget application; automatically crawling, by the mobile device, one or more remote network resources accessible via a network for widget applications and determining one or more of the widget applications for download based on a user profile associated with the mobile device, without user interaction with the mobile device; and automatically downloading and installing, by the mobile device, the one or more widget applications to constitute a set of downloaded widget applications from a remote network location to the mobile device, without user interaction with the mobile device; wherein the set of downloaded widget applications corresponds to a first set of widget applications; and automatically uninstalling, by the mobile device, one or both of the first set of widget applications and a second set of widget applications on the mobile device based at least in part on user preferences, without user interaction with the mobile device; and wherein executing the compiled programming language component comprises making available to the widget application an API to access a device service of the mobile device. 62. The method of claim 60 , where the device service is one of the group consisting of: a camera, a video-recorder, a user interface for a home screen of a display of the mobile device, a touchscreen, a transceiver, a raw network connection, a network socket, an audio speaker, a GPS device, a microphone, an email software program, a software calendar, a data store, a personal information manager software program, an accelerometer, a software program for storing and managing personal contacts, a text messaging service, an instant messenger service, a chat service, a voice call service, a media player, a battery level determiner, a brightness level control for the mobile device display, and a vibrator.