I gave a tutorial on four popular graphics/visualization toolkits (Prefuse, Flare, Processing and Protovis) in John’s InfoVis class today. Each of the tools, while enabling and facilitating the design and construction of visual interfaces in certain dimensions, imposes limitations and constraints on others. The greatest strength of Prefuse and Flare is that you can achieve a whole lot (layout, animation, visual mapping) with just a few lines of code, but the benefits provided by these sophisticated tool-kits with complex architecture can soon diminish when your data deviates from the standard format or contains invalid entries, or your design has unique features that cannot be done using the existing classes. I once tried to import some data files into Flare using the built-in functionality and failed. Soon I realized that to find out what went wrong, there is no escape from dealing with low-level details. What’s worse is that you need to understand and fit your mental model into the toolkits’ architecture — not fun at all. In this regard, I would gladly use Processing and Protovis. They provide an appropriate level of abstraction that gives me control over fine-grained interface features. The prototyping environments (PDE for Processing and sandbox for protovis) are great for fast and easy scripting.
Another thought is about the greater ecosystem. Processing has done pretty well in creating a conducive ecosystem where the authors maintain good documentation and tutorials for learners, hence fostering an active and growing user community which in turn can contribute a lot to the development of the toolkit. Prefuse stopped at beta release, and Flare stayed at version alpha (for now). Hopefully Protovis can do better.