Tuesday, November 01, 2005

Perl and Python, Lisp and TeX: Fundamental differences in user communities. I have a bias against Lisp and Tex documentation because I have always found it difficult to come by; hence I have always regarded these languages as poorly documented, even though I'm a fairly active and excited user of both. On the difference of availability of documentation, I think the origins of the languages are extremely important. Both Lisp and TeX have a rather more academic user group (not that they are any more capable than the Perl and Python crowd, but when you think practical programming, you think Perl, not TeX), whereas Perl and Python are grassroots efforts, so to speak. The very definition and elaboration of the languages themselves reflect this. If you want good documentation of TeX, buy the TeXbook, which I've heard is quite a rigorous bible of TeX. Consequently, anybody who owns the TeXbook is unlikely to be constantly publishing the little tidbits of information and procedure that float around. When I first began using LaTeX, I had a hell of a time finding any documentation for it, and now that I know exactly what to search for, I have a slightly less hard time, but by no means is it as easy as CPAN. The same is true with Lisp. The official common lisp spec has to be purchased from ANSI, and if you want to delve under the hood with the MOP, you're pretty much out of luck unless you buy the AMOP. Contrast this with the Python and Perl world: if you've been to CPAN, if you've read the perldocs, or browsed doc.python.org, you already know what I'm talking about. The TeX group has CTAN, which is similar to CPAN, and common lisp has cliki, which is also similar, but these two repositories are fundamentally different than CPAN—it's the documentation! The CTAN and cliki are only (or at least mostly) code repositories. They allow for quick and easy downloading of code, but provide no support for the user. I posit that it is exactly because the languages Perl and Python grew up in the bright sun of public scruitiny that they are so well documented on the Internet. As single individuals attempt to document a language, they must surely fail to document all of it. The Internet responds by producing stacks of How-To articles that guide the novice user. In the more academic world, the novice is guided to a book. The book may be perfectly instructive, but the community dialog, that searchable collective experience, is not available. I think this accounts for a significant difference between the Perl and Python, Lisp and TeX crowds.


Blogger Zach Beane said...

The Common Lisp HyperSpec, while not Official, is a complete, free, and indispenisble version of the ANSI Common Lisp standard.

The important parts of AMOP are also online for free.

8:02 AM  

Post a Comment

<< Home