Monday, April 16, 2007

gadget SDKs ranked

Part of my continuing effort to deliver the best online code converter service has included the production of widgets/gadgets for all of the major gadget engines. Before starting this project I had never built a widget, but I had often heard the experience was similar for all engines. Now that I've used most of the widget engine SDKs- Google Desktop, Windows Sidebar, and Yahoo! Widgets- I thought I'd share my experiences with you.

While the "big 3" have some similarities, the development experience for each is very different. As a result, I'd rank them in this order (best to worst):

  1. Yahoo! Widgets
    By far the best widget development experience out there, largely due to the mature API and easy to use tools. With Yahoo! Widgets, you can easily design your widget in Photoshop and use the provided JavaScript to automatically convert the Photoshop image into your widget base. Animations are easy with the well documented API and the built-in debugger makes it easy to solve problem as you develop. The other two widget engines need to take...more...pages from the Konfabulator turned Yahoo! example.
  2. Windows Sidebar
    As the newest entry into the desktop gadget scene, Microsoft has done a fair job of creating their gadget SDK. Unlike Yahoo!, Microsoft does not supply any tools for creating your gadget, but since they are built with "normal" HTML it is much easier to use existing tools like Visual Studio to construct the gadget. This is where Microsoft beats Google, which does provide a (very poor) tool for visually building gadget but uses a weak HTML-like syntax to layout the gadget. Microsoft does not supply a debugging tool for building gadgets, either, instead requiring you to use Visual Studio to debug your code.
  3. Google Desktop
    Bringing up the bottom of the pack in Google Desktop Gadget's SDK. While it is well documented and it does include a visual builder to layout your gadget (albeit a very poor visual builder), the HTML-ish gadget syntax leaves a lot to be desired. Most importantly, there is no built in textbox control with automatic scrollbars multi-line input. There is a multi-line input (called an "edit" control), but there is no automatic scrollbar support! This is a glaring oversight and (especially for something like the code converter) makes the engine unusable for many advanced scenarios. Google's Desktop development offering still feels very immature, which is surprising given how much time they've had to get it right.
So if you're thinking about building a widget to work with your web services, I'd highly suggest you start with Yahoo! Widgets. Not only does it have the widest audience (Windows XP/Vista and Mac) it is also the most fun to develop!