The Cross Platform Tax
Saturday, October 25th, 2008I’ve been thinking a lot about software tools these days. As E15 continues to mature, and we start to consider it for installations, our OS X reliance has to be re-considered because of cost. The general trend in many open source projects, of course, is to be cross platform. At this point, I’m not particularly convinced that being strictly cross platform is the best approach. However, I’m definitely keeping it in mind as future E15 features get implemented and existing functionality upgraded. The determination of which features can remain cross platform and which ones should be platform specific is still in progress.
I’m currently working on a system that requires some simple realtime blob tracking from a webcam. The tracking results will be sent to E15 instances and iPhones. The easiest way to do simple blob tracking with the appropriate amount of programmatic flexibility is to use OpenCV, which doesn’t yet have a particularly stable home on OS X. As mentioned in my blog, my task was to find out how to use the most appropriate OS X technologies (in this case, CoreVideo) to grab the video, and then pass those pixels straight on into OpenCV. It turns out that a number of people have been trying to figure out how to do this, apparently without success. After getting the application to work, I was surprised to find that the performance was 7x faster than the cross platform approach using OpenFrameworks, a collection of utilities for making C++ programming more accessible to artists. In a sense, I see this as one example of what I call the cross platform tax, which exists because cross platform approaches tend to leverage only the most common set of functionality, which cuts down on implementation complexity and development time. The result is that the platform-specific and more cutting edge performance benefits offered by new OS features are lost. When I think about these kinds of tradeoffs, VVVV (Windows-only) comes to mind as a demonstration of the benefits of platform reliance.









