Sunday, September 2, 2007

Open Source vs Commercial

A frequent criticism of open source software is the presupposed lack of documentation. Yet one shouldn't assume that commercial math packages are actually well documented. In terms of usability, neither category of software has bragging rights. The Maple 11 documentation and TI-89 (TI-86 and TI-92) are my most recent source of frustration.

One problem is that the reference documentation is little more than a dump of interface specifications. Hint to vendors: even reference docs should relate information to tasks users are trying to perform and goals they are seeking to accomplish. There seems to be a trend to rely on spotty "tutorials" by the vendor and third parties. The giant flaw in the pedagogical approach is that it presents lots of irrelevant content while providing virtually no direction on what steps to take next.

In particular, the documentation often fails to answer "how do I _____" questions. Take the TI89 manual, for instance. A programmable calculator, the TI-89's manual dedicates all of two pages (one sheet, both sides) to the subject of writing a program.

Now, one might imagine that on-line resources would help here. Yet, one could Google for several hours and never find a well-organized, reasonably complete topical guide on programming the TI-89. There are plenty of supposed tutorials, and numerous programming libraries -- even so there are few program listings directly viewable on the Web -- but they overlook simple things. For instance, some TI Basic commands are allowed in program definitons and some within functions, but some are not allowed in certain contexts. There seems to be no well-organized guide which includes descriptions of the contexts in which commands may be written. Can't I include a "For" in a function? Why does inclusion of a "local" statement in a program cause an "Unknown variable" error -- shouldn't it be the other way around?

Similarly, with Maple 11, I found myself wanting to take advantage of the Spreadsheet interface. It was simple enough to insert a spreadsheet, but when I began inserting labels in the row I intended to use as a header, Maple gave me an evaluation error. It figured I was entering a formula. So new questions are posed. How does one set a row up as a header? How does one enter a label as text, not as an evaluated value? Is there even a difference between a header and a data row? The help page is of no help, Google searching turns up nothing obviously addressing the subject, and Maple's site offers nothing but lots of useless noise.

Don't get me wrong: I purchased Maple because I think it has a stronger set of features than the open source options such as Maxima. But trying to chase down questions such as these is akin to performing a forensic analysis on archaic pictographs to learn the grammar of a dead language. I find that I have to do this more often with commercial software programs, and less often with open source programs. In the latter case, Google more often turns up highly cohesive forum results from users with similar questions, or contributor-authored "How To" guides and solid (if work-in-progress) topical and task-oriented references.

I suppose the robustness of such resources depends a lot on the vitality of the user community, but also the organizational skills and foresight on the part of the project leaders. In the case of TI and Maplesoft at least, I think some of those skills need to be honed.

No comments: