Thoughts on Widgets, Gadgets, Screenlets
Just now, I was listening to the Java Posse podcast about the ab5k screenlet framework for Java, and I am finally convinced that software developers are a bunch of crazy, unrealistic, memory-hungry, cpu cycle stealers and by lack of normal people telling them otherwise are proud of it, too. The problem? Look at this list (no particular order):
* [Linux screenlets or applets](http://kde.org/screenshots/images/3.5/35-superkaramba.png)
* [Windows Sidebar Gadgets](http://www.microsoft.com/windows/products/windowsvista/features/details/sidebargadgets.mspx)
* [Apple Dashboard Widgets](http://developer.apple.com/macosx/dashboard.html)
* [Google Desktop Gadgets](http://desktop.google.com/nl/?utm_campaign=nl&utm_source=nl-ha-emea-nl-google&utm_medium=ha&utm_term=google%20widgets)
* [Yahoo Widgets](http://widgets.yahoo.com/)
* and recently added: [ab5k.org java screenlets](http://www.ab5k.org/)
As you can see, this list shows what modern OS's are offering to the user as an extra desktop with little applications on them like clocks, calculators, rss readers or whatever small tool you can think of. Aside from having a polished look and feel, looking good in screenshots, and -in the case of OSX- animations, all these share the same problems:
* Usage of CPU cycles while not visible/used (and I don't care how few, there are some!)
* Usage of wired memory (memory which is not swapped out to disk for windows users), even while being inactive
* Slow loading times when restoring swapped-out widgets (memory swapped to disk which needs to be loaded back into memory)
* While resembling in name (screenlets, widgets, gadgets) not really portable between systems (although ab5k is about to solve that one)
I was triggered by the Java Posse podcast on ab5k, where one of the developers said that when the screenlet container was swapped out, it "only" used 24 megs of memory. That 24 megs could be just that 24 meg which makes windows swap out Photoshop to disk. 24 megs is a considerable amount of memory, for something which does absolutely nothing. An argument for *lets is probably the fast load time, but if all of them get swapped out, it would be just as fast just to start them, wouldn't it?
On my Mac, the dashboard looks great, and the widgets do what they promise. But apart from using it simply because it was new, I really don't use it that much nowadays. Once the coolfactor wears off, you just want it to work, and I think I like it better to have my utilities on the desktop, where I am working, rather than on a seperate cool looking transparent overlay from which I can not drag and drop easily into an application on the desktop.
Another thing that I realized while listening is that a lot of the functionality of these widgets are developer driven, not end user driven. I think half of the widgets are build by tech-nerds, but only 10% of the widgets actually end up being used by normal end-users.
My point is: Can we please stop using the dashboard containers and just build these utilities so they are normal, small, self-contained, fast loading applications which just do what they are designed for, and exit (as in: die and free up memory) when closed? I think this will free up a lot of memory on a lot of systems, and puts CPU cycles to a better use, giving the user more control of what the computer is doing for him, and what he doesn't want the computer to do for him. And if these utilities are in a self-contained package like Apple applications, people can actually uninstall them without leaving a lot of crap behind on the system. Say no to setup.exe!
I guess the faster computers we buy, the greedier developers get.